Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В 2022 году несколько антивирусных компаний опубликовали обзоры написанного на C бекдора из семейства PlugX под названием Talisman. На примере этого трояна мы разберем, как выполняется динамический и статический анализ вредоносного ПО, а также создадим собственные сигнатуры для детектирования исследуемого образца.
Бекдоры этого семейства известны с марта 2022 года и довольно хорошо изучены. Впервые описала его возможности компания Trellix, схожий модуль также описывает компания Dr.Web под названием BackDoor.PlugX.38. Конкретно этот образец представляет собой многокомпонентную вредоносную программу, которая попадает на компьютер жертвы благодаря другому трояну‑загрузчику и работает в оперативной памяти машины.
Вредонос состоит из трех компонентов: исполняемого файла SNAC.EXE, имеющего действительную цифровую подпись, который загружает модифицированную злоумышленниками динамическую библиотеку WGXMAN.DLL с помощью техники DLL Sideloading. В свою очередь, библиотека содержит зашифрованный файл SNAC.LOG, в котором спрятана полезная нагрузка. Библиотека запускает шелл‑код в функции DllMain
и расшифровывает файл SNAC.LOG
. Далее исполняемый код, полученный после расшифровки этого файла, извлекает конфигурацию PlugX Talisman, а также основную полезную нагрузку PlugX, тоже представленную в виде динамической библиотеки. Она содержит основной модуль вредоноса PlugX Talisman, который загружается в память процесса SNAC.EXE
.
Принцип работы PlugX Talisman
В этой статье мы изучим образец вредоносной программы, научимся проводить ее анализ, найдем интересные участки в коде модуля, расшифруем файл SNAG.LOG
, а также получим конфигурацию PlugX Talisman и извлечем основную полезную нагрузку PlugX.
info
О том, как из подручных материалов с помощью смекалки и умелых рук построить скворечник лабораторию для анализа вредоносов, подробно рассказано в статье «Код под надзором. Создаем виртуальную лабораторию для анализа малвари».
Для дальнейшего исследования вредоносного файла воспользуемся следующим софтом:
Прежде чем приступать к реверсу файлов, получим первичную информацию об исследуемых образцах. Загрузим файл SNAC.EXE
в PeStudio. При анализе необходимо обратить внимание на строки, подключаемые библиотеки, версии файлов, сертификаты, а также на сведения о файле отладки, которые в некоторых случаях помогают атрибутировать разработчика.
Перейдем во вкладку Version.
Описание исполняемого файла
Оригинальное имя файла — SNAC.exe
, цифровая подпись указывает на то, что файл разработан компанией Symantec Corporation.
Строка файла отладки
Файл отладки расположен по следующему пути:
C:bld_areasesagent70snac_buildbin.irasnac.pdb
Перейдем во вкладку Libraries.
Подключаемые библиотеки
PeStudio определяет список библиотек, которые злоумышленники используют при написании вредоноса. Перейдем во вкладку Сertificate.
Информация о подписи файла
Файл SNAC.exe
является подписанным, безопасным файлом. Теперь откроем файл WGXMAN.DLL
в PeStudio.
Описание файла
В файле присутствует строка о файле отладки:
C:bld_areasesagent70snac_buildbin.irawgxman.pdb
Перейдем во вкладку Strings, в которой можно обнаружить строку SNAC.LOG
.
Теперь выполним поведенческий анализ, получим информацию о процессе и запишем сетевой трафик. Запустим исполняемый файл SNAC.EXE
, затем откроем Process Hacker и соберем информацию о процессе.
warning
Не рекомендуется исследовать вредоносные программы на рабочей операционной системе, поскольку это может привести к заражению машины и утере ценных данных.
После запуска исполняемого файла вредонос создал дочерний процесс conhost.exe
.
Процесс SNAC.exe
Нажмем два раза на имя этого процесса, откроем вкладку Modules.
Загружаемая библиотека WGXMAN.dll
Как видно из рисунка, вредонос загрузил динамическую библиотеку WGXMAN.dll
. Посмотрим генерируемый приложением трафик.
Взаимодействие с управляющим сервером
Модуль PlugX Talisman начинает устанавливать сетевое взаимодействие с управляющим сервером dhsg123[.]jkub[.]com
. После получения адреса домена устанавливается TCP-соединение по порту 80.
Содержимое TCP-пакета
Также исследуемый образец обращается к управляющему серверу по протоколу HTTP.
Содержимое HTTP-пакета
В результате первичного анализа мы получили информацию о вредоносном процессе, узнали адрес управляющего сервера, установили протокол взаимодействия, а также обнаружили интересные строки и описание файлов.
Приступим к подробному исследованию кода. Процесс динамического анализа будем проводить с использованием утилиты x64dbg. Анализ псевдокода выполним в IDA Pro с установленным плагином HexRays. В процессе анализа вредоносных программ необходимо комбинировать используемые инструменты для получения наиболее полного результата.
Программа SNAC.EXE
представляет собой безопасный исполняемый файл, который имеет валидную цифровую подпись. Его основная задача — загрузка динамической библиотеки WGXMAN.DLL
методом DLL Side-loading. После загрузки библиотеки выполнение передается на функцию экспорта DllMain
. Далее динамическая библиотека расшифровывает исполняемый код в файле SNAC.LOG
и передает выполнение на него.
Приступим к анализу, для этого загрузим исполняемый файл SNAC.EXE
в утилиту x64dbg, в которой будем проводить отладку. Также загрузим динамическую библиотеку WGXMAN.DLL
в IDA.
Для проведения динамического анализа необходимо найти точку останова, с которой начинается выполнение основных функций программы. Для этого проанализируем код загружаемой библиотеки и найдем функцию, подходящую для этой цели.
В IDA открываем вкладку File → Open и выбираем файл WGXMAN.DLL
. После загрузки файла мы попадаем на функцию DllMain
. Далее декомпилируем код, используя плагин HexRays, для этого нажимаем клавишу F5. И синхронизируем анализ кода во вкладке IDA View A и Pseudocode A, для чего перенесем вкладку Pseudocode A в правую часть вкладки IDA View A. Нажатием правой кнопки мыши выберем Syncronize with → IDA View A, теперь при выборе участка кода он будет подсвечиваться в каждой вкладке.
Участок кода функции DllMain
Переходим в функцию sub_6FE443C
, эта функция и будет точкой входа во время динамической отладки. Проанализируем ее.
Код функции sub_6FE443C
Функция sub_6FE420
служит для получения списка функций экспорта динамической библиотеки kernel32.dll
.
Содержимое функции sub_6FE42A0
Начнем отладку в x64dbg. Для этого перейдем к функции sub_6FE443C
нажатием сочетания клавиш Ctrl-G, затем наберем адрес функции и разберем алгоритм расшифровки констант.
Переход по адресу 6FE443C
Источник: xakep.ru