Когда-нибудь обман будет настолько дешевым – что мы будем вынуждены стать самыми честными
DCRat в отличие от хорошо финансируемых, массивных российских опасных групп, создающих собственные вредоносные программы, является работой одиночки, предлагающего удивительно эффективный самодельный инструмент для открытия бэкдоров за бесценок. Коммерческая версия продается по цене ниже стандартной, которую такие инструменты продают на российских серых-теневых форумах.
DCRat так же известен как DarkCrystal RAT – малварь, был впервые выпущен в 2018 году, а затем переработан и вновь запущен год спустя. Этот вирус был разработан и поддерживается одним человеком под псевдонимами boldenis44, crystalcoder и Кодер.
Цена DCRat составляет – 500р за 2 месяца. Неудивительно, что он так популярен как среди профессионалов, так и среди любителей.
Такой ценовой диапазон – любопытная особенность, поскольку создается впечатление, что автор не особенно стремится к прибыли. Возможно, он просто метит широкую сеть, пытаясь получить немного денег от большего количества людей. Возможно также, что у него есть альтернативный источник финансирования, возможно, это проект страсти, а не основной источник дохода, а может автор собирает собранные другими людьми логи.
Содержание
В глубь кристалла
Модульная архитектура и индивидуальная система плагинов делают его очень гибким вариантом, полезным для целого ряда вредоносных целей. Сюда входят наблюдение, разведка, кража информации, DDoS-атаки, а также динамическое выполнение кода на различных языках.
Сам DCRat состоит из трех компонентов:
- Исполняемый файл стилера/клиента
- Одна PHP-страница, служащая конечной точкой/интерфейсом командно-контрольной системы (C2)
- Инструмент администратора
Инструмент администратора представляет собой автономный исполняемый файл, написанный на языке программирования JPHP, малоизвестной реализации PHP работающей на виртуальной машине Java. JPHP предлагает некоторые потенциальные преимущества для причинения вреда.
Как язык программирования, целевая аудитория JPHP – это прежде всего разработчики начального уровня, создающие кроссплатформенные настольные игры. Простота использования, а также переносимость его кода хорошо подходят для этой цели. Автор вредоносного ПО мог выбрать этот формат, потому что он малоизвестен, или ему не хватало навыков программирования на других, более популярных языках.
Согласно документации JPHP, эта реализация “компилирует исходники PHP в байт-код виртуальной машины Java (JVM), который затем может выполняться на JVM”. Проект JPHP также предоставляет специализированную русскоязычную интегрированную среду разработки (IDE) под названием DevelNext. Эта IDE использовалась для разработки инструмента администратора, а также некоторых ранних версий клиента DCRat.
Данные о местоположении, доступные в общедоступных профилях GitHub, указывают на то, что основная группа разработчиков JPHP в подавляющем большинстве базируется в СНГ. Решение автора использовать JPHP могло быть обусловлено либо предполагаемым уровнем доверия, либо просто убеждением, что бы получить поддержку по вопросам или улучшением, связанным с фреймворком JPHP, было бы проще благодаря общему знакомству с русским языком.
Изучение сборки DCRat
.exe написан на .NET, ранние версии были написаны на JPHP. JPHP медленный, так как работает на JVM, на .NET вес намного меньше, так как не включает все библиотеки JPHP.
DCRat построен на модульной архитектуре, включающей структуру плагинов, одни люди могут создавать собственные плагины, а другие люди использовать их.
Клиенты DCRat развертывались с использованием маяков Cobalt Strike через Prometheus TDS (система направления трафика).
Подробный анализ клиента DCRat был опубликован Mandiant в мае 2020 года. Всего через несколько дней после публикации этого отчета автор вредоносного ПО перенес распространение на новый домен. Ясно, что киберпреступники все больше узнают об огласке СМИ, и сообщества безопасности, и они привыкают вносить быстрые изменения в ответ на это “разоблачение”.
Стоит отметить, что существует второй RAT с открытым исходным кодом под названием DcRat, который можно найти в репозитории GitHub пользователя “qwqdanchun”. Скорее всего, это совершенно несвязанный проект. Хотя он не имеет большого сходства кода с DCRat, он мог послужить источником вдохновения, или вдохновить.
Какие будут предложения?
DCRat, плагины, среда разработки плагинов и дополнительные инструменты в настоящее время размещены на crystalfiles.ru. Эти компоненты были перенесены туда с dcrat.ru (сайт конфискован Федеральным бюро). Веб-сайт crystalfiles служит только точкой загрузки для RAT. У него нет дополнительной информации или ресурсов для потенциальных или существующих клиентов.
Весь пиар и продажи осуществляются через lolz.guru, ‘тот самый лолз. Темы поддержки доступны здесь для широкой публики, в то время как основная ветка предложений ограничена только для зарегистрированных пользователей.
Возможно, RAT также продается на других форумах с ограниченным доступом или в “даркнете”. Наиболее распространенное имя файла в разных версиях RAT – 1ac770ea1c2b508fb3f74de6e65bc9c4.zip
.
Все новости и обновления для DCRat публикуются в телеграм канале.
Помимо ТГ-канала @DarkCrystalRAT, есть еще два ТГ-бота: один для продажи @DCRatSeller_bot и тех. поддержка @CrystalSupport_bot.
Последние цены на лицензии DCRat (без учета временных скидок):
- 600 руб. – два месяца
- 2500 руб. – год
- 4500 руб. – пожизненно
Автор
Хотя разработчик DCRat пишет на форуме lolz[.]guru под ником – Кодер, его дескриптор Telegram – @boldenis, а имя пользователя GitHub – boldenis44, исходя из ссылки на ресурс, спрятанной в исходном коде DCRat. Должно быть, он использовал последнее имя на lolz[.]guru в какой-то момент, поскольку некоторые пользователи все еще называют его так. Он указал свой джаббер – crystalcoderexploit[.]im. Дата рождения и адрес, указанные в их профиле на рисунке, скорее всего – фейковые.
В профиле на форуме lolz[.]guru указано, что разработчик русский и работает один.
У Boldenis44 также есть аккаунты на форуме по взлому игр blast[.]hk, российском сервере Minecraft gamai[.]ru, а также на российском даркмаркете DarkNet[.]ug.
[su_image_carousel source=”media: 2157,2156″ limit=”0″ controls_style=”light” crop=”none” dots=”no” autoplay=”0″ speed=”fast” outline=”no”]Также существует профиль Darkcrystal Rat в ВК, (dcrat_1994), но неясно, принадлежит ли он тому же человеку, что и Boldenis44/Кодер.
Аватарка была взята из фильма “Кто Я” И была изменена.
В ВК был найден еще один профиль, в котором упоминался URL crystalfiles[.]ru, – Родион Балканов (https://vk.com/bagyuvix). Однако страница была удалена.
Хронология
31 июля 2018 г. – на форуме lolz[.]guru создан профиль Кодер.
1 сентября 2019 г. – создан Telegram-канал DarkCrystalRat.
2 сентября 2019 г. – зарегистрирован dcrat[.]ru.
4 сентября 2019 г. – введение специального формата плагинов: DCLIB.
19 ноября 2019 г. – Редизайн инструмента администратора.
12 мая 2020 г. – Mandiant публикует анализ клиента DCRat.
27 мая 2020 г. – зарегистрирован crystalfiles[.]ru; распространение переходит на новый домен.
30 мая 2020 г. – выпущена версия 3.0 .
Октябрь 2020 г. – выпуск DCRat Studio.
18 марта 2021 г. – выпущена версия 4.0 .
31 декабря 2021 г. – временная скидка 50% на все типы лицензий в преддверии Нового года.
6 марта 2022 г. – В связи падения рубля цены изменились с рублей на доллары по курсу 1 доллар США = 100 рублей.
28 марта 2022 г. – Ограниченная по времени скидка на двухмесячную, годовую и пожизненную лицензии до 5, 19 и 39 $.
Почти каждый день анонсируются новые плагины и мелкие обновления.
Софт админа RAT
Автор вредоносного ПО решил разработать инструмент администрирования RAT в JPHP, используя нишевую российскую IDE под названием DevelNext. DevelNext компилирует программу PHP в байт-код Java, который затем может выполняться на JVM.
Согласно странице GitHub, IDE все еще находится в стадии бета-тестирования и на данный момент доступна только на русском языке.
Одним из примеров вредоносного ПО, использующего эту IDE, является рудиментарный бэкдор под названием IceRAT, обнаруженный в начале 2020 года. Это вредоносное ПО
Одним из примеров вредоносного ПО, использующего этот IDE, является элементарный бэкдор под названием IceRAT, обнаруженный в начале 2020 года. Эта вредоносная программа нацелена на русскоязычных жертв, устанавливая на их конечные точки ПО для майнинга. Более старым примером является программа, написанная для OSX в рамках кампании, направленной на криптовалютные кошельки Jaxx, которая была обнаружена в 2018 году.
Содержание архива
Инструмент администратора поставляется в виде ZIP-архива со следующей структурой:
Имя файла | Описание |
---|---|
DCRat.exe | Панель запуска администратора (создана с использованием оболочки Launch4j) |
dcrat_updservice.exe | Инструмент обновления админки |
updatelauncher.bat | Скрипт, выполняющий dcrat_updservice.exe |
Notify.wav | Аудиофайл уведомления (2,5 сек) |
data/ | Расположение вспомогательных утилит |
design/ | Содержит файл DeleteAll_legacy.json |
lib/ | Расположение всех Java-модулей сборщика |
plugins/ | Используется для хранения загруженных плагинов; по дефолту содержит только тестовый плагин |
profiles/ | Пустой каталог, используемый для хранения сохраненных профилей пользователя |
Каталог lib
является домом для основного модуля сборки, а также нескольких легитимных модулей JPHP, от которых зависит конструктор.
SHA256 ХЭШ
SHA256 | Описание |
---|---|
9967ea3c3d1aee8db5a723f714fba38d2fc26d8553435ab0e1d4e123cd211830 | JSON-модуль |
6014d44d8f7da00f03db051b3dcea9a03ec3837977118c69a4512ef558a6df2a | Основной модуль конструктора |
cf4068ebb5ecd47adec92afba943aea4eb2fee40871330d064b69770cccb9e23 | Модуль граф. интерфейса |
5b37e8ff2850a4cbb02f9f02391e9f07285b4e0667f7e4b2d4515b78e699735a | JPHP core module |
4aef566bbf3f0b56769a0c45275ebbf7894e9ddb54430c9db2874124b7cea288 | Модуль zend |
d637e3326f87a173abd5f51ac98906a3237b9e511d07d31d6aafcf43f33dac17 | Модуль jfoenix |
c25d7a7b8f0715729bccb817e345f0fdd668dd4799c8dab1a4db3d6a37e7e3e4 | Модуль javafx |
2d43eb5ea9e133d2ee2405cc14f5ee08951b8361302fdd93494a3a997b508d32 | Модуль Google gson |
15f36830124fc7389e312cf228b952024a8ce8601bf5c4df806bc395d47db669 | Модуль PHP |
9c287472408857301594f8f7bda108457f6fdae6e25c87ec88dbf3012e5a98b6 | Модуль среды выполнения JPHP PHP |
434e57fffc7df0b725c1d95cabafdcdb83858ccb3e5e728a74d3cf33a0ca9c79 | Модуль XML |
0f26584763ef1c5ec07d1f310f0b6504bc17732f04e37f4eb101338803be0dc4 | Модуль JPHP SDK |
4bec0794a0d69debe2f955bf495ea7c0858ad84cb0d2d549cacb82e70c060cba | Модуль javafx |
03ead999502aefbf1380bd2e9c4a407acb7a92a7b2fe61f6995aba3fca85efd4 | Модуль objectweb asm |
Точка входа сборщика указана в <main_module>.jar/.system/application.conf and points to dct/forms/MainForm.phb
.
# MAIN CONFIGURATION
app.name = DCRat2.0
app.uuid = fabb4b64-bb3a-4418-a495-a0e669188d81
app.version = 1
# APP
app.namespace = dct
app.mainForm = MainForm
app.showMainForm = 1
app.fx.splash.autoHide = 0
Каталог данных содержит специальный компилятор для создания исполняемого файла клиента, специальный инструмент обфускации EXE, коммерческий инструмент защиты .NET под названием .NET Reactor, а также утилиты сжатия WinRAR и UPX.
SHA256 ХЭШ
SHA256 | Имя файла | Описание |
---|---|---|
d0680ac62e94f953df031533acd0acb718ad8494f938d84198c655507709e5df | 7zxa.dll | Легитимная 7zip DLL |
914cca033fc8ca52830a21b5dca55263cee1e74ab5571702906ee9c25aedafd7 | DCRAC.exe | Обфускатор DCRat EXE |
812cd4b5e80bc4e83a2e01a6f3fb24346ecf57dcaf8ff6fc3e55a2a6b953da23 | DCRCC.exe, DarkCrystalRATCSharpCompiler.exe | Компилятор DCRat |
b11ad1adfa96eacf5f18cf87785884947a6d35a1baebf4f20f16402b04d5109f | Default.SFX | Часть WinRAR |
a0b6bb521e52a99abf5ac1017302da014d37296619078d42d9edf5d86d137f63 | NCC2.dll | Часть .NET Reactor |
38274608d5a4b53ec22f8099f798ba46ce0ed41db65a33dfb3853f0dbf849f6f | NCC3.dll | Часть .NET Reactor |
c41cd461470ff3c936e225cea37e5190cb06e3cd70a3d76ca8e5d3aceead5493 | NCCheck.dll | Часть .NET Reactor |
770d7b5e40ed9b0aff5d0e3fc2ccf9ba10d4925d3441f38b71a35bd26e6e8d98 | Rar.exe | Часть WinRAR, подписана |
35a21f1aebf8ea0ab9be1814131fec1fa079d91b701e505054b69eccbdfd0732 | RarExt.dll | Часть WinRAR, подписана |
db28575f61b1adc88a28ae51ce3b00226e4974ca60894896e414ea408c6ff9fe | RarExt64.dll | Часть WinRAR, подписана |
ca08ed8423afda4b41757a1f3adf4f855732dc0628fe2ea5d8a96b13f56b9f84 | WinCon.SFX | Часть WinRAR, подписана |
2293fe261d5c6f5f2a33004b11f068037677b7aa5a6f792031e31555f31f0d69 | Zip.SFX | Часть WinRAR |
83445595d38a8e33513b33dfc201983af4746e5327c9bed470a6282d91d539b6 | dnlib.dll | DNLib – библиотека чтения/записи сборок .NET |
e817802f166662a7df0b144571354d74b10e34d120f91ae9d84ca3ba925241c6 | dotNET_Reactor.Console.exe | Часть .NET Reactor |
78684aea83b1a5c402a87ba0ce2e7ad5b0338462cc804e97369203ce53d29834 | dotNET_Reactor.exe | Часть .NET Reactor |
5981e508e89c65c445fca892e91b8ec39b1d8563804d0999d963d640aa592444 | enc.vbe | Кодирование сценариев VBS |
d634cde09d1aa1320a1d4c589d35d306f8350129faf225b2bca394128c2c4442 | upx.exe | UPX 3.96 Windows 32-bit |
1317d70682bd11e5d320af850d6ecbb5a70c200d626ec7bf69c47566894db515 | wRar.exe | Часть WinRAR, подписана |
.PHB
Вместо файлов классов Java JAR-архивы JPHP состоят в основном из файлов PHB.
PHB – это пользовательский формат файлов, используемый исключительно JPHP. Файлы PHB – это просто архивы, содержащие несжатые, незашифрованные файлы классов Java и заголовок PHB. Каждому файлу класса Java предшествует заголовок файла класса, содержащий такую информацию, как имя модуля, имена методов, путь к файлу PHP и длину файла класса.
Файлы классов можно извлечь с помощью следующего скрипта Python, а затем декомпилировать с помощью таких инструментов, как JAD или jd-gui.
Python скрипт
import os
import sys
import struct
in_file = sys.argv[1]
out_dir = os.path.splitext(in_file)[0] + "_extracted"
in_size = os.path.getsize(in_file)
os.mkdir(out_dir)
with open(in_file, 'rb') as f:
buf = f.read()
magic = b'\xCA\xFE\xBA\xBE'
offsets = [i for i in range(len(buf)) if buf.startswith(magic, i)]
count = 0
for of in offsets:
file_name = os.path.splitext(in_file)[0] + "_" + str(count) + ".class"
f.seek(of - 4)
class_len = struct.unpack('>i', f.read(4))[0]
file_data = f.read(class_len)
with open(os.path.join(out_dir, file_name), "wb") as f2:
f2.write(file_data)
count += 1
Структура файла PHB (пример):
*клик*
1C 9A 4A 92 PHB signature
01 33 53 D3
00 00 00 00
00 00 00 33
00 33 len of the following string
44 3A 5C 49 string "D:\IdeaProjects\DCRat2.0\src\dct\forms\MainForm.php"
[...]
00 00 00 2D
00 2D len
24 70 68 70 "$php_module_mba8a6a7b4b0144048b64e6456cd9fb81"
[...]
00 01
FF FF FF FF
FF FF FF FF
00 07 len
55 6E 6B 6E "Unknown"
[...]
00 00 00 00
00 00 03 4F number of class files
00 00 00 36 start of class file header #1
00 36 len
24 70 68 70 "$php_module_mba8a6a7b4b0144048b64e6456cd9fb81_closure0"
[...]
00 00 00 00
00 00 00 00
FF FF FF FF
00 00
FF FF FF FF
FF FF FF FF
00 01
00 00 00 00
00 00 00 08
00 08 len
5F 5F 69 6E "__invoke"
76 6F 6B 65
00 00 00 08
00 08 len
5F 5F 69 6E "__invoke"
76 6F 6B 65
01 00 00 00
39 00 00 00
18
00 33 len
44 3A 5C 49 "D:\IdeaProjects\DCRat2.0\src\dct\forms\MainForm.php"
[...]
00 00 0A 98 len of class file #1
CA FE BA BE start of class file #1
[...]
00 00 00 36 start of class file header #2
00 36 len
24 70 68 70 "$php_module_mba8a6a7b4b0144048b64e6456cd9fb81_closure1"
[...]
00 00 00 00
00 00 00 00
FF FF FF FF
00 00 FF FF
FF FF FF FF
FF FF 00 01
00 00 00 00
00 00 00 08
00 08 len
5F 5F 69 6E "__invoke"
76 6F 6B 65
00 00 00 08
00 08 len
5F 5F 69 6E "__invoke"
76 6F 6B 65
01 00 00 00
40 00 00 00
18
00 33 len
44 3A 5C 49 "D:\IdeaProjects\DCRat2.0\src\dct\forms\MainForm.php"
[...]
00 00 0A 9B len of class file #2
CA FE BA BE start of class file #2
[...]
Лицензия
Админка, предотвращает несанкционированное использование с помощью серии онлайн-проверок лицензии. После успешного завершения этих проверок интерфейс становится доступным.
Проверки состоят из HTTPS-запросов к жестко заданному домену dcrat[.]ru.
Валидация пиров
При первой проверке достоверности передается случайное 64-символьное значение, которое перед передачей хэшируется и кодируется в Base64. Ответ от сервера C2 должен содержать такое же значение, и оно должно быть аналогично хэшировано и закодировано, чтобы считаться действительным. Этот обмен обеспечивает элементарную проверку равных, гарантируя, что инструмент администратора взаимодействует с подлинным сервером DCRat.
Валидация подписки
Второй запрос HTTPS проверяет подлинность компьютера, на котором запущен инструмент администратора. Собирается несколько свойств хоста для создания уникального отпечатка. Он передается на dcrat[.]ru и (предположительно) сопоставляется с действительной записью подписчика.
Выход силой
Инструмент администратора также выполняет необычную финальную HTTPS-проверку публичного ресурса, размещенного на GitHub под личным именем “boldenis44”. Функции запроса и ответа имеют глобальный “выключатель”. По усмотрению автора DCRat, нажатие этого переключателя сделает все экземпляры инструмента администратора DCRat непригодными для использования, независимо от срока действия лицензии.
[su_image_carousel source=”media: 2241,2240,2239″ limit=”0″ controls_style=”light” crop=”none” dots=”no” autoplay=”0″ speed=”fast” outline=”no”]Эта функция была обнаружена в отдельных сборках инструмента администратора, датированных серединой 2021 и началом 2022 года.
Функционал админки
Инструмент администратора позволяет выполнять следующие действия:
- Вход на активный сервер C2
- Выдача задач зараженным клиентам
- Создание сборок загрузчика и/или клиента
- Просмотр и запрос статистики установки
- Отправляйте отчеты об ошибках автору DCRat
Необходимо выполнить вход на активный сервер C2, на котором размещен бэкенд PHP.
Параметры входа имеют неясный синтаксис:
http://<server>/@<reversed_base64_PHP_pagename_minus_php_suffix>
password
После аутентификации инструмент администратора начинает опрашивать C2 для получения подробной информации о подключенных и зараженных хостах.
Функции сгруппированы с помощью вкладок.
Users
На этой вкладке перечислены активные/зарегистрированные зараженные хосты. Список обновляется с помощью периодического опроса C2.
Builder
На этой вкладке можно настроить (и создать) сборки клиента. В анализируемой версии админки “ядро” клиента загружается из домена dcrat[.]ru в виде строки Base64, становясь входными для “DCRCC.exe”.
Вот доступные параметры для конфигурации:
- Сеть:
- Задает список первичных и вторичных хостов C2 (транспортные протоколы ограничены HTTP/S).
- Защита:
- Необязательная обфускация собранного файла клиента с помощью .NET Reactor.
- Имя мьютекса для использования во время выполнения – по умолчанию это случайная 20-символьная буквенно-цифровая строка, перед которой стоит префикс DCR_MUTEX.
- DCR_MUTEX-<20_ALPHANUM_RAND>
- Отключить диспетчер задач Windows через запись в реестре
- Указать (подделать) отметку времени создания PE
- Задержка запуска в секундах
- Плагины:
- Настройте и включите плагины
- Установка:
- Путь для распаковки модулей при запуске клиента
- Механизм сохранения для использования
- Используемый скрипт команды первого запуска
- Значение тега, отображаемое на хостах, на которых запущена сборка DCRat
- Автофункции – функции для автоматического запуска после запуска:
- Стилер
- Кейлоггер
- Деинсталляция
- Force Admin – попробуйте принудительно получить права администратора при запуске
- Построить кэш-хранилище
- Сборка:
- Дополнительное сжатие сборки UPX
- Расширение файла для использования
- Значок PE-файла
Loader
Настройка и сборка бинарного загрузчика. Поддерживается ряд стекируемых “Действий”, объединяемых для определения поведения во время выполнения:
- Загрузить файл
- Выполнить файл
- HTTP-запрос
- CMD-скрипт
- Ждать
- Окно сообщения
Tools
Обеспечивает загрузку и конвертирует файлы cookie из Netscape в JSON.
Settings
Настройте параметры сборщика:
- Изменить фоновое изображение графического интерфейса
- Автоматически опрашивать C2 на наличие подключенных (зараженных) хостов
- Показать уведомления
Statistics
Готовые отчеты для опроса зараженных клиентов (страна, версия Windows и т.д.).
USER-ID
Зараженные хоста?
Bug Report
Отправьте сообщение об ошибке сопровождающему(им) DCRat.
Tasks
Настройка заданий для выполнения на одном или нескольких клиентах DCRat. Задачи могут быть сохранены (экспортированы) или загружены (импортированы) из текстового файла. Задачи хранятся в виде обращенной строки Base64.
Global Functions
Задачи, которые будут выполняться для всех зарегистрированных клиентов DCRat.
DCRat Client
Ниже мы рассмотрим особенности клиента DCRat (стилера) и DCRat Loader. Поведение во время выполнения для обоих настраивается с помощью инструмента администратора DCRat.
Client Loader
Инструмент администратора предоставляет функцию для генерации исполняемого файла DCRat “Loader”. В версии, которую мы анализировали, генерация загрузчика в формате DLL не поддерживалась. Вполне возможно, что автор может добавить эту поддержку в новых сборках.
Поведение загрузчика при выполнении настраивается с помощью одного или нескольких консервированных “Действий”. Типичная сборка может представлять собой комбинацию “Загрузить файл”, “Подождать” и “Выполнить файл”, которая будет молча извлекать файл, а затем запускать его после достаточно долгого ожидания, чтобы не вызвать подозрений.
Исходный код загрузчика встроен в инструмент администратора в виде серии строк Base64, которые декодируются для раскрытия исходного кода C#. Код для исполняемого файла выбирается на основе действий, выбранных пользователем. Поставляемый в комплекте “DCRCC.exe” генерирует исполняемый файл.
Если выбрано, то созданный исполняемый файл будет защищен с помощью DotNET Reactor:
“-control_flow_obfuscation 1 -flow_level 9 -resourceencryption 1 -stringencryption 1 -suppressildasm 0 -all_params 1 -obfuscate_public_types 1 -exception_handling 0”
Persistence
Постоянство для DCRat ограничено обычными местами “автозапуска” Windows:
- Реестр, использует HKLM\Software\Microsoft\Windows\CurrentVersion\Run
- Реестр, использует HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- Реестр, использует HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon (REG_SZ: “Shell”)
- Запланированная задача /ONLOGON
- Запланированная задача /sc минута RandomMinMax(5,15)
Исполняемый файл клиента копирует себя в корень системного диска, используя имя случайно выбранного запущенного процесса, исключая “svchost.exe”.
Config
Конфиг DCRat встроен в двоичный файл клиента как строковый ресурс в Base64-кодировке. Он имеет формат JSON и содержит C2 URL, тег, имя мьютекса и несколько параметров выполнения, а также специфические для плагинов параметры конфигурации для включенных плагинов.
Имя | Тип | Описание |
---|---|---|
H1 | string | Основной URL C2 |
H2 | string | Вторичный URL C2 |
TAG | string | Тег, заданный во время сборки (например, идентификатор жертвы, идентификатор кампании и т.д.) |
MUTEX | string | Имя мьютекса; по умолчанию это случайное буквенно-цифровое значение, которому предшествует префикс “DCR_MUTEX-“, но оно может быть установлено в любую строку |
DBG | bool | Включение/выключение дебаггера |
BCS | int | Размер кэш-памяти |
AUR | int | Точное использование неизвестно; контролирует поведение переименования/сохранения файлов |
AS | bool | Авто-стилер вкл\выкл |
AK | bool | Авто-кейлогер вкл\выкл |
AD | bool | Автоматическая деинсталляция вкл/выкл |
PLUGINCONFIGS | object | Параметры конфигурации плагина |
Ниже приведен пример конфигурации, найденный в образце, распространяемом через Prometheus TDS:
*клик*
{
"H1": "http[:]//co44089.tmweb[.]ru /9rsk8lug9peq4f23cjhyo3fz2q7j81vhnvil6c6tjdc7adzbia1ki04d9p65b5wfe4ronb0rtm/4vsyc5bajheyp1gt5i63igklh15828uwuwsek0x0p9frsqy1l2boc3l936aratwc7jddw2djzm40u83r6f/ybxoa2zsmu9ovinlf57463869tj",
"H2": "http[:]//co44089.tmweb[.]ru /9rsk8lug9peq4f23cjhyo3fz2q7j81vhnvil6c6tjdc7adzbia1ki04d9p65b5wfe4ronb0rtm/4vsyc5bajheyp1gt5i63igklh15828uwuwsek0x0p9frsqy1l2boc3l936aratwc7jddw2djzm40u83r6f/ybxoa2zsmu9ovinlf57463869tj",
"TAG": "GFN",
"MUTEX": "DCR_MUTEX-bQ2or3bMKAwvUmZaLKHY",
"DBG": false,
"BCS": 0,
"AUR": 1,
"AS": true,
"AK": true,
"AD": false,
"PLUGINCONFIGS": {
"MessageOnStartConfig": {
"caption": "GFN hacker",
"text": "Wait 10 minutes",
"icon": "Information",
"buttons": "OK",
"uniq": "chpf05oqbupjilp1ccxqb65xf"
},
"XMRigMinerCFG": {
"SavePuth": "C:/WindowsDefender/RunShell.exe",
"Gate": "xmr.pool.minergate.com:45700",
"UserName": "[email protected]",
"Password": "x",
"DopArguments": "--donate-level=1 --pause-on-battery",
"CPUPriority": "0",
"cpumaxthreadshintn": "25",
"mode": "light"
}
}
}
Отпечаток хоста
В рамках начальной регистрации клиент DCRat сообщает ряд атрибутов хоста своему C2. Эта информация определяется с помощью комбинации WMI, классов инструментов .NET и запросов к реестру Windows:
- Имя компьютера хоста
- Имя пользователя хоста
- Продукт/версия Windows
- Значение тега (встроенный; идентификатор кампании)
- Администратор
- Имя/Имена видеокарты
- Продукт/вендор процессора
- Метки локальных, сетевых, съемных дисков
- Имеет микрофон
- Установленная(ые) веб-камера(ы)
- Текст активного окна
- Страна, город, широта/долгота (геопозиция)
- Установлен антивирусный(ые) продукт(ы)
- Установлен продукт(ы) брандмауэра
- Производитель BIOS
- Производитель материнской платы
- Производитель процессора
- Физическая память
- Сетевые интерфейсы (IP, WiFi/Ethernet)
- Установленная версия .Net
Все транзакции HTTPS используют случайный User Agent, выбираемый из встроенного массива из 12:
Юзер агентов
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.34",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53",
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 OPR/81.0.4196.60",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36 Edg/96.0.1054.29",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0"
Функционал стилера
Функции стилера предварительно настраиваются с помощью инструмента администратора “Builder”. Задачи кражи определяют последовательность операций, выполняемых при краже хранимой информации:
DCRat может воровать из следующих источников:
- Куки браузера
- Пароли, хранящиеся в браузере
- Содержимое форм, хранящихся в браузере
- История браузера
- Сохраненные кредитные карты (через Windows DPAPI и Chrome SQLite Database)
- Telegram
- Учетная запись Steam
- Токены Discord
- Учетные данные FileZilla
- Скриншоты
- Кейлоггер
- Содержимое буфера обмена
- Sysinfo
Компонент стилера также способен запускать индивидуальные плагины, что делает его расширяемым для размещения информации, которую авторы вредоносных программ находят на конкретных объектах.
(D)Dos
DCRat содержит примитивный многопоточный код для выполнения различных форм DOS-атак, включая HTTP(S) POST, UDP и TCP, на конкретную комбинацию хоста и конечной точки.
Тактика задержки
Обычный для многих семейств вредоносных программ, DCRat использует инструменты командной строки Windows для задержки выполнения. С выполнением клиента DCRat связаны вызовы инструмента командной строки Windows для настройки службы времени, w32tm. При настройке с подходящими аргументами командной строки, он может действовать как механизм задержки. В случае DCRat передаются аргументы, действующие как 10-секундные задержки. Совпадающие экземпляры w32tm в конечной точке XDR могут быть возможным, хотя и несколько слабым, сигналом выполнения клиента DCRat:
Плагины
Плагины могут разрабатываться сторонними разработчиками с использованием специальной IDE под названием DCRat Studio. Официальные плагины доступны для загрузки с сайта crystalfiles[.]ru, и их функциональность включает в себя эксфильтрацию данных/кражу учетных данных, манипулирование системой и майнинг криптовалюты.
Чтобы использовать возможности краудсорсинговой разработки и поощрять экосистему плагинов, предназначенных для различных хранилищ информации, подписчики DCRat имеют доступ к списку поддерживаемых сторонних плагинов. Точная внутренняя работа каждого плагина неизвестна, но название каждого дает индикатор функции:
- AutoKeylogger (устарел)
- AntiVM (объединен с AntiAnalysis)
- MiscInfoGrabber
- WebBrowserPassView
- RunOnce
- DesktopGrabber
- StartupPlus
- AntiKiller
- AntiSNG
- BlockInput
- MessageOnStart
- ClipboardLogger
- RegEditor
- FileSearcher
- FileGrabber
- TitleKiller (устаревший)
- ProcessKiller
- CryptoStealer
- TelegramNotifier
- AntiAnalysis
- Clipper
- CountryBlackList
- VPNGrabber
- ForceAdmin
- SystemRestorePointsCleaner
- UserPingCounter
- ActiveWindowNotifier
- FakeSteamWindows
- Discord notifications (сторонние)
- IgnorTags (стороннее приложение)
- Kryptex Miner (третье лицо)
- XMRig (третье лицо)
Выводы
Крупнейшие и самые яркие группы угроз могут получить свое имя в свете, но они не обязательно являются киберпреступниками, которые не дают спать по ночам специалистам по безопасности. Страшные, передовые угрозы, исходящие от этих передовых и хорошо финансируемых групп угроз, действительно иногда вызывают головную боль у тех из нас, кто не охраняет государственные секреты или нелепые суммы денег. Но злодеи, у которых слишком много свободного времени, часто могут доставить столько же хлопот.
Вообще говоря, вы получаете то, за что платите, даже в случае вредоносных программ. Если вы платите гроши за что-то, было бы разумно ожидать, что это будет менее функциональным или плохо поддерживается. Но DCRat, похоже, нарушает это правило таким образом, что это вызывает глубокое недоумение.
Код этого RAT ежедневно совершенствуется и поддерживается. Если угроза разрабатывается и поддерживается только одним человеком, создается впечатление, что это проект, над которым он работает полный рабочий день.
Безусловно, в этой угрозе есть варианты программирования, которые указывают на то, что это начинающий автор вредоносного ПО, который еще не придумал подходящую структуру ценообразования. Решение запрограммировать угрозу в JPHP и добавление причудливо нефункционального счетчика заражений, безусловно, указывает на это направление. Возможно, эта угроза исходит от автора, пытающегося завоевать известность и делающего все возможное со своими знаниями, чтобы сделать что-то популярным как можно быстрее.
Хотя очевидная неопытность автора может сделать этот вредоносный инструмент менее привлекательным, некоторые могут рассматривать его как возможность. Более опытные злоумышленники могут рассматривать эту неопытность как аргумент в пользу продажи, поскольку автор, похоже, тратит много времени и усилий, чтобы угодить своим клиентам.
Индикаторы компрометации (IOC’с)
DCRat Stealer; Delay Command; Process/.BAT invocation:
“w32tm /stripchart /computer:localhost /period:5 /dataonly /samples:2”
DCRat Stealer; Self Preservation; Windows Registry changes:
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
REG_DWORD: “DisableTaskMgr”:1
DCRat Stealer; Persistence; Windows Registry:
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
REG_SZ: “Shell”: “explorer.exe, %STEALER_EXE_PATH%”
HKCU|HKLM\Software\Microsoft\Windows\CurrentVersion\Run: <STEALER_EXE_PATH>
DCRat Stealer; Persistence; Windows Scheduled Tasks:
schtasks.exe /create /tn <STEALER_EXE_NO_EXTENSION> /sc ONLOGON /tr <STEALER_EXE_PATH> /rl HIGHEST /f
schtasks.exe /create /tn <STEALER_EXE_NO_EXTENSION> /sc minute /mo <RND_MIN5_MAX15> /tr <STEALER_EXE_PATH> /f
DCRat Stealer; Host Fingerprint; WMI Queries:
SELECT * FROM AntivirusProduct: displayName
SELECT * FROM FirewallProduct: displayName
SELECT * FROM Win32_BIOS: Manufacturer
SELECT * FROM Win32_BaseBoard: Manufacturer, SerialNumber
SELECT * FROM Win32_Processor: Name
SELECT * FROM Win32_ComputerSystem: TotalPhysicalMemory
SELECT * FROM Win32_VideoController: Name, AdapterRAM
SELECT * FROM Win32_PnPEntity WHERE (PNPClass = ‘Image’ OR PNPClass = ‘Camera’)
DCRat Stealer; Host Fingerprint; Windows Registry:
READ: HLKM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release
READ: HKLM\SYSTEM\ControlSet001\Control\Class\ {4d36e968-e325-11ce-bfc1-08002be10318}\<SUBKEY_1..SUBKEY_N>\{AdapterString,DriverDesc,qwMemorySize}
DCRat Stealer; Runtime; Mutex (Default format, if not overridden):
DCR_MUTEX-<20_ALPHANUM_ULCASE_RAND>
DCRat Builder/Admin Tool; C2 Network Traffic:
DNS + HTTPS: dcrat[.]ru, crystalfiles[.]ru