Кампанія фішингу ClickFix під виглядом встановлювача Claude
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 і будь-яких впроваджених процесів. Повинні бути скинуті креденціали, використані в ураженій системі, а історія браузера повинна бути перевірена для відстеження початкового заманювання. Логіка виявлення також повинна бути оновлена, щоб включати спостережувані домени, хеші і пов’язані патерни виконання.
Потік атаки
Виявлення
Підозрілий запис RunMRU із семантикою LOLBin (через registry_event)
Перегляд
Підозрілі рядки у PowerShell (через powershell)
Перегляд
Виклик підозрілих методів .NET із PowerShell (через powershell)
Перегляд
Ідентифікатори (HashSha256) для виявлення: Фішингова кампанія ClickFix, замаскована під інсталятор Claude
Перегляд
Виявлення обфускованого скрипта PowerShell і впровадження в процес через .NET [Windows Powershell]
Перегляд
Виконання симуляції
Передумова: Телеметрія та базова перевірка перед польотом повинні бути успішно пройдені.
Підстава: Цей розділ описує точне виконання техніки супротивника (TTP), розробленої для запуску правила виявлення. Команди та наратив МАЮТЬ безпосередньо відображати ідентифіковані TTP та мають на меті генерувати точну телеметрію, очікувану логікою виявлення.
-
Розповідь про напад і команди:
- Мета: Виконати шкідливе завантаження PowerShell, яке як закодоване base‑64, так і вбудоване із викликами .NET для здійснення впровадження процесу, імітуючи типовий «living‑off‑the‑land» напад.
- Кроки:
- Створити малу збірку .NET (C#), що викликає
OpenProcessandWriteProcessMemory(моделюється через PowerShell’s[System.Runtime.InteropServices.Marshal]). - Закодуйте скрипт PowerShell, що містить
Invoke-Expression,FromBase64String, та посилання наSystem.Management.Automation.AmsiUtils(використовується для обходу AMSI). - Додайте помилковий маркер
0x41414141, щоб імітувати «паддинг», часто помічений в обфускації. - Запустіть скрипт за допомогою
powershell.exeз повною командою на видимому довідку (щоб правило виявлення могло побачити рядки).
- Створити малу збірку .NET (C#), що викликає
-
Скрипт тесту регресії:
# ============================================================== # Симульоване шкідливе виконання 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
Кінець звіту