В июне 2023 года известный разработчик вредоносного ПО разместил на популярном форуме dark web объявление о разработке загрузчика, над которым он трудился более 20 тыс. часов с 2017 года.
DarkGate Loader
Среди основных возможностей, выходящих за рамки типичного функционала загрузчика, были следующие:
- Скрытый VNC
- Исключение из Windows Defender
- кража истории браузера
- обратный прокси-сервер
- Файловый менеджер
- Похититель токенов Discord
В полученном Kaspersky Lab образце некоторые из этих функций отсутствуют, но это не имеет большого значения, поскольку они все равно включаются или отключаются в конструкторе. Однако Kaspersky Lab удалось восстановить цепочку заражения, состоящую из четырех этапов, вплоть до загрузки конечной полезной нагрузки: собственно DarkGate.
- Скрипт VBS-загрузчика: Скрипт довольно прост. Он устанавливает несколько переменных окружения для обфускации последующих вызовов команд. Затем с C2 загружаются два файла (Autoit3.exe и script.au3), и выполняется Autoit3.exe со скриптом script.au3 в качестве аргумента.
- Скрипт AutoIT V3: AutoIT V3 - это свободно распространяемый скриптовый язык, похожий на BASIC, который часто используется авторами вредоносных программ, так как позволяет имитировать нажатие клавиш и движения мыши, а также другие действия. Выполняемый скрипт обфусцирован, но в конечном итоге выделяет память под встроенный шелл-код и выполняет его.
- Шелл-код: Шелл-код довольно прост: он конструирует в памяти PE-файл, динамически разрешает импорт и передает ему управление.
- Исполнитель DarkGate (PE-файл, созданный шелл-кодом): Исполнитель загружает в память файл script.au3 и находит в нем зашифрованный блоб. Затем зашифрованный блоб расшифровывается (с помощью ключа XOR и заключительной операции NOT). В результате получается PE-файл, таблица импорта которого динамически разрешается. В итоге получается загрузчик DarkGate.
Загрузчик DarkGate имеет несколько глобальных переменных, фактически представляющих собой Delphi TStringList, состоящий из 17 переменных, которые описывают основную функциональность вредоносной программы:
- Переменная, которая устанавливается, если найден AV
- Переменная, которая устанавливается, если найдено виртуальное окружение
- Переменная, которая устанавливается, если найден процессор Xeon
- Номер порта C2
В основной функционал не входит загрузка вредоносного ПО, которая реализована в отдельном модуле.
Отдельно стоит отметить способ шифрования строк. Каждая строка шифруется уникальным ключом и собственной версией кодировки Base64 с использованием собственного набора символов.
Indicators of Compromise
MD5
- 149da23d732922b04f82d634750532f3
- 1b9e9d90136d033a52d2c282503f33b7