Приветствую! В прошлой статье мы проанализировали одну из самых популярных конечных полезных нагрузок инжектора 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 может быть связан с русскоязычными злоумышленниками. На это указывает наличие кириллицы в драйверах, которые устанавливает инжектор в ходе своей работы.

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

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

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

  1. Первый маскировался под легальный сайт расширения LastPass и на данный момент уже неактивен.  

  2. Второй же представляет собой страницу какого-то программного обеспечения с названием Galaxy Swapper. Сайт до сих пор активен, а ссылка ведет на файлообменник Mega. Обратите внимание на домен — .ru. 

Скачиваемый архив весит 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, и я до сих пор не могу понять что это. 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примерный алгоритм работы DotRunPex: 

  1. Обход UAC;

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

  3. Внедрение полезной нагрузки третьего этапа посредством использования метода ProcessHollowing. 

Обход UAC

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

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

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

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

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

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

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

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

Поэтому было принято решение задействовать немного другой метод, а именно — попытаться использовать 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 

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

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

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

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

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

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

\Registry\Machine\System\CurrentControlSet\Services\TaskKill

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

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

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

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

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

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

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

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

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

  2. Выделяется память в новом процессе для размещения зловредного кода.

  3. Оригинальный код в целевом процессе перезаписывается кодом злоумышленниика.

  4. Загружаются и инициализируются все необходимые библиотеки и зависимости для работы зловредного кода.

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

  6. Запускается зловредный код, замещающий оригинальный код в процессе.

И на этом работа инжектора подходит к концу. 

Выводы

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

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

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

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

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

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

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


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS

Комментарии (0)