Всередині ICMacOS: Від інфостейлера до стійкої RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
ICMacOS, також відомий як Icarus macOS, це нещодавно виявлений macOS Malware-as-a-Service (MaaS), який еволюціонував від крадія облікових даних до стійкого троянця з віддаленим доступом (RAT). Він націлений на високовартісну інформацію, включаючи облікові дані браузера, криптовалютні гаманці та розробницькі секрети, такі як SSH-ключі та конфігурації хмари. Шкідливе ПЗ використовує соціальну інженерію на основі ClickFix для доставки та WebSockets для управління та контролю в реальному часі.
Розслідування
Група досліджень загроз SOCRadar (STRU) ідентифікувала ICMacOS через аналіз телеметрії та моніторинг підпільних форумів. Дослідники простежили ланцюжок зараження від початкових Bash скриптів для розгорнення до впровадження Mach-O бінарних файлів та допоміжних завантажень на основі Python. Розслідування задокументувало прогрес від Версії 1, зосередженої на крадіжці даних, до Версії 2 з функціоналом RAT, при цьому структура C2-процесів картографувалася через аналіз WebSocket.
Пом’якшення
Організації повинні запроваджувати строгий контроль навколо виконання команд у терміналі та моніторити підозрілі зміни LaunchAgent. Рекомендується укріпляти системи macOS через шифрування диска та політики MDM, що обмежують несанкціоновані LaunchAgents. Команди безпеки також повинні слідкувати за незвичними вихідними WebSocket підключеннями та несанкціонованим доступом до сервісів Keychain як потенційних індикаторів компрометації.
Відповідь
Коли виявлено активність ICMacOS, ізолюйте уражений macOS хост від мережі, щоб зупинити ексфільтрацію даних і подальше спілкування C2. Проведіть комплексний судово-медичний огляд директорії /tmp, LaunchAgents та активності користувача Keychain. Замініть потенційно скомпрометовані облікові дані, включаючи SSH-ключі, токени постачальників хмарних послуг, такі як AWS та облікові дані Kubernetes, а також паролі, збережені в браузері.
Атака потоку
Ми ще оновлюємо цю частину.
Виявлення
Можлива спроба комунікації з доменами через пошук IP (via dns)
Запуск Launchctl з нестандартного шляху (via process_creation)
Підозріле змінення дозволів на файли у тимчасовій папці MacOS (via cmdline)
Можлива спроба ручного розблокування Keychain (via cmdline)
Можлива спроба виявлення паролів браузера MacOS (via cmdline)
Підозріла спроба виконання Curl [MacOS] (via cmdline)
Архів був створений у тимчасовій папці MacOS (via file_event)
IOCs (HashSha256) для виявлення: Усередині ICMacOS: Від крадія облікових даних до стійкого RAT
Виявлення шкідливого доступу до віддаленої конфігурації та отримання завантаження [Вебсервер]
Виявлення використання AppleScript та вилучення паролів Keychain у зараженні ICMacOS [Windows Process Creation]
Виявлення прихованої активності та несанкціонованого агрегування даних ICMacOS [Linux File Event]
Виявлення крадія ICMacOS через обфускацію терміналу та перерахування процесів [Linux Process Creation]
Виконання симуляції
-
Оповідь про атаку та команди: Зловмисник отримав початковий доступ до робочої станції macOS і розгортає крадія ICMacOS. Щоб уникнути виявлення користувачем і мінімізувати час для ручного спостереження, шкідливе ПЗ виконує скрипт через
zsh. Спочатку скрипт використовуєbasename $0щоб визначити своє ім’я файлу для подальшої обфускації своєї присутності у файловій системі. Відразу після ініціалізації свого шкідливого завантаження (симульованого через перерахуванняICMACOSпроцесів), скрипт намагається скинути вікно терміналу користувача за допомогоюkillall Terminalщоб вивести користувача з активної сесії та приховати історію команд. -
Скрипт регресивного тестування:
#!/bin/zsh # Скрипт для симуляції виявлення крадія ICMacOS echo "[+] Запуск симуляції крадія ICMacOS..." # 1. Запускає вибір_basename_killall через 'basename $0' echo "[+] Виконання патерну обфускації: basename $0" /bin/zsh -c "echo $(basename $0)" # 2. Запускає вибір_basename_killall через 'killall Terminal' echo "[+] Виконання патерну приховування: killall Terminal" # Примітка: Ми використовуємо субшелл, щоб забезпечити, що скрипт симуляції сам не завершився негайно # якщо запущений в реальному терміналі, але для цілі правила, ми хочемо, щоб команда запускалася. /bin/zsh -c "killall Terminal" 2>/dev/null || echo "[!] killall не вдалося (термінал не запущено або відмовлено в доступі)" # 3. Запускає вибір_pgrep через 'pgrep ICMACOS' echo "[+] Виконання патерну перерахування: pgrep ICMACOS" /bin/zsh -c "pgrep ICMACOS" echo "[+] Команди симуляції відправлено." -
Команди очищення:
# Жодні постійні файли не були створені симуляційним скриптом. # Якщо які-небудь тимчасові файли були використані, вони повинні бути видалені тут. rm -f /tmp/icmacos_sim_test