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 і портами, ідентифікованими в кампанії.
graph TB %% Class definitions classDef technique fill:#e0f7fa %% Node definitions initial_access[“<b>Початковий доступ</b> – <b>T1659 Ін’єкція контенту</b>: Жертви завантажують фішингову сторінку, яка вносить зловмисну команду.”] class initial_access technique execution_copy_paste[“<b>Виконання</b> – <b>T1204.004 Виконання користувачем: Зловмисне копіювання та вставка</b>: Користувач копіює команду base64 і виконує її в Terminal.”] class execution_copy_paste technique execution_proxy[“<b>Виконання</b> – <b>T1127 Використання довірених утиліт для виконання</b>: Розкодовує і виконує AppleScript через вбудовані утиліти macOS.”] class execution_proxy technique execution_xpc[“<b>Виконання</b> – <b>T1559.003 Міжпроцесорні комунікації: XPC послуги</b>: AppleScript використовує XPC для внутрішніх викликів.”] class execution_xpc technique collection_browser_disc[“<b>Збір даних</b> – <b>T1217 Відкриття інформації браузера</b>: AppleScript перераховує профілі Firefox і Chromium.”] class collection_browser_disc technique collection_creds[“<b>Збір даних</b> – <b>T1555.003 Облікові дані з магазинів паролів: Веб-браузери</b>: Краде файли cookie, збережені облікові дані та дані криптовалютних гаманців.”] class collection_creds technique archive[“<b>Збір даних</b> – <b>T1560.001 Архівація за допомогою утиліти</b>: Пакує файли в ZIP, використовуючи ditto.”] class archive technique exfiltration[“<b>Експільтрація</b> – <b>T1020 Автоматизована експільтрація</b>: Завантажує ZIP на контрольований зловмисником сервер за допомогою curl.”] class exfiltration technique c2_web[“<b>Командний центр і контроль</b> – <b>T1102 Веб-служба</b>: Спілкується з C2 через HTTP з розширеними дозволами CORS.”] class c2_web technique c2_ssh[“<b>Командний центр і контроль</b> – <b>T1021.004 Віддалені служби: SSH</b>: Зловмисник підтримує доступ до SSH для подальшого контролю.”] class c2_ssh technique defense_compress[“<b>Ухилення від захисту</b> – <b>T1027.015 Стиснення</b>: Використовує стиснення для приховування даних зловмисного коду.”] class defense_compress technique defense_file_delete[“<b>Ухилення від захисту</b> – <b>T1070.004 Видалення файлів</b>: Видаляє тимчасові каталоги та архіви.”] class defense_file_delete technique credential_cookie[“<b>Повний доступ до облікових даних</b> – <b>T1539 Викрадення файлів cookie веб-сесії</b>: Використовує вкрадені файли cookie для викрадення сесій.”] class credential_cookie technique %% Connections initial_access u002du002d>|веде до| execution_copy_paste execution_copy_paste u002du002d>|веде до| execution_proxy execution_proxy u002du002d>|використовує| execution_xpc execution_proxy u002du002d>|збирає| collection_browser_disc collection_browser_disc u002du002d>|збирає| collection_creds collection_creds u002du002d>|архівує| archive archive u002du002d>|експільтрує| exfiltration exfiltration u002du002d>|використовує| c2_web c2_web u002du002d>|резервний| c2_ssh exfiltration u002du002d>|прикриває сліди| defense_compress exfiltration u002du002d>|прикриває сліди| defense_file_delete collection_creds u002du002d>|дає можливість| credential_cookie
Потік атаки
Виявлення
Виявлення зловмисного використання 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