Исследователи ThreatLocker Threat Intelligence обнаружили в дикой природе MSI-файл, маскирующийся под установщик сервиса Kuailian VPN (также известного как LetsVPN). Этот сервис популярен благодаря возможности обхода "Великого китайского файрвола". Однако найденный инсталлятор содержит вредоносное наполнение, которое после запуска расшифровывает и выполняет троян удаленного доступа (RAT). Злоумышленник получает полный контроль над компьютером жертвы и ее данными.
Описание
Согласно предоставленному отчёту ThreatLocker, атака представляет собой прямую угрозу для пользователей LetsVPN, многие из которых находятся за пределами Китая или используют сервис для доступа к заблокированным ресурсам. Разработчики вредоноса уделили особое внимание скрытности и обходу средств защиты: RAT способен определять установленные антивирусные продукты, отключать компоненты Microsoft Defender и маскировать свою активность.
Структура вредоносного установщика
MSI-файл с именем Kuailian_win-setup.86.msi содержит в себе три встроенных файла. Первый из них, LetsVPNLatest.exe, является легитимным подписанным установщиком самого сервиса LetsVPN. Он запускается только после того, как вредоносные действия уже выполнены, чтобы убедить пользователя в успешной установке.
Второй файл, promecefplugilte8.exe, выступает в роли загрузчика шеллкода. Он выделяет исполняемую область памяти и считывает содержимое третьего файла - dat-компонента с именем 20260609.dat. Этот бинарный блок данных зашифрован: первые 32 байта содержат инструкции по расшифровке, а каждый последующий байт (всего около 1,6 МБ) обрабатывается операцией XOR с ключом 0x25.
После расшифровки полученный код представляет собой рефлективный загрузчик. Он ищет в памяти валидный исполняемый файл PE, начиная с маркера "CC DD EE FF". Загрузчик вручную разрешает необходимые системные вызовы Windows (VirtualAlloc, LoadLibraryA, GetProcAddress и другие), выделяет исполняемую память и запускает DLL-модуль через механизм DLL_PROCESS_ATTACH. Важно: финальная стадия никогда не записывается на диск, а выполняется исключительно в памяти.
Выбор сервера управления (C2)
Вредонос содержит встроенную таблицу из 40 наборов серверов управления. Выбор конкретного набора зависит от двух факторов: содержимого файла install_state.ini (если он существует) и имени исполняемого файла или родительской директории. В данном образце имя файла promecefplugilte8.exe указывает на набор InstanceId 8, который включает четыре хоста: 23.133.4[.]108, teddkqoo[.]com, nishihaoren8[.]top и nishihaoren8[.]org. Интересно, что "nishihaoren" в переводе с упрощенного китайского означает "ты хороший человек".
Установочный файл install_state.ini является основным методом выбора сервера, а имя файла используется как запасной вариант. Этот файл может быть изменен через команды C2, что позволяет переключать целевой сервер управления без переустановки трояна.
Функции удаленного доступа
Клиентская часть RAT поддерживает постоянное TCP-соединение с сервером управления. Сессия не опрашивает сервер периодически - сокет остается открытым и ожидает команд. Для операций чтения и записи используется тайм-аут 15 секунд; превышение этого времени приводит к потере сообщения. Сообщения размером более 0x10000 байт передаются по частям.
При первой регистрации на сервере создаются четыре файла для локальной идентификации: ClientId.sys, Mark.sys, Remark.sys и Group.sys. Несмотря на расширение ".sys", эти файлы хранят обычный текст. ClientId.sys содержит уникальный идентификатор жертвы, сгенерированный через API CoCreateGuid или комбинацию GetTickCount и GetCurrentProcessId. Mark.sys - временную метку первой установки. Remark.sys и Group.sys позволяют оператору организовать жертв по заметкам и группам.
Команды от сервера содержат параметр FeatureType, определяющий действие. Поддерживаются следующие возможности:
- FeatureType 3 - управление файлами: создание директорий, загрузка/выгрузка файлов, поиск на файловой системе, отмена операций.
- FeatureType 4 - выполнение команд через cmd.exe: запускается скрытый экземпляр командной строки с перенаправлением ввода/вывода. Если родительский процесс запущен с правами администратора, оболочка также работает с повышенными привилегиями.
- FeatureType 7 - настройка прокси SOCKS5 и HTTP: открытие соединений с целевыми узлами, перенаправление данных через прокси и закрытие потоков. Это обеспечивает встроенный метод для ручного перемещения по сети и маскировки атакующего при внешних действиях.
- FeatureType 10 - кейлоггинг и перехват буфера обмена: создается файл C:\ProgramData\gongzuo.txt. Два потока каждые 10 миллисекунд фиксируют нажатия клавиш и каждую секунду считывают содержимое буфера обмена, записывая данные в этот файл. Третий поток раз в 500 миллисекунд отправляет изменения на сервер.
Особые техники: атака на браузеры и Telegram
FeatureType 9 и 11 нацелены на локальные браузеры и Telegram Desktop. В браузерах (Firefox, Chrome и другие) обнаруживаются профили, файлы cookie, данные для входа и история. Однако вместо кражи этих данных они сбрасываются. Исследователи связывают это с тактикой: потеря логинов заставляет пользователя вводить учетные данные заново, которые затем перехватываются кейлоггером. Это менее заметно, чем массовая выгрузка данных.
Telegram Desktop подвергается более агрессивной атаке. Директория tdata с аккаунтом и сессией упаковывается в архив C:\ProgramData\MeitianGongzuoZiliao.zip ("ежедневные рабочие материалы"). Прокси-настройки Telegram изменяются на системные, а системный прокси перенаправляется на адрес, указанный сервером C2. Весь трафик Telegram начинает проходить через злоумышленный сервер. Чтобы скрыть изменение, вредонос патчит исполняемый файл telegram.exe: заменяет вызов функции, показывающей обновление прокси, на команды NOP (пустые операции). В конец файла добавляется маркер "C8", сигнализирующий о патче.
Экранный контроль и персистентность
Для удаленного просмотра экрана и управления используется отдельный канал "Screen". Качество и задержка изображения адаптируются в зависимости от размера экрана с помощью тиковых ограничений. Ввод с клавиатуры и мыши передается через канал "Control" с использованием API SendInput, GetCursorPos, SetCursorPos и других.
Поверх рабочего стола создается окно с именем "TC26PrivacyOverlayWindowV105", которое имеет атрибут WDA_EXCLUDEFROMCAPTURE - оно не захватывается стандартными средствами снятия скриншотов. Это окно блокирует локальный ввод и принимает только удаленные команды. Проверяется активность хранителя экрана, и перед вводом запросов экран разблокируется.
Для закрепления в системе создаются служба с автостартом (запускается до входа пользователя) и запланированная задача на уровне SYSTEM.
Обнаружение средств защиты и обход Defender
Вредонос выполняет WMI-запрос к существующим антивирусным продуктам. В коде заложен список из 39 строк, соответствующих 25 различным вендорам EDR/AV, включая Microsoft Defender, Crowdstrike, SentinelOne, BitDefender, Sophos, а также китайские продукты Huorong, Qi An Xin и Rising. Полученная информация о защите передается на сервер управления. Повреждение других продуктов не обнаружено.
Однако Microsoft Defender атакуется напрямую. Через PowerShell выполняются команды Add-MpPreference -ExclusionPath для двух директорий: C:\ProgramData\TerminalControlService и папки текущего исполняемого файла. Также отключаются MAPS-отчеты и отправка образцов с помощью Set-MpPreference. Это позволяет вредоносу оставаться незамеченным сканированием.
Механизм автоматического обновления
Выделенный канал AutoUpdateDat отвечает за обновление dat-файла с основной логикой. Клиент отправляет на сервер ClientId, LocalFileName и TargetVersion, получает чанки, проверяет целостность и, после успешной загрузки, перезапускает загрузчик. Процесс сфокусирован на надежности: ошибки приводят к повторным попыткам, а не к потере доступа.
Выводы и рекомендации
Обнаруженный инсталлятор представляет собой целенаправленную атаку на пользователей LetsVPN, многие из которых используют сервис для обхода блокировок. Разработчики RAT внедрили широкий спектр возможностей: от слежки и кражи данных до полного удаленного управления и перенаправления трафика. Особое внимание уделено скрытности: вредонос не оставляет артефактов на диске (финальная стадия выполняется в памяти), патчит легитимные приложения, отключает защиту Microsoft Defender и маскирует окна захвата.
Хотя сам установщик LetsVPN внутри MSI является подписанным, сам MSI-файл не имеет цифровой подписи. Пользователям и администраторам следует тщательно проверять подлинность загружаемых инсталляторов, особенно если они получены из непроверенных источников. Организациям рекомендуется внедрить фильтрацию MSI-файлов, контроль целостности приложений и использовать поведенческие детекторы для выявления попыток выполнения кода из памяти.
Индикаторы компрометации
IPv4
- 154.91.75.192
- 172.20.10.2
- 23.133.4.108
- 23.133.4.109
- 27.124.40.52
- 27.124.9.47
- 38.45.124.19
- 38.91.114.219
Domain
- cunmap.cc
- j6fadacaiaa.com
- j6fadacaiai.com
- j6llaa.com
- j6llaaa.com
- j6lluu.com
- j6lluuu.com
- nishihaoren1.org
- nishihaoren1.top
- nishihaoren16.org
- nishihaoren16.top
- nishihaoren23.org
- nishihaoren23.top
- nishihaoren24.org
- nishihaoren24.top
- nishihaoren36.org
- nishihaoren36.top
- nishihaoren37.org
- nishihaoren37.top
- nishihaoren38.org
- nishihaoren38.top
- nishihaoren39.org
- nishihaoren39.top
- nishihaoren40.org
- nishihaoren40.top
- nishihaoren5.org
- nishihaoren5.top
- nishihaoren8.org
- nishihaoren8.top
- shunlifadacaisansanjlb.com
- teddkqoo.com
- teddkwww.com
- xdsansan.com
SHA256
- 3ad0b2aa1afe79e95d20aecd1599b524d4d1d5d0972a23d54f778e145ea350c8
- 46e2af62358205ac114c047d878a22258ae448b7bd140fcc5b5f9444d008364f
- 4f34e002c9c5916d35c3e32435960e6ef1f8adfbfe324983f2aaeb09cb8f2d73
- ec3d4d6b0b35e1013c12e0044a8b202d0114809587aa97d83cbaff68c0e96b81