• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Agent Tesla и DotRunpeX — история и анализ

baykal

(L2) cache
Пользователь
Регистрация
16.03.2021
Сообщения
370
Реакции
838
Приветствую, друзья. Если бы меня кто-то сейчас спросил, какое сегодня самое популярное вредоносное ПО в мире, я бы без раздумий ответил — Agent Tesla. Почему я так считаю? На этот вопрос я отвечу, прикрепив единственный скрин:
7de8ad2359abbf9f6a1cd9df2fedb038.png

163 тысячи сэмплов этого вредоноса, и больше двух тысяч было выгружено только за апрель. И эта кампания будет только набирать обороты, так как преступники начали экспериментировать с методами доставки и теперь используют передовой дроппер-инжектор DotRunpeX.

В статье мы разберем инфраструктуру этой коллаборации и проанализируем оба вредоноса, чтобы вы, дорогие читатели, не стали очередной жертвой хитрых злоумышленников.

Agent Tesla, что же ты такое на самом деле​

Agent Tesla — это не только шпионское ПО, которое способно похищать различные данные с устройства жертвы, но и троян удаленного доступа (RAT), с помощью которого злоумышленники могут взять под свой полный контроль целевую машину. Зловред также может собирать скриншоты, видео и захватывать данные из буфера обмена.

Впервые Агент Тесла появился в конце 2014 года и резко вырос в 2020-х годах, когда его использовали для фишинговых кампаний на тему COVID-19.

Ранее агент распространялся исключительно посредством фишинговых рассылок, которые отличилась своей продуманностью. Злоумышленники для прикрытия использовали реально существующие компании, их реальные логотипы и легитимные подписи. Такие атаки в основном были нацелены на аудиторию Центральной Европы, США и России. Чтобы узнать подробнее, советую ознакомиться с отчетом от Лаборатории Касперского.

Но с начала этого года методология атак с использованием вредоноса претерпела разительные изменения. Преступники отказались от спам-рассылок и начали совместную кампанию с новым дроппером-инжектором DotRunpeX.

Инжекторы — это семейство троянских программ, внедряющих свой код в память других программ.

Дро́пперы — семейство вредоносных программ, предназначенных для несанкционированной и скрытой от пользователя установки на компьютер жертвы других вредоносных программ, содержащихся в самом теле дроппера или загружаемых по сети. Говоря простым языком, после установки на ваше устройство дроппера, единственная его задача — загрузить другие вирусные файлы.

Agent Tesla — краткий статистический анализ​

Если вы подумали, что инжектор DotRunpex доставляет обычный исходный файл этого вируса, то ошибались. Даже после достаточно сложного процесса внедрения Агент не изменяет самому себе и задействует дропперно-инжекторную инфраструктуру для доставки своего основного «тела».

Конкретно наш образец маскируется под скомпилированный HTML файл справки Windows с расширением .CHM.

Давайте рассмотрим его более подробно, но сперва представлю сетап утилит, используемых в этой статье:
  1. DIE — Detect it Easy: многофункциональный инструмент, имеющий просто огромный арсенал. Позволит нам опередить тип компилятора вредоноса, язык, библиотеки и таблицы импорта/экспорта с последующим дизассемблированием.
  2. PE Bear — неплохой инструмент для просмотра и редактирования составляющих PE файла.
  3. Tiny Tracer — утилита для динамического отслеживания исполнения бинарных элементов. Так называемый трейсер.
  4. IDA PRO — инструмент для реверс-инжиниринга.
  5. Reko — декомпилятор, также знаком нам с прошлых статей.
  6. HollowHunter — утилита, распознает и сбрасывает множество потенциально вредоносных имплантов (замененные/имплантированные PE, шелл-коды, перехватчики, патчи в памяти).
Также очерчу примерный алгоритм выполнения конкретно этой версии Агента Теслы (хотелось обратить ваше внимание на то, что существует целая уйма разновидностей этого вредоноса. Сегодня на анализе версия, доставляемая исключительно с помощью инжектора DotRunpeX):
  1. Этап первый: .CHM загрузчик инжектора второго этапа.
  2. Этап второй: внедрение и выполнение Agent Tesla в памяти устройства жертвы.
  3. Полноценное развертывание вредоноса.

Этап первый: загрузка инжектора второго этапа​

Итак, все, что у нас имеется — это вредоносный .chm файл. Визуальный осмотр нам не даст ровным счетом ничего:

a0bb8d5c30464f88fe00a692e8c6c7b9.png

Далее, уже по классическому сценарию, мы выгружаем этот файл на Virustotal и получаем следующий результат:

d26d008eb2053c5899153c01a7af1811.png


Процент обнаружения достаточно неплох, и на том спасибо. При выполнении файла у нас перед глазами предстанет следующая картина:
76ab0111ca3dc8320b1d15c8892470f1.png

Безусловно, интересно, чего же стоит ожидать, наверное, пока пользователь кликнет правой кнопкой мыши и просмотрит исходный HTML код, который содержит странный обфусцированный JavaScript. Для его расшифровки мы можем воспользоваться любым бесплатным декодером из поисковика и получим следующий результат:

99ac06e6ed7a57f5086882090c956b97.png

Больше всего нас интересует строка, которая содержит в себе ссылку на некий .txt файл, который на самом деле является скриптом Windows PowerShell.

К слову, перейдя по этой ссылке, мы попадем на сайт какого-то сербского продуктового магазина. Забавно, что скачивание файла micro.txt, который содержит в себе полезную нагрузку Agent Tesla, таки произойдет. Администрация этого ресурса была уведомлена.

1ff5fb79813005323a46fc73e1143712.png

Этап второй: внедрение и выполнение Agent Tesla в памяти устройства жертвы​

Как уже упоминалось ранее, полученный нами файл является сценарием PowerShell, замаскированным под обычный .txt файл. К сожалению, сразу к его анализу перейти не представляется возможным, так как он обфусцирован.
24bba5849debad98b855179d7002297c.png

К счастью, мне удалось найти простой скрипт на Python, который с легкостью деобфусцирует это чудо. Сперва может показаться, что здесь совершенно ничего не понятно, но вот что происходит на самом деле:

Начинается все с переменной $TsbW, которая деобфусцирует и вызывает функцию tMCffSD, та, в свою очередь, распаковывает массив байтов, в котором и содержится основное тело вредоноса. Далее будет задействован простой .NET Reflection, с помощью которого полученный массив внедряется в память и выполняется.

Немного отклоняясь от темы, хочется добавить, что инжектор DotrunpeX действует похожим образом и также задействует отражение выполнения. Конечно, под большой вопрос ставится использование в этой цепочке двух инжекторов, так как это чуточку нелогично. Но не стоит исключать, что DotRunpeX находится в открытой продаже на закрытых теневых форумах, а используют его далеко не сами создатели Агента Теслы, отсюда и такое противоречащее решение.

Третий этап: полноценное развертывание вредоноса​

Итак, так как Агент сразу же внедряется в память и не оставляет никаких следов на диске устройства, единственное, что остается делать — это попытаться извлечь образец для анализа из самой памяти.

В этом нам поможет утилита Hollows Hunter, которую мы уже неоднократно использовали ранее. Процесс не стоит того, чтобы его описывать, так как он сводится к запуску одного исполняемого файла. Но Хантер оправдал мои ожидания, и теперь мы можем провести полноценный анализ.

daeb329eb268aca513184718c189cdeb.png

Весит тело Агента всего-то 209 КБ, при просмотре свойств не удалось найти полезной информации. Что же, давайте воспользуемся DIE для получения дополнительной информации о языке и компиляторе нашего вредоноса.

Факт попыток ухода от анализа и обнаружения явно стоит вашего внимания. Так как вредонос уже был запущен на машине, он прерывает выполнение любых утилит, которые могут угрожать его жизнедеятельности, поэтому DIE постоянно выдает ошибки, но некоторую информацию я все-таки смог извлечь:

35502cdda87d30c5b2086590da986f42.png

По дате компиляции сложно что-либо сказать, возможно, в этом образце инжектора использовалась старая версия Агента.

Также видим, что вредонос является библиотекой .NET, а в качестве компилятора использовался VB.NET.

Библиотеки .NET — по сути своей, являются конечным результатом компиляции кода на C#. К нашему счастью, мы с легкостью можем декомпилировать данный образец с помощью утилиты DNspy и провести анализ чистого исходного кода или, по крайней мере, чего-то близкого к нему.

Хотя в этом случае также видим, что был задействован какой-никакой обфускатор для защиты кода, обойти его достаточно просто. Для этого мы воспользуемся универсальной утилитой De4Dot. (Её сборку и компиляцию оставим за кадром, все это подробно описано на официальной странице на GitHub).

Вирустотал показал удовлетворительный коэффициент обнаружения, а это значит, что даже самый простенький антивирус поможет вам защититься от этой напасти:

74844a71880d707e0c429aa1d27b3a7d.png

Итак, теперь можем переходить к основному анализу в утилите DNSpy, но сперва позвольте очертить примерный алгоритм работы вредоноса:
  1. Первичное исследование системы, связь с C&C сервером и отправка информации.
  2. Загрузка дополнительного вредоносного файла и его запуск.
  3. Закрепление в системе.
  4. Непосредственно воровство данных и выполнение команд злоумышленника.

Первичное исследование системы, связь с C&C сервером и отправка информации​

Моему удивлению не было предела, когда точкой входа вредоноса оказался модуль, отвечающий за сбор информации об устройстве жертвы:

15c57c189bf0eb6acb55b03aa66b21b0.png

Как видите, вирус собирает данные о железе устройства, на котором был запущен: тип процессора и объем оперативной памяти. Также Агент запрашивает имя пользователя, название операционной системы и геолокацию.

Однако вредонос даже не проверяет доступность своего командного сервера, что является совсем нетипичным. Он просто создает POST запрос к ресурсу, передавая информацию.

Загрузка дополнительного вредоносного файла и его запуск​

Очень интересным аспектом этого вируса является возможность загрузки другого вредоносного ПО на устройство жертвы в зависимости от желаний злоумышленника. Реализована эта функция с помощью простого запроса по адресу какого-то сервера, содержащего в себе целевой файл.
5e4b017fcd9d9cdced5fda0d586bec88.png

Для вторичного вируса будет создана специальная директория по адресу: /AppData/LUU.

Закрепление в системе​

Важно отметить, что эта функция является настраиваемой и, если соответствующий параметр будет включен, то Агент Тесла закрепится в системе. В случае когда преступники не дали никаких указаний вредоносу на этот счет, функция будет автоматически пропущена.

9e266749890c194ec1b160a34f7de1db.png

Наш образец не устанавливает никакого постоянства, скорее всего, для ухода от анализа, так как добавление в автозагрузку вынуждает вредонос материализовать свою копию в папке AutoRun.

Но эту его возможность мы все равно разберем, ведь это можно рассматривать как индикатор обнаружения в некоторых случаях.

Во-первых, как я уже упомянул выше, вредонос сохранит свою копию в папке Автозагрузки.

Во-вторых, Агент создаст ключ в реестре Windows по следующему пути:
Код:
HKLM\SYSTEM\DriverDatabase\DeviceIds\PCI\VEN_1000&DEV_00E5&SUBSYS_020F1137
Фрагменты кода, отвечающие за этот процесс, вы можете увидеть ниже.

Кража данных​

Агент Тесла является многофункциональным вредоносом, он не только способен выполнять функции обычного стиллера данных, а также и выполнять множество команд злоумышленника на зараженной машине. Сперва разберем его стиллерную часть, а после перейдем к анализу подобия удаленного доступа.

Агент Тесла как стиллер​

Основным арсеналом вредоноса являются следующие функции:
  1. Кража всех типов данных из огромного списка браузеров: сохраненные авторизационные формы, данные о кредитных картах и прочее.
  2. Кража данных из менеджеров паролей.
  3. Захват и отправка любого файла на командный сервер.
Взаимодействие Теслы с браузерами очень простое, если сравнивать его с тем же Редлайном, то последний является венцом инженерной мысли, а наш исследуемый лишь где-то посредине.

Но есть в примитивности Агента и один небольшой плюс, он способен эффективно воровать данные более чем с 50 браузеров. За этот процесс отвечает функция mw_parsing_browser_db, которая просто выполняет поиск по имеющемуся словарю, в случае обнаружения копирует необходимую папку и добавляет её в архив, который после отправляется на командный сервер.

75349ec8dcd653d1559776656aa8f9d9.png

Здесь нет такой путаницы с определением целевых браузеров, как в RedLine, ведь их огромный список захардкоджен в этой же функции. Опять приведу в пример Редлайн, в котором определение списка «воруй это, а это не нужно» происходило с задействованием нескольких классов.

Под спойлером оставлю список браузеров, находящихся под прямой угрозой:
  • «Firefox», «%APPDATA%\\Mozilla\\Firefox\\»
  • «IceCat», «%APPDATA%\\Mozilla\\icecat\\»
  • «PaleMoon», «%APPDATA%\\Moonchild Productions\\Pale Moon\\»
  • «SeaMonkey», «%APPDATA%\\Mozilla\\SeaMonkey\\»
  • «Flock», «%APPDATA%\\Flock\\Browser\\»
  • «K-Meleon», «%APPDATA%\\K-Meleon\\»
  • «Postbox», «%APPDATA%\\Postbox\\»
  • «Thunderbird», «%APPDATA%\\Thunderbird\\»
  • «IceDragon», «%APPDATA%\\Comodo\\IceDragon\\»
  • «WaterFox», «%APPDATA%\\Waterfox\\»
  • «BlackHawk», «%APPDATA%\\NETGATE Technologies\\BlackHawk\\»
  • «CyberFox», «%APPDATA%\\8pecxstudios\\Cyberfox\\»
  • «Opera Browser», «%APPDATA%\\Opera Software\\Opera Stable»
  • «Yandex Browser», «%APPDATA%\\Yandex\\YandexBrowser\\User Data»
  • «Iridium Browser», «%APPDATA%\\Iridium\\User Data»
  • «Chromium», «%APPDATA%\\Chromium\\User Data»
Аналогичным образом будет организована попытка кражи данных из различных VPN сервисов, FTP клиентов и менеджеров паролей. Опять же, здесь их огромный список, поэтому я выберу актуальные для нашего региона:
  • OPEN VPN
  • NORDVPN
  • CYBERFOX
  • FTP GETTER
  • ManagerMULTI-VNC
  • MYSQL WORKBENCH
  • КЛИЕНТ FILEZILLA
  • FTP NAVI
И на этом все, как стиллер Агент Тесла выполняет лишь базовую работу, как вы могли понять, он не использует какие-то ухищрения или новые методы. Все максимально дефолтно, но самое печальное, что оно работает. Важно отметить, что этот вредонос опасен как раз таки из-за совмещения функций двух классов вредоносного ПО, Тесла одновременно и RAT, и стиллер.

Агент Тесла как троян удаленного доступа: кейллогер и захват экрана​

А вот здесь уже все намного интереснее. Во-первых, у оператора вируса есть возможность задействовать кейлоггер, который реализован прямо в коде основного вредоноса.
Кейлоггер — это любой компонент программного обеспечения или оборудования, который умеет перехватывать и записывать все манипуляции с клавиатурой компьютера. Далее такой вредонос отправляет все на командный сервер, прямо в лапы к злодеям.
d396c3d1c59a3f820089839f54cac5fa.png

Сегодняшний гость же использует системный вызов функции SetWindowsHookEx, которая способна захватывать лишь самые простые события ввода. Но этого уже достаточно, чтобы получить вводимые пароли.

Следом за этой функцией идет реализация захвата экрана устройства жертвы, реализована она с помощью функции System.Drawing.Imaging. Интересным является то, что эта возможность остается достаточно примитивной, ведь злоумышленник получит лишь несколько снимков экрана.

У нас на анализе уже был вредонос, который создавал небольшой стрим для злоумышленника, показывая не только рабочий стол, но и веб-камеру.

Экстрафильтрация данных​

Простыми словами, злоумышленник-оператор вредоноса может просматривать файловые каталоги на вашем устройстве, копировать интересующий его материал и отправлять на командный сервер.
391927f7f3f80fff670de2d3e82339ab.png

Аналогичным образом он может и загрузить на ваше устройство что угодно.

Наиболее используемым способом экстрафильтрации, конкретно в этом образце, является HTTP-запрос через TOP прокси. Для его реализации вредоносу нужно сперва скачать и установить сам клиент ТОР’a.
Реализовано все достаточно примитивно — через функцию DownloadString. Ссылка же, по которой будет производиться скачивание, просто захардкоджена в этом же классе.
Затем вредонос задействует функцию mw_tor_http_request, прежде определив целевой файл, и с её помощью выгружает данные на С&C сервер.

Краткий динамический анализ вредоноса​

Для динамического анализа у нас уже имеется следующий сетап утилит (все они находятся в открытом доступе):
  1. ProcessHacker — простенько и со вкусом, понаблюдаем за тем, как вирус взаимодействует с другими .dll и системой.
  2. TCPView — утилита, которая прослеживает исходящие TCP-соединения.
  3. Regshot — очень простое приложение с открытым исходным кодом, которое позволит просмотреть изменения в реестре после запуска вредоноса.
Определить, запущен ли на вашем устройстве конкретно Агент Тесла, без использования антивирусных приложений практически невозможно. Так как он не нагружает вашу систему до критических точек и не вызывает зависаний.
427ad4525ea5107eaa19eba55afe74a9.png


Но можно выделить общее правило для всех стиллеров — установка соединения. В случае, когда неизвестный процесс устанавливает связь с удаленным хостом, вам стоит воспользоваться хорошим антивирусом.
Этот образец пытается замаскироваться под Windows Defender, это вы можете увидеть на скриншоте, и подключается к какому-то серверу.
3d1ba230bf494c7b9b2d6785370e87c8.png

К слову, он расположен где-то возле Вроцлава в Польше. Так как Агент Тесла этой версии никак не закрепляется в системе, никаких изменений в реестре нам обнаружить не удалось.

Выводы​

Агент Тесла — вредонос, который кошмарит пользователей по всему миру уже больше 8 лет. Стиллер постоянно дорабатывается и совершенствуется как в методах доставки, так и в плане функциональности.
На сегодняшний день последняя версия этого вируса детектится практически всеми антивирусными приложениями, но не стоит забывать о инжекторе DotRunpeX, который активно распространяет этот и другие вирусы. С ним дела обстоят немного хуже, но об этом уже в следующей статье. А на этом у меня все, бывайте.

Автор статьи @DeathDay
источник habr.com
 
Приветствую! В прошлой статье мы проанализировали одну из самых популярных конечных полезных нагрузок инжектора DotRunPex. А в этой части разберемся и с самим инжектором.

DotRunpeX: что же ты такое на самом деле?​

Согласно отчету от компании CheckPoint (исследовательской лаборатории в области информационной безопасности), DotRunpeX — это новый инжектор, написанный на .NET с использованием технологии Process Hollowing. Он используется злоумышленниками для заражения целевых систем различными известными семействами вредоносных программ, такими как: Agent Tesla, Ave Maria, BitRAT, FormBook, LokiBot, NetWire, Raccoon Stealer, RedLine Stealer, Remcos, Rhadamanthys и Vidar.

Технология Process Hollowing (подмена, опустошение процесса) — создание процесса в состоянии ожидания с последующим удалением его из памяти и заменой образа процесса тем образом, который нужно скрыть.

Также известно, что злоумышленники используют Google ADS в этой кампании. Это та самая реклама в каком-то приложении из Google Play, которая привлекает ничего не подозревающих пользователей на поддельный сайт популярного программного обеспечения.

Специалисты CheckPoint обнаружили некоторые признаки того, что dotRunpeX может быть связан с русскоязычными злоумышленниками. На это указывает наличие кириллицы в драйверах, которые устанавливает инжектор в ходе своей работы.

96cb4d8b7cb605419e5fa9b6c724c4a4.png

На графике вы можете увидеть количество доставок определенного вредоносного ПО. Обратите внимание, что шифровальщиков среди этого списка практически нет, и это очень удивительно. Основную массу составляют стиллеры и трояны удаленного доступа. К слову, анализ первых трех вредоносов вы можете найти в этом же блоге.

Важным является то, что инжектор никогда не выступает в качестве полезной нагрузки первого этапа. Как и в случае с дроппером TrueBot, который использовал целую инфраструктуру других загрузчиков, чтобы под конец выполниться на целевой машине. Конкретно DotRunPex обычно загружает какой-то простенький и непопулярный дроппер. Скорее всего, эти дропперы пишутся самими злоумышленниками, так как в большинстве случаев они нигде не были замечены ранее.

Для распространения этого инжектора была организована целая цепочка с фейковых сайтов, и специалисты из Checkpoint обнаружили следующие два:
  1. Первый маскировался под легальный сайт расширения LastPass и на данный момент уже неактивен.
  2. Второй же представляет собой страницу какого-то программного обеспечения с названием Galaxy Swapper. Сайт до сих пор активен, а ссылка ведет на файлообменник Mega. Обратите внимание на домен — .ru.
c5710199da942b4db59031a7912dc8ca.png

Скачиваемый архив весит 134 МБ и содержит в себе два файла: setup_1.exe и setup_2.exe.

DotRunpeX — краткий статистический анализ​

Сперва очертим примерные ступени работы этого вредоноса:
  1. Первичная полезная нагрузка: безымянный дроппер, загружающий сам инжектор.
  2. Вторичная полезная нагрузка: Дотранпекс собственной персоной.
  3. Третичная полезная нагрузка: стиллер или троян удаленного доступа.
А теперь сетап утилит, которые мы будем использовать для анализа:
  1. DIE — Detect It Easy: многофункциональный инструмент, имеющий просто огромный арсенал. Позволит нам опередить тип компилятора вредоноса, язык, библиотеки и таблицы импорта/экспорта с последующим дизассемблированием.
  2. PE Bear — неплохой инструмент для просмотра и редактирования составляющих PE-файла.
  3. Tiny Tracer — утилита для динамического отслеживания исполнения бинарных элементов. Так называемый трейсер.
  4. IDA PRO — инструмент для реверс-инжиниринга.
  5. Reko — простой декомпилятор.
  6. HollowHunter — утилита, распознает и сбрасывает множество потенциально вредоносных имплантов (замененные/имплантированные PE, шелл-коды, перехватчики, патчи в памяти).
  7. OLDROD — это автоматизированная утилита, которая поможет дизассемблировать приложение .NET, защищенное виртуализатором KoiVM для ConfuserEx. Кроме того, он поможет перекомпилировать код виртуальной машины обратно в .NET и восстановить исходный код.
  8. X64dbg — это отладчик (debugger) кода для 64-битных операционных систем Windows. Он используется разработчиками и исследователями для анализа и отладки исполняемых файлов и процессов, работающих на 64-битных системах.

Полезная нагрузка первого этапа: безымянный дроппер​

Итак, приступаем к визуальному осмотру. Первое, что бросается в глаза, — это наличие двух якобы установщиков. Первый так и вовсе весит 843 МБ и не имеет ни иконки, ни вразумительного описания. Второй, напротив, оснащен цифровой подписью, авторскими правами и даже сертификатом. Согласитесь, выглядит все достаточно правдоподобно, так как если его запустить, то действительно установится какой-то Swapper, и я до сих пор не могу понять что это.

3621a3d4ba70807bbe2972b65b43ed8d.png


eb872e3143e3ce7aef0efb28afb3b8de.png

Но вся эта иллюзорная праведность второго установщика ни к чему, когда первый не имеет о себе никаких сведений, что только и вызывает подозрения.

К слову, из-за своего большого веса второй образец загрузить на VirusTotal или любой подобный сервис невозможно. И, конечно, если мы воспользуемся поиском по хешу, то тоже ничего не сможем обнаружить.

Поэтому перейдем к DIE, чтобы получить хоть какие-то сведения об этом странном файле.

327adeeb387c5f8ab5e192b4e475f588.png

Как видим, это у нас библиотека .NET, а в качестве компилятора использовался Microsoft Linker.

Библиотеки .NET — по сути своей, являются конечным результатом компиляции кода на C#. К нашему счастью, мы с легкостью можем декомпилировать данный образец с помощью утилиты DNspy и провести анализ чистого исходного кода или, по крайней мере, чего-то близкого к нему.

Что ж, теперь перейдем к DNspy и заглянем внутрь образца, дабы определить специфику его работы. А здесь происходит какая-то вакханалия, и понять, что к чему, на точке входа просто невозможно.

c47ab63cf7c3614a6ee79376c9d68a5e.png

Но стоило немного поискать необходимые строки, и все стало на свои места: как видим, дроппер использует динамические методы и небольшой обход AMSI:

96be6bdeaa7f9b0d16e84cb826584855.png

AMSI — это универсальный стандарт интерфейса, позволяющий приложениям и службам интегрироваться с любым антивредоносным продуктом, присутствующим на компьютере.

Ещё одна интересная вещь была обнаружена во время написания статьи о стиллере Redline. В поисках необходимого образца для анализа мне удалось найти очень много якобы кряков самой серверной части вредоноса.

96272d1a1a53f99c01d2e485d720ffc2.png

К моему огромному удивлению, именно это название и аналогичный хэш фигурируют в отчете от CheckPoint. Оказалось, что так называемый билдер в этих кряках одновременно и дроппер нашего сегодняшнего гостя — DotRunpeX.

Также стоит отметить, что злоумышленники изрядно постарались, ведь каждый дроппер является уникальным. Извлечение самого инжектора с помощью Asm Resolver не является сложной задачей и не стоит того, чтобы его описывать.

Полезная нагрузка второго этапа: непосредственно DotRunPex​

Обращу ваше внимание на то, что существует две версии этого вредоноса: старая и новая. Старая уже не используется злоумышленниками, а вот новая обрела невиданную популярность, поэтому её анализом мы и займемся.

Первичный визуальный осмотр не даст ровным счетом никаких данных, они полностью будут дублировать те, которые мы видели при осмотре дроппера первого этапа. Разве что исходный размер немного изменился — 352 КБ.

Также вредонос был выгружен на Virustotal, и результаты более чем утешительные:

339553ef52ed9dfb52437bb5542d5040.png

Большинство современных антивирусов способны обнаружить и обезвредить это «чудо»‎.

Воспользуемся DIE для получения дополнительных сведений об исполняемом файле:

ff91f013a0266a84540c4ab9dafa5eb1.png

Как можно увидеть на скрине, информация полностью повторяет то, что мы наблюдали ранее. Снова у нас библиотека .NET, а в качестве компилятора опять использовался Microsoft Linker.

Для просмотра исходного кода мы воспользуемся утилитой DNSpy, но, как оказалось, здесь не все так просто. Ведь при попытке просмотреть существующие классы нас везде будет преследовать так называемый KoiVM, а сам код будет практически нечитаемым.

a30785b3649a55514f6dec76fba5dd23.png

KoiVM — это виртуальная машина (VM) для обфускации и защиты программного кода, разработанная специально для языка программирования .NET. KoiVM используется для усложнения процесса обратной разработки и анализа программ, защиты от нежелательного доступа к исходному коду и уменьшения риска кражи интеллектуальной собственности.

И, к огромному сожалению, она очень часто используется именно злоумышленниками. Обойти её было бы возможно с помощью утилиты Oldrod, но здесь преступники воспользовались кастомным алгоритмом KoiVM, из-за чего Олд не сможет ничего сделать без дополнительных настроек. Код можно нормализовать до определенной степени вручную, однако займет это немало времени. Но обо всем этом позже.

Примерный алгоритм работы DotRunPex:
  1. Обход UAC;
  2. Выгрузка вредоносного драйвера.
  3. Внедрение полезной нагрузки третьего этапа посредством использования метода ProcessHollowing.

Обход UAC​

Обход UAC (User Account Control) — это процесс обхода или обхода механизма контроля учетных записей пользователя, встроенного в операционные системы Windows.

Механизм UAC был введен компанией Microsoft, чтобы повысить безопасность операционной системы, ограничить привилегии пользователей и предотвратить несанкционированный доступ к системным ресурсам.

Когда включен механизм UAC, пользователи получают запрос на подтверждение административных действий или изменений в системе, например, при установке программного обеспечения или изменении настроек системы. Это помогает предотвратить случайное или злонамеренное вмешательство в системные файлы или настройки.

Однако некоторые злоумышленники могут попытаться обойти механизм UAC, чтобы получить повышенные привилегии и выполнить вредоносные действия на компьютере без согласия пользователя. Это и делает наш инжектор сразу е после запуска.

Для этого процесса у него существует класс, имеющий название UACBypass. На самом деле здесь нет ничего сверхнового или интересного. Инжектор просто изменяет реестр Windows, полностью отключая предупреждения:

4cbe3aced92c3d1326b4ed9bcf99bc8c.png

Выгрузка вредоносного драйвера​

И на этом этапе начинаются некие танцы с бубном, потому что полностью девиртуализировать код мне не удалось. Бесспорно, вышеупомянутый мной инструмент OldRod очень хорош, но его в данном случае недостаточно. И это с учетом того, что в его конфигурации можно установить соответствие констант. Но выяснить, что это за константы — та ещё задача.

7ad3f205dbb2a8c9eb7f91ba949dc747.png

И если с другим вредоносом это бы сработало, то в случае с этим инжектором значения этих констант зависят от арифметических присваиваний во время выполнения, и они зашифрованы очень хорошим образом.

Поэтому было принято решение задействовать немного другой метод, а именно — попытаться использовать DBI отладчик.

Dynamic Binary Instrumentation (DBI) отладчик — это инструмент, который позволяет анализировать и модифицировать исполняемый код программы во время выполнения. DBI отладчики работают на уровне машинного кода и позволяют исследовать и изменять поведение программы, не требуя доступа к исходному коду или перекомпиляции программы.

В нашем случае это будет x64dbg и вот этот Python скрипт, который создаст необходимый сценарий для установки точек останова в определенных методах инжектора, что позволит нам посмотреть большинство вызовов, генерируемых вредоносом, и в конечном счете проследить за ними.

И получаем мы следующий список
Код:
loadlib ntdll
loadlib user32
loadlib advapi32
SetBPX VirtualAllocEx
SetBPX CreateProcessA
SetBPX CreateProcessW
SetBPX CreateRemoteThread
SetBPX Wow64SetThreadContext
SetBPX Wow64GetThreadContext
SetBPX NtResumeThread
SetBPX ZwUnmapViewOfSection
SetBPX NtWriteVirtualMemory
SetBPX MessageBoxA
SetBPX MessageBoxW
SetBPX GetModuleHandleA
SetBPX GetModuleHandleW
SetBPX FindWindowA
SetBPX FindWindowW
SetBPX GetProcAddress
SetBPX GetFileAttributesA
SetBPX GetFileAttributesW
SetBPX ShowWindow
SetBPX SetForegroundWindow
SetBPX Wow64DisableWow64FsRedirection
SetBPX Wow64RevertWow64FsRedirection
SetBPX CreateFileA
SetBPX CreateFileW
SetBPX RtlInitUnicodeString
SetBPX NtLoadDriver
SetBPX NtUnloadDriver
SetBPX OpenProcessToken
SetBPX LookupPrivilegeValueA
SetBPX LookupPrivilegeValueW
SetBPX AdjustTokenPrivileges
SetBPX CloseHandle
SetBPX NtQuerySystemInformation
SetBPX DeviceIoControl
SetBPX GetProcessHeap
SetBPX HeapFree
SetBPX HeapAlloc
SetBPX RtlCopyMemory
Здесь нас интересуют вызовы, которые отвечают за создание процессов, запись чего-то в участки памяти, создание файлов и выгрузки драйвера.

Раз уж этот раздел о вредоносном драйвере, который выгружает инжектор, давайте разберемся, что же это такое.

Начинается все с вызова CreateFileW, который создает файл по следующему пути:
Код:
C:\Users\XXX\AppData\Local\Cache\Иисус.sys
Конечная директория может отличаться, в зависимости от версии инжектора, так как он постоянно дорабатывается. Но имя файла всегда остается неизменным и всегда написано кириллицей.

При просмотре подробной информации об этом файле нам ничего не удастся узнать:

c8e5b6bd6dff40c8aefe66dcdab78ae4.png

Только то, что он был создан 11 апреля 2023, но опираясь на отчет от CheckPoint, можно сказать, что это драйвер компонента Process Explorer.

Process Explorer — это программа для мониторинга и анализа процессов, работающих на операционной системе Windows. Она была разработана компанией Microsoft и представляет собой усовершенствованную версию стандартного диспетчера задач Windows.

Process Explorer имеет более продвинутый интерфейс и функциональность по сравнению с диспетчером задач Windows. Он позволяет более точно анализировать процессы, их взаимосвязи, а также обнаруживать и анализировать потенциально вредоносные процессы или процессы, потребляющие большое количество системных ресурсов.

После создания этого файла будет задействован системный вызов NtLoadDriver, отвечающий за инсталляцию этого драйвера путем создания соответствующего ключа в реестре Windows:
Код:
\Registry\Machine\System\CurrentControlSet\Services\TaskKill

6f5fba795f98439da991355caf192401.png

Затем Дотранпекс подключится к установленному драйверу и проанализирует список запущенных процессов. Но зачем? Это своеобразный защитный механизм, ведь с помощью process explorer вредонос уничтожает неугодные ему службы, список которых жестко задан в его коде.

Причиной использования драйвера process explorer является то, что служба противомалварного программного обеспечения обычно работает как защищенный процесс, точнее как процесс с повышенными привилегиями (PPL), поэтому Windows не воспринимает действия от её лица как злонамеренные и не завершает свою работу.

Внедрение полезной нагрузки третьего этапа​

Итак, полезной нагрузкой третьего этапа является любой вредонос, который был вшит в инжектор, его анализ был представлен в первой статье.

Стоит отметить, что старая версия использовала тот же метод внедрения вредоносного кода в систему, но на более примитивном уровне.

Полезная нагрузка третьего этапа зашифрована с помощью простого XOR в ресурсе BIDEN_HARRIS_PERFECT. После её расшифровки происходит обращение к методу Inject. Думаю, что по названию и так понятно, что он делает.

Это очень простой метод реализации метода Process Hollowing.

5c8fce9f6aec8a61f55074bf1ec069b1.png

Метод Process Hollowing является техникой внедрения вредоносного кода в процессы, которая позволяет заменить исполняемый код легитимного процесса на злоумышленный код без вызова внешних файлов. Этот процесс обычно происходит следующим образом:
  1. Создание нового процесса, который будет целью для внедрения кода. Часто выбираются легитимные процессы, чтобы уменьшить вероятность обнаружения.
  2. Выделяется память в новом процессе для размещения зловредного кода.
  3. Оригинальный код в целевом процессе перезаписывается кодом злоумышленниика.
  4. Загружаются и инициализируются все необходимые библиотеки и зависимости для работы зловредного кода.
  5. Исходный код, который должен быть заменен, сохраняется для последующего восстановления.
  6. Запускается зловредный код, замещающий оригинальный код в процессе.
И на этом работа инжектора подходит к концу.

Выводы​

Это была очень сложная статья, на написание которой ушло достаточно много времени. Я до сих пор не уверен, что она получилась хорошей.

DotRunpex — это передовой инжектор, который активно используется в атаках и способен доставлять разнообразные вирусы. Самыми опасными из них являются Agent Tesla, RedLine Stealer и Vidar.

Отдельного внимания стоит то, что Дотранпекс до сих пор дорабатывается своими создателями, и происходит это не по дням, а по часам. Также вредонос использует настроенный виртуализатор кода KoiVM, что знатно усложняет процесс анализа, но в этом есть и свои плоды, так как это практически исключает появление сторонних модификаций.

Заметьте, что DotRunPex может распространяться самыми разнообразными способами, так как находится в продаже на теневых форумах. Та информация, которая была представлена в статье, является лишь вершиной айсберга. Это если судить по количеству загруженных сэмплов инжектора на VirusTotal, а их очень много. И вряд ли все ограничилось лишь каким-то GalaxySwapper’ом.

На данный момент вредонос спокойно может быть обезврежен с помощью любого современного антивируса.

А на этом у меня все. Бывайте.

Автор статьи @DeathDay
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх