Группы киберпреступников активно эксплуатируют уязвимости в формате Microsoft Compiled HTML Help (CHM), чтобы распространять вредоносное ПО. Один из последних образцов, обнаруженных аналитиками - файл deklaracja.chm, загруженный в VirusTotal из Польши. Этот формат, представляющий собой бинарный контейнер для сжатых HTML-файлов и связанных с ними объектов, используется для сложной многоэтапной атаки.
Описание
При запуске через стандартный обработчик hh.exe файл отображает изображение deklaracja.png, имитирующее банковскую квитанцию из польского банка PKO. В то время как жертва изучает поддельный документ, в фоновом режиме активируются вредоносные процессы. Технический анализ показал, что после распаковки CHM-файла обнаруживаются ключевые компоненты: системные файлы формата с префиксом "#", HTML-файл index.htm с обфусцированным JavaScript, CAB-архив, замаскированный под desktop.mp3 (он содержит DLL-библиотеку unt32.dll), а также упомянутое поддельное изображение.
Обфусцированный JavaScript в index.htm декодирует шестнадцатеричную строку в исполняемый HTML-код, который управляет атакой. Скрипт создает iframe для отображения поддельного изображения, использует устаревший тег "<bgsound>" (работающий только в Internet Explorer), чтобы принудительно загрузить desktop.mp3 во временную директорию, а также инициирует работу ActiveX-объекта через CLSID adb880a6-d8ff-11cf-9377-00aa003b7a11, связанного с библиотекой hhctrl.ocx. Далее ActiveX-компонент имитирует нажатие кнопки, запуская цепочку команд:
Сначала вызывается cmd.exe, который переходит в папку %temp%, после чего через системную утилиту forfiles.exe ищет файлы с расширением .tmp, проверяет их размер (180738 байт - точное соответствие desktop.mp3), затем извлекает DLL-библиотеку с помощью expand и загружает её через rundll32.exe, указывая порядковый номер #1. Вредоносная библиотека unt32.dll, написанная на C++, выполняет функции загрузчика, используя XOR-шифрование строк с 128-байтовым вращающимся ключом.
Далее загрузчик связывается с сервером hxxps://rustyquill[.]top/shw/the-magnus-protoco1.jpg (домен и имя файла отсылают к Rusty Quill), проверяет размер ответа (должен быть больше 289109 байт), удаляет начальный сегмент (вероятно, заголовок JPEG), расшифровывает оставшиеся данные и сохраняет их в виде net32.dll по пути C:\Users%user%\AppData\Local\TaskSync\. Затем библиотека запускается через rundll32.exe и регистрируется в системе через COM-объект Scheduled Task для обеспечения персистентности.
Этот метод атаки соответствует предыдущим кампаниям - например, обнаруженному в апреле 2025 года файлу dowód_wpłaty.zip, также связанному с доменом rustyquill[.]top. Аналитики предполагают, что за атаками стоит группировка FrostyNeighbor (также известная как UNC1151), предположительно базирующаяся в Беларуси и ранее атаковавшая Украину, Литву, Латвию, Польшу и Германию.
Использование тематических приманок (банковские документы, отсылки к подкастам) говорит о тщательно проработанной социальной инженерии, нацеленной на конкретные регионы. Кроме того, злоумышленники применяют обфусцированный код, маскировку под легитимные файлы и скрытое исполнение команд через системные утилиты (LOLbins), что затрудняет детектирование на уровне защитных решений.
Подобные случаи подчеркивают важность мониторинга устаревших форматов файлов, таких как CHM, которые могут быть использованы для обхода защиты. Киберпреступники продолжают совершенствовать свои методики, комбинируя обфускацию, эксплойты для старых технологий (вроде ActiveX) и техники стеганографии в изображениях, что делает их атаки более изощренными и сложными для обнаружения.
Пока попытки отследить загруженные версии файла the-magnus-protoco1.jpg через YARA-правила, сопоставляющие структуру JPEG, не дали результатов, что может указывать на временный или регионально ограниченный механизм распространения. Это еще раз напоминает, что компании и пользователи должны быть особенно бдительными при работе с подозрительными вложениями, даже если они выглядят безобидными.
1 2 3 4 5 6 7 8 9 10 11 | rule findbadimage { strings: $jpgheader = {FF D8 FF E0 00 10 4A 46 49 46 } $pattern1 = {89 8A 92 93 94 95 96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5 D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3 F4 F5 F6 F7 F8 F9 FA FF DA 00 0C 03 01 00 02 11 03 11 00 3F 00 FC 7B F0 EF 81 E6 FD 9D F4 EF 3B 7D AE AF E3 9D 71 7E CD 67 67 6C 45 C1 80 37 07 6B 29} $pattern2 = {3A 9E 9D A7 68 6D 67 65 76 64 80 32 24 72 00 51 64 DA D2 B1 2D 83 80 9E D4 01 FA 21 FB 40 7E CA DE 30 F1 9F FC 17 D7 E0 17 C4 EB 0F 0F CF 75 E0 5F 0D FC 3A D6 B4 AD 67 54 F3 10 43 6F 34 A2 E4 45 11 52 77 33 31 99 7A 0C 73 CD 7E 48 7F C1 E6 FE 2C D3 BC 51 FF 00 05 0F F8 71 A0 58 DC 41 77 AC E8 9E 08 86 2D 41 22 6C B4 2F 3D} condition: $jpgheader at 0 and filesize > 289109 and $pattern1 and $pattern2 } |
Индикаторы компрометации
URLs
- https://rustyquill.top/shw/the-magnus-protoco1.jpg
SHA256
- 0631696f484633f4aeb8f817af2a668806ab4dca70f006dc56fc9cd9dcda4dbe
- 0d3dbaa764acb2b87ae075aa2f5f924378991b39587b0c5e67a93b10db39ddd9
- 156ad4975e834355b2140d3c8fe62798fe6883364b8af1a1713f8b76c7b33947
- 4d09fad2630ec33ab6bb45b85455c6a6ac7b52f8dae9b90736db4a5f00f72ea9
- be5a40b5622d21b46cbc87fd6c3f8ebcb536ec8480491a651c1625ee03ae2c6f
- f55e06a87e2a20989ddb76d9f2e3ebb303659ad306ba54e3ed7f8dcc4456d71b