Антивирусная лаборатория «Доктор Веб» обнаружила семейство вредоносных программ Trojan.Scavenger. С их помощью злоумышленники похищают конфиденциальные данные из криптокошельков и менеджеров паролей у пользователей Windows. В заражении участвует несколько троянов, для их запуска используются легитимные приложения. В том числе эксплуатируются уязвимости класса DLL Search Order Hijacking.
В 2024 году компания расследовала инцидент информационной безопасности с попыткой целевой атаки на российское предприятие. В атаке использовалось вредоносное ПО, которое применяло уязвимость DLL Search Order Hijacking в браузере. Программы в Windows ищут нужные библиотеки в определённом порядке. Злоумышленники размещают вредоносные DLL-файлы в каталоге, который будет просматриваться первым. Файл получает имя легитимной библиотеки, которая находится в менее приоритетной директории. В результате программа загружает вредоносный файл, который получает те же права.
После этого в антивирусные продукты Dr.Web была внедрена функция отслеживания и предотвращения попыток эксплуатации DLL Search Order Hijacking. При анализе телеметрии этой функции специалисты выявили попытки загрузки неизвестного ПО в браузеры клиентов. Это позволило обнаружить новую хакерскую кампанию.
Заражение многоступенчатое. Начинается с троянов-загрузчиков. Были выявлены две цепочки заражения с разным числом компонентов. В первой цепочке стартовый компонент — Trojan.Scavenger.1, это DLL-файл. Он распространяется в составе пиратских игр, патчей, читов и модов через торренты и игровые сайты. Пример: троян выдаётся за патч для Oblivion Remastered. В ZIP-архиве содержится инструкция:
Drag umpdc.dll and engine.ini to the game folder: steamappscommonOblivion RemasteredOblivionRemasteredBinariesWin64
Engine.ini will automatically be loaded by the module. The module will also apply some native patches to improve performance
Имя umpdc.dll совпадает с именем легитимного системного файла из каталога %WINDIR%System32. Это библиотека графического API. Если в версии игры есть уязвимость, троян будет запускаться вместе с ней. В описанном случае игра корректно обрабатывала порядок загрузки DLL, поэтому Trojan.Scavenger.1 не запускался автоматически.
При успешном запуске Trojan.Scavenger.1 скачивает с сервера и запускает Trojan.Scavenger.2 (tmp6FC15.dll). Тот устанавливает следующие модули — Trojan.Scavenger.3 и Trojan.Scavenger.4.
Trojan.Scavenger.3 — это DLL-файл version.dll. Он копируется в папку одного из браузеров на базе Chromium. Имя совпадает с системной библиотекой в %WINDIR%System32. Уязвимые браузеры не проверяют путь к библиотеке. Если файл находится в папке приложения, он загружается первым. Зафиксированы попытки заражения через Google Chrome, Microsoft Edge, Яндекс Браузер и Opera.
Trojan.Scavenger.3 отключает защитные механизмы браузера, включая песочницу. Он отключает проверку расширений, определяя нужную библиотеку по наличию функции CrashForExceptionInNonABICompliantCodeRange. Далее он ищет процедуру проверки расширений и вносит патч.
Троян модифицирует установленные расширения. Код модификаций загружается с управляющего сервера. Затронутые расширения:
Phantom;
Slush;
MetaMask;
Bitwarden;
LastPass.
Изменяются не оригиналы, а копии, размещённые в каталоге %TEMP%/ServiceWorkerCache. Для подмены используется перехват функций CreateFileW и GetFileAttributesExW. Локальные пути заменяются на пути к изменённым файлам. Dr.Web детектирует их как Trojan.Scavenger.5.
Модификации включают:
добавление временной метки к cookie;
отправку пользовательских данных на управляющий сервер.
Из криптокошельков передаются приватные ключи и мнемонические фразы. От Bitwarden передаётся cookie авторизации. От LastPass — добавляемые пароли.
За ВПО Trojan.Scavenger.4 отвечает файл profapi.dll. Он копируется в папку криптокошелька Exodus. Запуск происходит при старте приложения, также за счёт DLL Search Order Hijacking. Легитимная библиотека profapi.dll находится в %WINDIR%System32, но из‑за уязвимости приоритет отдаётся трояну.
Trojan.Scavenger.4 перехватывает функцию v8::String::NewFromUtf8 в движке V8. С её помощью он отслеживает JSON, сформированные приложением. В случае с Exodus он ищет объект с ключом passphrase, считывает его значение и получает мнемоническую фразу. Затем находит приватный ключ seed.seco и вместе с фразой отправляет данные на сервер.
Во втором варианте цепочки вместо Trojan.Scavenger.1 используется модифицированная версия Trojan.Scavenger.2. Это файл с расширением .ASI (по сути DLL). Он распространяется как модификация для GTA. В архиве есть инструкция:
Copy BOTH the Enhanced Nave Trainer folder and «Enhanced Native Trainer.asi» to the same folder as the scripthook and launch GTA.
После копирования файл запускается как плагин. Дальнейшая цепочка совпадает с первой.
Общие признаки всех троянов:
проверка на наличие виртуальной среды или отладчика. При обнаружении — завершение работы;
единый алгоритм связи с сервером. Сначала создаётся ключ. Первый запрос нужен для получения части ключа. Второй — для проверки. Он содержит случайную строку, текущее время и зашифрованное значение времени. В ответ сервер присылает строку. Если при следующих запросах нет параметров времени — соединение не устанавливается.
Разработчики, в чьём ПО эксплуатировались выявленные уязвимости, были уведомлены. Но создатели ПО сочли уязвимости типа DLL Search Order Hijacking не требующими исправления.
Источник: habr.com