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

17 Apr 2026 17:49

Кампанія фішингу ClickFix під виглядом встановлювача Claude

Author Photo
SOC Prime Team linkedin icon Стежити
Кампанія фішингу ClickFix під виглядом встановлювача Claude
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Фішингова кампанія використовувала техніку ClickFix для розповсюдження шкідливого пакету MSIX, замаскованого під інсталятор Claude AI. Початкова активація виконувалася за допомогою mshta , запущеного через утиліту Windows Run з використанням спеціально створеного URL. Завантажений корисний навантаження містив файл HTA, який створював обфускований PowerShell на етапі, обходячи AMSI, отримував додатковий PowerShell контент і виконував рутину впровадження в процес з використанням зашифрованого shellcode. Діяльність спостерігалася в середовищах клієнтів у Європі та США і була виявлена через покриття Rapid7 InsightIDR.

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

Аналітики Rapid7 ідентифікували mshta виконання, пов’язане з ключем реєстру RunMRU, і захопили URL download-version.1-5-8.com/claude.msixbundle. Аналіз показав, що архів MSIX включав файл HTA, який декодував обфусковані рядки, складав команду PowerShell, перезаписував контекст AMSI і, в кінцевому підсумку, впроваджував shellcode через виклики API в нативному Windows. Дослідники також виявили, що кілька подальших етапів PowerShell були завантажені з динамічно створених URL-адрес, які були отримані з хешу, побудованого з імені комп’ютера та імені користувача жертви.

Пом’якшення

Захисникам слід контролювати ключ реєстру RunMRU на предмет підозрілих mshta записів і блокувати mshta виконання, коли вона походить із ненадійних джерел. Організаціям слід також обмежити завантаження пакетів MSIX з невідомих доменів і забезпечити застосування дозволеного списку програм для виконання PowerShell. Захист AMSI повинен залишатися увімкненим, а логування PowerShell має бути налаштоване для фіксації закодованої або обфускованої командної активності для розслідування.

Відповідь

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

graph TB classDef action fill:#99ccff step_phishing[“<b>Дія</b> – T1566.002 Фішинг: цільове фішингове посилання<br/><b>Опис</b>: Жертва переходить за шкідливим посиланням, яке запускає mshta.”] class step_phishing action step_mshta[“<b>Дія</b> – T1218.005 Mshta<br/><b>Опис</b>: Виконання mshta з URL, що веде до .msixbundle payload.”] class step_mshta action step_hta_deobfuscation[“<b>Дія</b> – T1027.010, T1027.013, T1140 Деобфускація/декодування файлів<br/><b>Опис</b>: HTA запускає VBS, який деобфускує вбудований шкідливий код.”] class step_hta_deobfuscation action step_ps_encoded[“<b>Дія</b> – T1059.001 PowerShell<br/><b>Опис</b>: Створення закодованої PowerShell команди.”] class step_ps_encoded action step_stage1[“<b>Дія</b> – T1059.001 PowerShell (Етап 1)<br/><b>Опис</b>: Обчислення MD5 від COMPUTERNAME+USERNAME, формування URL і завантаження Етапу 2.”] class step_stage1 action step_stage2[“<b>Дія</b> – T1562.001 Порушення захисту (обхід AMSI)<br/><b>Опис</b>: Перезапис AMSI контексту та завантаження Етапу 3.”] class step_stage2 action step_stage3[“<b>Дія</b> – T1059.001 PowerShell (Етап 3)<br/><b>Опис</b>: Декодування масиву байтів і створення ScriptBlock для виконання.”] class step_stage3 action step_process_injection[“<b>Дія</b> – T1055 Інжекція процесу<br/><b>Опис</b>: Інжекція коду в цільовий процес через .NET та native API.”] class step_process_injection action step_persistence[“<b>Дія</b> – T1547.014 Ключі автозапуску / папка Startup (RunMRU)<br/><b>Опис</b>: Створення RunMRU запису для забезпечення персистентності.”] class step_persistence action step_phishing –>|призводить до| step_mshta step_mshta –>|виконує| step_hta_deobfuscation step_hta_deobfuscation –>|використовує| step_ps_encoded step_ps_encoded –>|генерує| step_stage1 step_stage1 –>|завантажує| step_stage2 step_stage2 –>|завантажує| step_stage3 step_stage3 –>|створює| step_process_injection step_mshta –>|встановлює| step_persistence

Потік атаки

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

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

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

  • Розповідь про напад і команди:

    1. Мета: Виконати шкідливе завантаження PowerShell, яке як закодоване base‑64, так і вбудоване із викликами .NET для здійснення впровадження процесу, імітуючи типовий «living‑off‑the‑land» напад.
    2. Кроки:
      • Створити малу збірку .NET (C#), що викликає OpenProcess and WriteProcessMemory (моделюється через PowerShell’s [System.Runtime.InteropServices.Marshal]).
      • Закодуйте скрипт PowerShell, що містить Invoke-Expression, FromBase64String, та посилання на System.Management.Automation.AmsiUtils (використовується для обходу AMSI).
      • Додайте помилковий маркер 0x41414141 , щоб імітувати «паддинг», часто помічений в обфускації.
      • Запустіть скрипт за допомогою powershell.exe з повною командою на видимому довідку (щоб правило виявлення могло побачити рядки).
  • Скрипт тесту регресії:

    # ==============================================================
    # Симульоване шкідливе виконання PowerShell для запуску Sigma rule
    # ==============================================================
    # 1. Створити просте шкідливе навантаження .NET (inline, для демонстраційних цілей)
    $cs = @'
    using System;
    using System.Runtime.InteropServices;
    public class Injector {
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int nSize, out IntPtr lpNumberOfBytesWritten);
    }
    '@
    Add-Type -TypeDefinition $cs -Language CSharp
    
    # 2. Складіть шкідницький фрагмент PowerShell
    $malicious = @'
    $b64 = "aW1wb3J0IHN5c3RlbS5JTy5TY3JpcHQgJ1Rlc3QnLCBJVkU="
    $decoded = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($b64))
    Invoke-Expression $decoded
    $dummy = 0x41414141
    '@
    
    # 3. Закодуйте фрагмент (Base64, UTF-16LE, як вимагає PowerShell)
    $bytes = [System.Text.Encoding]::Unicode.GetBytes($malicious)
    $encoded = [Convert]::ToBase64String($bytes)
    
    # 4. Запустіть PowerShell із закодованою командою
    $cmd = "powershell.exe -NoProfile -WindowStyle Hidden -EncodedCommand $encoded"
    Write-Host "Запуск шкідливого PowerShell..."
    Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -EncodedCommand $encoded" -WindowStyle Hidden
    
    # Примітка: Наведена вище командна стрічка міститиме рядки:
    #   Invoke-Expression, FromBase64String, System.Management.Automation.AmsiUtils, 0x41414141
    # які задовольняють умову виявлення Sigma.
  • Команди очищення:

    # Завершіть всі сторонні інстанції PowerShell, запущені тестом
    Get-Process -Name powershell | Where-Object {$_.StartInfo.Arguments -match "EncodedCommand"} | Stop-Process -Force
    
    # Видаліть будь-які тимчасові модулі або змінні (якщо вони були збережені)
    Remove-Variable -Name b64, decoded, dummy -ErrorAction SilentlyContinue

Кінець звіту