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

17 Apr 2026 14:49 UTC

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

Потік атаки

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

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

Підстава: Цей розділ описує точне виконання техніки супротивника (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

Кінець звіту