[ << ALL_FEED ]

Новое подключение к старым техникам

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

Новое подключение к старым техникам 📡

В ходе расследования инцидентов команда PT ESC IR обнаружила реверс-шелл, разработанный на .NET и наблюдаемый с 2023 года. Злоумышленниками он использовался для управления скомпрометированными хостами. ВПО создает процесс cmd.exe и перенаправляет поток ввода/вывода на управляющий сервер, который, как правило, являлся одним из хостов во внутренней инфраструктуре. Для безопасного сетевого соединения использовалась техника защищенного TCP-клиента с SSL/TLS.

❕ Особенность инструмента в том, что он реализован средствами компонента System.Windows.Data из состава Windows Presentation Framework. Сама техника не новая — примитивы выполнения кода с использованием System.Windows.Data активно применяются при эксплуатации уязвимостей. Рассмотрим его реализацию подробнее.

В функции Main (скриншот 1) демонстрируется техника прямого выполнения через ObjectDataProvider из пространства имен System.Windows.Data. Несмотря на отсутствие явного вызова метода, при последовательной настройке свойств ObjectInstance, MethodParameters и, в завершение, MethodName объект автоматически инициирует выполнение указанного метода (Connect.Start) — прямо во время его инициализации в методе Main. Использование обертки ExpandedWrapper<Connect, ObjectDataProvider> указывает на заимствование паттерна из известных gadget-цепочек для десериализации, хотя в данном случае эксплуатация происходит напрямую, без этапа сериализации.

Метод Connect.Start (скриншот 2) запускает системную командную оболочку (cmd.exe) в качестве дочернего процесса, асинхронно перехватывает ее вывод через обработчик P_OutputDataReceived и перенаправляет данные обратно на C2-сервер, одновременно используя кастомный делегат (Delegate.Combine) для динамической связи с компонентом Px, отвечающим за сетевую передачу команд и результатов. Такая архитектура позволяет злоумышленнику выполнять произвольные команды в контексте cmd.exe на зараженной машине, сохраняя взаимодействие основанным на легитимных API .NET.

В методе Net.Run (скриншот 3) реализована сетевая C2-логика, устанавливающая зашифрованное соединение с удаленным сервером через TcpClient и SslStream с принудительным использованием TLS 1.2; IP-адрес и порт берутся из зашифрованных конфигурационных данных (скриншот 4) и расшифровываются «на лету» с помощью AES256 в режиме CBC/NoPadding, причем для генерации ключа используется PBKDF2 (RFC 2898), на вход которого передается строковое значение пароля и соли (скриншот 5).

Для расшифровки данных конфигурации можно воспользоваться следующими рецептами CyberChef:

1. Генерация ключа, в который необходимо передать App.PasswordHash и App.SaltKey;

2. Алгоритм расшифровки.

🗂 Вредоносные файлы были расположены в легитимных каталогах:
• C:\Program Files\Internet Explorer\mshealthupdate.exe

• C:\Program Files\Common Files\System\msadds.exe

• C:\Program Files\Common Files\System\ado\msader.exe

Для закрепления в инфраструктуре и запуска исполняемых файлов злоумышленники использовали планировщик задач Windows.

Данный инструмент схож с реализацией общеизвестной утилиты ncat. Для вызова вредоносного метода используется легитимный класс ObjectDataProvider из системной библиотеки WPF, применяются делегаты для динамического подключения обработчиков, не оставляя четкой цепочки вызовов в IL-коде. Для шифрования вывода консоли используется TLS 1.2 и игнорируются ошибки сертификата (ValidateServerCertificate => true), что позволяет работать с любым C2, включая динамические IP.

YARA:

rule MSADDShell {
    strings:
        $v1 = "net_handlerDelOutDataNet"
        $v2 = "P_OutputDataReceived"
        $v3 = "add_OutputDataReceived"
        $v4 = "SendDataFwd"
        $v5 = "OnhandlerDelFwfPx"
        $v6 = "OnhandlerDelOutDataNet"
        $v7 = "msadds.exe" wide
    condition:
        uint16(0) == 0x5A4D and 5 of ($v*) and filesize < 100KB
}Code language: PowerShell (powershell)


#IOC #yara #dfir #detect #win #ti #ir
@ptescalator

Ещё от oUth0R

Ещё от oUth0R

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