Всередині TAG-150: Еволюція торгівлі з DinDoor, DenoRAT та NightshadeC2
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
TAG-150 використовує складний багатоступеневий ланцюг проникнення, заснований на шкідливому програмному забезпеченні на основі Deno. Кампанія покладається на соціальну інженерію в стилі ClickFix для ініціювання виконання MSI інсталятора, який потім розгортає DinDoor, DenoRAT, і врешті-решт NightshadeC2. Використовуючи середовище виконання Deno, нападники отримують розширений віддалений доступ і можливості крадіжки інформації.
Розслідування
Підрозділ швидкого реагування на загрози eSentire порушив командування в стилі ClickFix всередині середовища одного з фінансових клієнтів. Розслідування виявило послідовність зараження, яка почалася з команди вікна запуску Windows, після чого була AI-згенерована стадія PowerShell, Griffin20.ps1, яка використовувалася для встановлення середовища виконання Deno. Наступні стадії включали DinDoor, DenoRAT, і завантажувач на основі Python, що в пам’яті доставляв NightshadeC2 RAT.
Заходи пом’якшення
Організації повинні розглянути можливість відключення вікна запуску Windows через об’єкти політики групи, де це можливо з операційної точки зору. Також рекомендується впровадження сильної програми тренувань з питань фішингу і безпеки, щоб зменшити успішність спроб ClickFix-стильних уловок. Розгортання антивірусів наступного покоління або рішень для виявлення та реагування на кінцеві точки є важливим для видимості, виявлення і стримування.
Відповідь
Якщо ця активність виявлена, слід негайно ізолювати постраждалий хост для стримання ланцюга зараження. Організації повинні залучити провайдера управління виявленням і реагуванням 24/7 або еквівалентну команду реагування на інциденти для підтримки швидкого стримування та повного виправлення. Рекомендується також постійний моніторинг виявлених компонентів шкідливого програмного забезпечення на основі Deno.
Потік атаки
Виявлення
Можливі точки стійкості [ASEPs – Software/NTUSER Hive] (через registry_event)
Proof of Value
Виконання Python з підозрілих папок (через cmdline)
Proof of Value
Завантаження або вивантаження через Powershell (через cmdline)
Proof of Value
Можлива спроба зловживання середовищем виконання Deno (через process_creation)
Proof of Value
LOLBAS Conhost (через cmdline)
Proof of Value
Виклик підозрілих методів .NET з Powershell (через powershell)
Proof of Value
Завантаження підозрілого виконуваного файлу (через proxy)
Proof of Value
IOC (HashSha256) для виявлення: DinDoor, DenoRAT і NightshadeC2: Аналіз еволюційних методів TAG-150
Proof of Value
Виявлення запитів GET до користувача та кінцевих точок подій-повідомлень, пов’язаних з DenoRAT [Windows Network Connection]
Proof of Value
Виконання симуляції
Попередня умова: Перевірка попередньої телеметрії та базових умов повинна бути пройдена.
Обґрунтування: Цей розділ детально описує точне виконання техніки противника (TTP), створеної для активації правила виявлення. Команди і розповідь МАЮТЬ точно відображати виявлені TTP і прагнути генерувати саме ту телеметрію, яку очікує логіка виявлення. Абстрактні або нерелевантні приклади призведуть до неправильного діагнозу.
-
Історія атаки та команди: Противник успішно закріпив свою позицію на хості Windows і намагається активувати своє маяк DenoRAT. Щоб уникнути традиційних підписних EDR, зловмисне ПЗ використовує мережеві патерни “Жити від землі”, комунікуючи через стандартний HTTP/S. Шкідливе ПЗ спробує перевірити на C2 сервер, відправивши запити GET до конкретних кінцевих точок
/userand/message-event. Ця імітація моделює поведінку маяка, щоб перевірити, що логіка виявлення SOC спрацьовує, коли ці специфічні рядки з’являються у журналах доступу в Інтернет. -
Скрипт для регресійного тестування:
# Скрипт симуляції маяка DenoRAT C2 # Цей скрипт моделює специфічні HTTP GET запити, що використовуються DenoRAT для спрацьовування правила виявлення. $C2_URL = "http://localhost" # Змініть на адресу вашого локального веб-сервера для тестування $Endpoints = @("/user", "/message-event") Write-Host "[+] Запуск симуляції DenoRAT C2..." -ForegroundColor Cyan foreach ($Endpoint in $Endpoints) { $Target = $C2_URL + $Endpoint Write-Host "[*] Моделюється перевірка C2: $Target" -ForegroundColor Yellow try { # Виконання GET запиту $Response = Invoke-WebRequest -Uri $Target -Method Get -ErrorAction SilentlyContinue Write-Host "[+] Запит відправлено. Код статусу: $($Response.StatusCode)" -ForegroundColor Green } catch { # Ми очікуємо на 404, якщо кінцеві точки насправді не існують, що прийнятно для тестування телеметрії Write-Host "[!] Запит відправлено (Очікуваний 404/Помилка з'єднання): $_" -ForegroundColor Gray } Start-Sleep -Seconds 2 } Write-Host "[+] Симуляція завершена." -ForegroundColor Cyan -
Команди очищення:
# Ніякі постійні зміни не вносяться симуляційним скриптом. # Щоб очистити журнали веб-сервера, якщо необхідно (Обережно: Це видаляє журнали!): # Remove-Item -Path "C:inetpublogsLogFilesW3SVC1*.log" -Force Write-Host "[+] Очищення: Постійні артефакти не були створені." -ForegroundColor Green