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

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

Вредоносный инсталлятор

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

Имя установщика Функция
FS_SETUP_DD_173.exe Устанавливает DingTalk (платформу цифрового сотрудничества)
FS_SETUP_GG_173.exe Загружает браузер Google Chrome
FS_SETUP_HY_173.exe Открывает сайт загрузки hxxps://meeting[.]tencent[.]com/download/

Эти действия, вероятно, предназначены для отвлечения внимания пользователя от вредоносной функциональности. Независимо от имени файла, инсталлятор устанавливает модифицированное китайское ПО для управления обоями рабочего стола под названием QN Wallpaper (hxxps://qnwallpaper[.]keansoft[.]cn/) и добавляет его в автозагрузку системного реестра.

В оригинальной версии QN Wallpaper функционирует как рекламное приложение, которое при установке доставляет партнерские приложения и выводит баннерные объявления. Однако в данном случае злоумышленники используют его для реализации техники DLL sideloading — метода, позволяющего выполнить вредоносный код от имени подписанного процесса с помощью поддельной DLL-библиотеки.

Компоненты QN Wallpaper вместе с вредоносными файлами разворачиваются в каталог C:\Program Files\QNWallpaper\5.4.0.1662\<случайная последовательность>. В этой директории сохраняются следующие файлы:

Имя файла MD5 Назначение
1.zip 7ad1e3ef4e6d9d636c9e7e967733850e Архив с рекламным ПО: QnWallpeper.exe, QnwPlayer.exe и их зависимости
7z.dll 96b4c1d0683dce22bd3223e1e40689c1 Библиотека архиватора 7z
7z.exe 9b86d3ab6cef15c633933fbbeab39c0a Программа для работы с архивами
chrome_elf.dll edfdc30cbd85879776b8f735ea7de1f1 Библиотека для запуска Electron-приложений
libcef.dll 07ddbbe2c71c45577a7a4fbcdba0df91 Вредоносная библиотека
PeLoader 48826d5ca845979d2e6ebd66dc1aae90 Файл с зашифрованным бэкдором
QnWallpaper.exe 6c158c0f8e029342192d4f0d72e102b7 Рекламный модуль
QnwPlayer.exe 9a71d6a41cd258b9e89cdc5fc224de73 Рекламный модуль
<случайная последовательность>Nedca.exe c24e99f9437feacaa63766a3cde3fe3d Копия вредоносного инсталлятора

После распаковки инсталлятор отключает встроенную защиту Windows Defender через параметр реестра DisableAntiSpyware и запускает QnWallpaper.exe.

DLL sideloading в libcef.dll

QnWallpaper.exe зависит от libcef.dll, поэтому данная библиотека загружается при запуске процесса. Аналогично, QnWallpaper.exe инициирует запуск QnwPlayer.exe, который также использует libcef.dll.

QnWallpaper и QnwPlayer не функционируют корректно, так как экспортируемые функции из libcef.dll переходят в бесконечный сон. Однако для подстраховки разработчики реализовали механизм, который загрузит требуемые функции из оригинальной библиотеки, если она найдется в системе.

Основной вредоносный код запускается при вызове DllMain при загрузке библиотеки. Кроме того, в libcef.dll присутствует функция RunDLL, которая также инициирует вредоносный код, но QnWallpaper её не вызывает. Предположительно, злоумышленники планировали её использовать через rundll32 или другой исполняемый файл.

Инициирование вредоносного кода

При загрузке библиотеки срабатывает код, обеспечивающий автоматический запуск QnWallpaper.exe путем создания ассоциации расширения и добавления файла в папку автозагрузки C:\Documents and Settings\<username>\Start Menu\Programs\Startup\.

Затем выполняются обёрнутые функции, которые в конечном итоге передают управление главной функции с вредоносным кодом.

Эта главная функция проверяет два ключевых аспекта:

  • Принадлежит ли текущий пользователь группе администраторов;
  • Какой процесс загружает DLL.

Если пользователь не имеет прав администратора, программа попытается их получить с использованием утилиты runas.

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

  • Если DLL находится в процессе QnWallpaper.exe, нагрузка берется из файла PeLoader.
  • Если DLL находится в процессе QnwPlayer.exe, нагрузка извлекается из ресурсов libcef.dll.

Обе полезные нагрузки зашифрованы алгоритмом AES и представляют DLL-библиотеку, содержащую бэкдор ValleyRAT. Они отличаются только конфигурацией адресов управляющих серверов. После дешифрования libcef.dll проверяет сигнатуры PE-заголовков для верификации корректности образца. При неудачной проверке библиотека освобождает ресурсы и завершает работу.

При успешной проверке libcef.dll загружает полезную нагрузку в адресное пространство процесса и передает управление бэкдору через вызов DllMain.

ValleyRAT

Бэкдор начинает работу с парсинга конфигурационных параметров в формате ключ:значение, объединённых в одну строку. Для обфускации строка записана в обратном порядке.

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

Основные конфигурационные параметры:

Ключ Описание
p? IP-адрес управляющего сервера
o? Порт управляющего сервера
t? Протокол (1 — TCP, 0 — UDP)
dd Время ожидания перед выполнением основного функционала
cl Время сна при получении соответствующей команды с сервера
bz Дата создания конфигурации
bh Является ли процесс критическим (1 — да, 0 — нет)
ll Включить проверку защитного ПО (1 — да, 0 — нет)
sh Внедрять код в svchost для перезагрузки процесса (1 — да, 0 — нет)

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

  • Инъекция в svchost для автоматического перезапуска: Вредонос выделяет память внутри процесса svchost, внедряет туда код и устанавливает защиту PAGE_NOACCESS на эту страницу памяти. Создается приостановленный поток, после 60 секунд ожидания права доступа изменяются на READ|WRITE|EXECUTE, и поток возобновляется. Внедренная функция автоматически перезапускает бэкдор при его завершении.
  • Критический процесс: Бэкдор может присвоить своему процессу статус критического, при завершении которого произойдет синий экран смерти.
  • Обработка исключений: Этот механизм срабатывает всегда. При возникновении необработанного исключения программа автоматически перезагружается.

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

Если параметр ll имеет значение 1, ValleyRAT регулярно проверяет наличие открытых окон аналитических инструментов для исследования процессов или сетевого трафика путем перечисления окон и проверки их заголовков.

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

Бэкдор может выполнять команды с управляющего сервера:

  • Перезагрузка и выключение компьютера
  • Создание снимка экрана
  • Очистка системных журналов
  • Обновление адресов управляющих серверов
  • Загрузка и выполнение дополнительных модулей
  • Отправка логов кейлоггера и содержимого буфера обмена

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

Дополнительные модули могут быть DLL-библиотеками или шеллкодом. Для запуска шеллкода используется техника Process Hollowing с процессом svchost в качестве целевого. Если модуль является DLL, бэкдор загружает PE-файл в свой процесс, вызывает DllMain и ищет функцию Main в экспортах. После вызова Main библиотека выгружается из памяти.

Цели и атрибуция

За 2026 год бэкдор ValleyRAT и связанное с ним вредоносное ПО были обнаружены более 100 тысяч раз у более чем 1500 уникальных пользователей, преимущественно в Китае и Индии.

Географическое распределение атак и использование бэкдора ValleyRAT позволяет предположить, что кампания организована группой Silver Fox — известным оператором этого семейства вредоноса.

Выводы

Этот случай демонстрирует, что рекламные приложения и партнерские сети могут быть намного опаснее, чем они выглядят. ValleyRAT — это сложный бэкдор, способный собирать конфиденциальные данные (нажатия клавиш, содержимое буфера обмена), создавать снимки экрана и доставлять на компьютер дополнительные вредоносные компоненты. Злоумышленники использовали известное рекламное приложение для выполнения бэкдора от имени подписанного процесса, что усложняет его обнаружение.

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

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

Индикаторы компрометации

MD5-хеши

07ddbbe2c71c45577a7a4fbcdba0df91
c24e99f9437feacaa63766a3cde3fe3d
8a626d844943da3456b044f38deae3a2

Сетевые индикаторы

103.45.66.18:441
103.45.66.18:442
103.45.66.18:443
192.253.225.173:6666
192.253.225.173:8888