Содержание статьи
Бэкдоры этого семейства известны с марта 2022 года и довольно хорошо изучены. Впервые описала его возможности компания Trellix, схожий модуль также описывает компания Dr.Web под названием BackDoor.PlugX.38. Конкретно этот образец представляет собой многокомпонентную вредоносную программу, которая попадает на компьютер жертвы благодаря другому трояну‑загрузчику и работает в оперативной памяти машины.
Вредонос состоит из трех компонентов: исполняемого файла SNAC.EXE, имеющего действительную цифровую подпись, который загружает модифицированную злоумышленниками динамическую библиотеку WGXMAN.DLL с помощью техники DLL side-loading. В свою очередь, библиотека содержит зашифрованный файл SNAC.LOG, в котором спрятана полезная нагрузка. Библиотека запускает шелл‑код в функции DllMain
и расшифровывает файл SNAC.
. Далее исполняемый код, полученный после расшифровки этого файла, извлекает конфигурацию PlugX Talisman, а также основную полезную нагрузку PlugX, тоже представленную в виде динамической библиотеки. Она содержит основной модуль вредоноса PlugX Talisman, который загружается в память процесса SNAC.
.
В этой статье мы изучим образец вредоносной программы, научимся проводить ее анализ, найдем интересные участки в коде модуля, расшифруем файл SNAG.
, а также получим конфигурацию PlugX Talisman и извлечем основную полезную нагрузку PlugX.
info
О том, как из подручных материалов с помощью смекалки и умелых рук построить скворечник лабораторию для анализа вредоносов, подробно рассказано в статье «Код под надзором. Создаем виртуальную лабораторию для анализа малвари».
Инструментарий
Для дальнейшего исследования вредоносного файла воспользуемся следующим софтом:
- DIE — программа для определения типов файлов.
- PeStudio — программа для поиска артефактов в исполняемых файлах.
- IDA Pro — интерактивный дизассемблер, используемый для реверс‑инжиниринга.
- Wireshark — инструмент для анализа сетевых протоколов.
- Burp Suite — используется в качестве прозрачного прокси‑сервера с целью анализа взаимодействия вредоносного файла по протоколу HTTPS.
- Loki Scanner — сканер IOCs.
- YaraEditor — программа для тестирования и создания правил YARA.
- ApiLogger — утилита для анализа вызываемых WinAPI-функций исследуемого вредоноса.
- x64dbg — отладчик с открытым исходным кодом для Windows, предназначенный для анализа вредоносных программ.
- Process Hacker — утилита для мониторинга процессов и служб.
- Плагин mkYARA для IDA — плагин для генерации правил YARA на основе кода.
Первичный анализ
Прежде чем приступать к реверсу файлов, получим первичную информацию об исследуемых образцах. Загрузим файл SNAC.
в PeStudio. При анализе необходимо обратить внимание на строки, подключаемые библиотеки, версии файлов, сертификаты, а также на сведения о файле отладки, которые в некоторых случаях помогают атрибутировать разработчика.
Перейдем на вкладку Version.
Оригинальное имя файла — SNAC.
, цифровая подпись указывает на то, что файл разработан компанией Symantec Corporation.
Файл отладки расположен по следующему пути:
C:\bld_area\sesagent70\snac_build\bin.ira\snac.pdb
Перейдем на вкладку Libraries.
PeStudio определяет список библиотек, которые злоумышленники используют при написании вредоноса. Перейдем на вкладку Сertificate.
Файл SNAC.
является подписанным, безопасным файлом. Теперь откроем файл WGXMAN.
в PeStudio.
В файле присутствует строка о файле отладки:
C:\bld_area\sesagent70\snac_build\bin.ira\wgxman.pdb
Перейдем на вкладку Strings, в которой можно обнаружить строку SNAC.
.
Теперь выполним поведенческий анализ, получим информацию о процессе и запишем сетевой трафик. Запустим исполняемый файл SNAC.
, затем откроем Process Hacker и соберем информацию о процессе.
warning
Не рекомендуется исследовать вредоносные программы на рабочей операционной системе, поскольку это может привести к заражению машины и утере ценных данных.
После запуска исполняемого файла вредонос создал дочерний процесс conhost.
.
Нажмем два раза на имя этого процесса, откроем вкладку Modules.
Как видно из рисунка, вредонос загрузил динамическую библиотеку WGXMAN.
. Посмотрим генерируемый приложением трафик.
Модуль PlugX Talisman начинает устанавливать сетевое взаимодействие с управляющим сервером dhsg123[.]
. После получения адреса домена устанавливается TCP-соединение по порту 80.
Также исследуемый образец обращается к управляющему серверу по протоколу HTTP.
В результате первичного анализа мы получили информацию о вредоносном процессе, узнали адрес управляющего сервера, установили протокол взаимодействия, а также обнаружили интересные строки и описание файлов.
Разбор малвари
Приступим к подробному исследованию кода. Динамический анализ будем проводить с использованием утилиты x64dbg. Анализ псевдокода выполним в IDA Pro с установленным плагином HexRays. Чтобы получить наиболее полный результат, при анализе вредоносных программ необходимо комбинировать инструменты.
Программа SNAC.
представляет собой безопасный исполняемый файл, который имеет валидную цифровую подпись. Его основная задача — загрузка динамической библиотеки WGXMAN.
методом DLL side-loading. После загрузки библиотеки выполнение передается на функцию экспорта DllMain
. Далее динамическая библиотека расшифровывает исполняемый код в файле SNAC.
и передает выполнение на него.
Приступим к анализу. Для этого загрузим исполняемый файл SNAC.
в утилиту x64dbg, в которой будем проводить отладку. Также загрузим динамическую библиотеку WGXMAN.
в IDA.
Для проведения динамического анализа необходимо найти точку останова, с которой начинается выполнение основных функций программы. Для этого проанализируем код загружаемой библиотеки и найдем функцию, подходящую для этой цели.
В IDA открываем вкладку File → Open и выбираем файл WGXMAN.
. После загрузки файла мы попадаем на функцию DllMain
. Далее декомпилируем код, используя плагин HexRays, для этого нажимаем клавишу F5. И синхронизируем анализ кода на вкладке IDA View-A и Pseudocode-A, для чего перенесем вкладку Pseudocode-A в правую часть вкладки IDA View-A. Нажатием правой кнопки мыши выберем Syncronize with → IDA View-A, теперь при выборе участка кода он будет подсвечиваться в каждой вкладке.
Переходим в функцию sub_6FE443C
, эта функция и будет точкой входа во время динамической отладки. Проанализируем ее.
Функция sub_6FE42A0
служит для получения списка функций экспорта динамической библиотеки kernel32.
.
Начнем отладку в x64dbg. Для этого перейдем к функции sub_6FE443C
нажатием сочетания клавиш Ctrl-G, затем наберем адрес функции и разберем алгоритм расшифровки констант.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»