Привет, Хабр. С небольшим перерывом на связи снова специалисты из экспертного центра безопасности Positive Technologies (PT Expert Security Center). Если помните, в ноябре мы рассказывали об атаках ранее неизвестной группировки Hellhounds на инфраструктуру российских компаний. Статья была посвящена атакам группировки на узлы под управлением ОС Linux с использованием нового бэкдора Decoy Dog.

Так вот, Hellhounds продолжают атаковать организации на территории России. Причем команде Incident Response нашего экспертного центра безопасности в одной из компаний удалось обнаружить успешные атаки на Windows-инфраструктуру, о которых ранее не сообщалось.

В этой статье мы расскажем о ранее неизвестном инструментарии группировки.

Первый этап – загрузчик Decoy Dog Loader под Windows

Итак, злоумышленники предприняли успешную попытку компрометации критически важных узлов под управлением Windows. Получив доступ в систему, атакующие устанавливали сервис с именем Microsoft Account Service или Microsoft Viewer Service, который запускал исполняемый PE-файл с именем AccSrvX64__STABLE__2016-11-10.exe или R_TARIF.VIEWS_X86.EXE.

Интересно, что атакующие начали предпринимать активные действия в Windows-инфраструктуре скомпрометированной организации в новогодние праздники — второго и третьего января.

Размер исполняемого файла составляет 17 КБ. После успешного запуска сервиса образец расшифровывает список доменов, которые содержатся в секции .rdata, и затем пытается резолвить полученные доменные имена.

Каждый зашифрованный домен начинается с байта FF. Используется простой алгоритм шифрования на основе двух операций: xor и вычитания. В расшифровке участвует номер символа в строке и номер строки (символы в строках нумеруются с нуля).

Рисунок 1. Алгоритм шифрования
Рисунок 1. Алгоритм шифрования

Домены имеют следующий формат:

[-][!][!][...]<domain>

Параметр «-» означает, что домен успешно резолвить необязательно. Если его разрезолвить не удалось, то загрузчик переходит к следующему домену из списка. Параметр «!» используется только совместно с параметром «-» и показывает количество попыток резолвов, перед тем как домен будет пропущен. Количество попыток резолва рассчитывается следующим образом: 2^n, где n — это количество указанных подряд «!». Если параметр не указан, то будет сделана всего одна попытка резолва.

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

В результате поверхностного динамического анализа образца можно подумать, что домены, которые используются на этом этапе, являются управляющими серверами. Но детальный анализ показывает, что домены и впоследствии полученные IP-адреса используются только для генерации ключа и, предположительно, для маскировки под легитимные утилиты. Кроме того, любопытно, что ВПО может использовать несуществующие поддомены, но на реально существующих доменах (например, mp0.ptsecurity.com). Это может создавать видимость легитимности, но при этом поддомен гарантированно не будет разрезолвен.

Обычно домен с параметром «-» используется только для создания трафика, но не для генерации ключа. Такой домен не должен резолвиться, или он будет разрезолвен после нужного домена. Один из доменов должен обязательно резолвиться и иметь фиксированный IP-адрес — он и будет использован для генерации ключа. Примечательно, что эту особенность злоумышленники могут использовать как kill-switch-механизм для прекращения функционирования ВПО в целевой системе.

После расшифровки и резолва всех доменов в конфигурации загрузчик расшифровывает следующий блок.

Рисунок 2. Блок в секции .rdata
Рисунок 2. Блок в секции .rdata

Блок имеет фиксированный размер 256 байт и зашифрован алгоритмом CLEFIA в режиме сцепления блоков (CBC). Он содержит путь к основному бэкдору. Ключ формируется следующим образом: имя исполняемого файла без завершающего нуля приводится к верхнему регистру, затем к нему добавляется IP-адрес в байтовом представлении. После этого от получившейся байтовой строки считается 256-байтовый хеш SHA-3, первые 16 байт которого используются как ключ, а байты с 5 по 20 используются в качестве вектора инициализации.

Рисунок 3. Алгоритм расшифровки пути к бэкдору Decoy Dog под Windows
Рисунок 3. Алгоритм расшифровки пути к бэкдору Decoy Dog под Windows

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

В бэкдоре сигнатура MZ заменена на сигнатуру HE, а сигнатура PE перезаписывается в виде случайной 4-байтной последовательности.

Рисунок 4. Фрагмент Decoy Dog
Рисунок 4. Фрагмент Decoy Dog

Второй этап – основная нагрузка Decoy Dog под Windows

Расшифрованная нагрузка практически не отличается от рассмотренной ранее версии Decoy Dog под ОС Linux. Бэкдор основан на open-source-проекте Pupy RAT.

Все образцы, которые нам удалось обнаружить, имели управляющий сервер net-sensors[.]net и DGA-домен dynamic-dns[.]net. Динамическая конфигурация отсутствовала во всех образцах.

Пример конфигурации:

{'debug': False, 'launcher': 'dnscnc', 'launcher_args': ['--domain', 'net-sensors.net', '-E', 'dynamic-dns.net'], 'delays': [(10, 5, 10), (50, 30, 50), (-1, 150, 300)] [REDACTED] 'cid': 61336226}   
Рисунок 5. Детальная схема работы Decoy Dog (Windows)
Рисунок 5. Детальная схема работы Decoy Dog (Windows)

В ходе исследования мы выявили образцы под Windows, самый старый из которых был скомпилирован 29.11.2019, а самый новый — 03.01.2024. Помимо Decoy Dog, злоумышленники использовали хорошо известный фреймворк Sliver с управляющим сервером 31.184.204[.]42 (ns2.maxpatrol[.]net). Детальный разбор аналогичных образцов представлен в материале «Импланты Sliver под микроскопом: извлечение конфигурации и других полезных данных».

Примечательно, что большинство образцов содержат в конфигурации домен dns.msftncsi.com, который является тестовым сервером компонента индикатора состояния сетевого подключения (Network Connectivity Status Indicator, NCSI) в ОС Windows.

Изучив конфигурации всех полученных образцов, мы выявили SSL-сертификаты, которые используются в бэкдоре для шифрования соединений с удаленными узлами. Сертификаты содержали самые ранний параметр notBefore в конце 2021 года (26.12.2021 21:51:52), а самый новый параметр — 08.11.2023 13:48:36. Поэтому можно предположить, что кампания началась как минимум в конце 2021 года. Сертификаты выпускали на один и три года с момента генерации образцов, такой алгоритм генерации сертификатов реализован в публичном проекте Pupy RAT.

Проанализировав все найденные образцы, мы сравнили их функции, дату выпуска используемых сертификатов из конфигурации и дату загрузки на VirusTotal. На основе этих данных можно условно выделить две версии Decoy Dog. В самой ранней по сравнению с Pupy RAT проект был перенесен на Python 3.8, добавлены новые транспорты и появился механизм резервных доменов (DGA). Во второй версии, разработанной между апрелем 2022-го и февралем 2023 года, появляется скриплет для отправки телеметрии, подробно описанный в прошлом исследовании, динамическая конфигурация и лончер Special для работы в качестве сервера на локальной машине.

Особого внимания заслуживает самый ранний образец загрузчика Decoy Dog с именем testvec.exe, который был скомпилирован в конце 2019 года (29.11.2019). Образец представляет собой первоначальную версию загрузчика и содержит ряд отладочных строк в коде. Таким образом, можно предположить, что разработка загрузчика Decoy Dog велась с 2019 года.

Рисунок 6. Формирование пути к журналу
Рисунок 6. Формирование пути к журналу
Рисунок 7. Загрузка payload
Рисунок 7. Загрузка payload

Как преступники проникали в инфраструктуру компаний

В двух инцидентах атакующим удалось проникнуть в инфраструктуру жертв через подрядчика. Скомпрометировав учетные данные для входа по протоколу SSH, злоумышленники осуществили вход и установили бэкдор Decoy Dog.

Нам также удалось получить содержимое с управляющего сервера net-sensor[.]net и обнаружить, что злоумышленники маскировали образцы Decoy Dog под ISO-образы сервиса iMind для проведения онлайн-встреч, видеоконференций и вебинаров.

Рисунок 8. Содержимое папки imind, ISO-образы, которые содержат Decoy Dog
Рисунок 8. Содержимое папки imind, ISO-образы, которые содержат Decoy Dog

В топе жертв IT-компании переместились на первое место

В результате исследования деятельности группировки нам удалось выявить ряд ранее неизвестных атак на организации в России: число подтвержденных жертв возросло более чем в два раза и достигло 48. Анализ новых атак показывает, что атакующие не только фокусируются на государственном секторе, но и активно атакуют российские IT-компании, большинство из которых являются подрядчиками критически важных организаций. Предположительно, атакующие нацелены на эти компании для проведения атак типа trusted relationship. Актуальное распределение жертв по отраслям выглядит следующим образом.

Рисунок 9. Распределение жертв по отраслям
Рисунок 9. Распределение жертв по отраслям

Атакующим удается длительное время сохранить присутствие в критически важных организациях на территории России. Несмотря на то что практически весь инструментарий Hellhounds основывается на open-source-проектах, атакующим удается достаточно качественно его модифицировать, что способствует обходу средств защиты и долгому скрытому присутствию в скомпрометированных организациях.

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

Станислав Пыжов, Александр Григорян при участии команд Incident Response и Threat Intelligence экспертного центра безопасности Positive Technologies (PT Expert Security Center)

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