Clickfix на macOS: Кампанія шкідливого ПЗ AppleScript використовує підказки Терміналу для крадіжки даних
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Кампанія зловмисного програмного забезпечення AppleScript націлена на користувачів macOS через техніку ClickFix, спонуканням виконувати розкодувальні shell-команди base64 у Terminal вручну. Ці команди отримують AppleScript для стеження, який збирає дані з браузера, криптовалютні гаманці, локальні документи та іншу конфіденційну інформацію, а потім передає її на сервери, контрольовані зловмисниками. Оскільки жоден традиційний двійковий файл не записується на диск, цю діяльність важче виявити класичним антивірусом. Операція покладається на множинні оманливі домени та незвичайні порти служби для командно-контрольного трафіку.
Аналіз кампанії AppleScript
Дослідники вивчили фішингові вебсайти, JavaScript, відповідальний за доставку навантаження, і AppleScript, використаний для збору та передачі даних. Картографування інфраструктури виявило такі домени, як cryptoinfo-news.com and odyssey1.to, а також служби, які відкриті на портах 22, 80, 3333 та 5201. Навантаження AppleScript пакує вкрадені дані у ZIP-файл за адресою /tmp/out.zip і використовує curl для завантаження на віддалений кінцевий пункт.
Пом’якшення
Захисники повинні блокувати виявлені зловмисні домени та обмежити вихідні з’єднання на незвичайних портах. Захищайте хости macOS шляхом обмеження використання AppleScript і shell-сценаріїв, моніторингу шаблонів виконання base64-d | bash , а також накладення строгих контролів CORS у веб-середовищах. Тренінги з обізнаності з безпеки повинні підкреслювати фішингові сторінки, які інструктують користувачів копіювати-вставляти і запускати команди в Terminal.
Відповідь
Коли ці шаблони індикаторів виявлені, повідомте SOC, ізолюйте уражену систему, захопіть тимчасові артефакти і історію shell-сценаріїв. Проведіть криміналістичний огляд каталогу /tmp , відправте в карантин будь-які підозрілі ZIP-архіви і співставте вихідний трафік з відомими серверами C2 і портами, ідентифікованими в кампанії.
Потік атаки
Виявлення
Виявлення зловмисного використання Curl для експільтрації даних на macOS [Створення процесу у Windows]
Переглянути
Виявлення декодування Base64 і виконання Bash на macOS [Створення процесу у Linux]
Переглянути
ІОС (SourceIP) для виявлення: Повний гід по полюванню на Cobalt Strike – Частина 2: 10+ рецептів HuntSQL для виявлення Cobalt Strike
Переглянути
ІОС (DestinationIP) для виявлення: Повний гід по полюванню на Cobalt Strike – Частина 2: 10+ рецептів HuntSQL для виявлення Cobalt Strike
Переглянути
Атомний викрадач MacOS – Активність FileGrabber
Переглянути
Переглянути
Виконання симуляцій
Попередня умова: Перевірка телеметрії та базової лінії повинна бути здана.
Обґрунтування: Цей розділ детально описує точне виконання техніки супротивника (TTP), призначеної для спрацьовування правила виявлення. Команди та наратив безпосередньо відображають ідентифіковані TTP та спрямовані на створення тієї ж телеметрії, яку очікує логіка виявлення.
-
Опис атаки та команди:
-
Зловмисник надсилає фішинговий електронний лист, що містить рядок:
echo "cHJpbnQoJ0NhdXNlJykK" | base64 -d | bash(Навантаження розкодовується у
print('Cause')– заповнювач для будь-якого зловмисного Bash-скрипту.) -
Непідозрюючий користувач копіює рядок і вставляє його в Терминал.
-
macOS запускає
bashпроцес, чий командний рядок точно відповідає шаблонуbase64 -d | bash, задовольняючи правило Sigma’sвибір. -
Інтерпретатор Bash виконує декодоване навантаження, виконуючи зловмисне діяння (наприклад, встановлення реверсної оболонки, завантаження додаткових інструментів).
-
-
Скрипт тесту регресії: Скрипт нижче автоматизує кроки 1‑3, відтворюючи телеметрію, необхідну для перевірки.
#!/bin/bash # ------------------------------------------------- # Симуляція виконання на macOS Base64‑decode‑and‑Bash # ------------------------------------------------- # Навантаження, закодоване в base64 (виводить "Compromise") PAYLOAD="cHJpbnQoJ0NvbXByb21pc2UnKQ==" # Виконати рядок точно як це зробив би зловмисник echo "$PAYLOAD" | base64 -d | bash # Вийти зі статусом команди Bash exit $? -
Команди очищення: Видаліть будь-які тимчасові файли або фонові процеси, які могли бути створені навантаженням (замість цього, за потреби, поставте очищення конкретних для навантаження файлів).
#!/bin/bash # Просте очищення – переконайтеся, що ніякі дитини-процеси Bash не залишились pkill -f "base64 -d | bash" 2>/dev/null # Якщо навантаження створило файли, видаліть їх (зразок заповнювача) rm -f /tmp/malicious_script.sh 2>/dev/null