Криптомайнер на сервере компании: как обнаружить, удалить и не допустить повторения
Меня зовут Семёнов Евгений Сергеевич, я уже 15 лет руковожу АйТи Фреш — IT-аутсорсингом для офисов до 50 рабочих мест в Москве. За это время через моих инженеров прошло около 40 серверов с криптомайнерами разной степени запущенности. В этой статье — конкретный кейс из практики марта 2026 года: торговая компания, сервер 1С, загрузка 100% круглые сутки. Расскажу, как мы нашли проблему за 15 минут, как её устранили за 2 часа и что сделали, чтобы это не повторилось.
Звонок: «1С работает в 10 раз медленнее, чем месяц назад»
В понедельник утром позвонил IT-директор торговой компании, обслуживающей оптовые поставки промтоваров — 32 рабочих места в офисе на Шаболовке, сервер 1С физически стоит у них в серверной. Жалоба: проведение документа в 1С УТ занимает 15-20 секунд вместо обычной 1 секунды. Бухгалтерия криком кричит, продажи стоят, директор готов рвать на себе волосы.
Я взял с собой одного из инженеров и через час был на месте. Подключились к серверу через RDP под админской учёткой и сразу открыли диспетчер задач. Картина: процессор Intel Xeon E-2236 (6 ядер, 12 потоков) загружен на 100%. При этом активных пользователей в 1С — 4 человека. На графике загрузки за последний час — ровная полка 99%, никаких провалов даже ночью.
Опытный системщик уже на этом этапе понимает диагноз. Здоровый сервер 1С на 30 пользователей в нормальном режиме грузит CPU на 15-30%, с пиками до 60% при закрытии месяца. Постоянная полка 99% — это либо зависший процесс, либо что-то посторонее. Открыли вкладку «Подробности» в диспетчере и отсортировали по CPU. На первой строчке висел процесс WindowsHostHelper.exe, потребляющий 91% процессора. Имя выглядело системным, но на здоровом Windows Server такого процесса нет — это классическая маскировка.
Подтверждение: что именно делает подозрительный процесс
Сразу убивать процесс нельзя — нужно сначала понять, что он делает, откуда запущен и нет ли механизма автоперезапуска. Открыл командную строку с правами администратора и посмотрел детали:
PS C:\> Get-Process WindowsHostHelper | Format-List *
Name : WindowsHostHelper
Id : 4128
Path : C:\ProgramData\WindowsHostService\bin\WindowsHostHelper.exe
StartTime : 02.03.2026 03:14:22
CPU : 154892,73
Threads : {...12 потоков...}
Modules : {WindowsHostHelper.exe, ntdll.dll, ...}
Запущен из C:\ProgramData\WindowsHostService\ — папка, которой по умолчанию в Windows Server нет, и которая не создаётся легитимными приложениями. Стартовое время — 2 марта в 3:14 ночи. Сейчас 31 марта. То есть майнер крутится 29 дней, накопив на счётчике CPU больше 154 тысяч секунд (это 42 часа чистого процессорного времени).
Проверил, с кем он общается:
PS C:\> Get-NetTCPConnection -OwningProcess 4128
LocalAddress LocalPort RemoteAddress RemotePort State
10.0.10.5 49321 176.124.107.214 14444 Established
Активное соединение с IP 176.124.107.214 на порту 14444 — это типичный порт для пулов Monero (XMR). Whois IP-адреса показал, что это сервер в Германии, известный как пул для XMRig-майнеров. Диагноз подтвердился: на сервере работает криптомайнер, добывающий Monero и отдающий результат в чужой пул.
Поиск механизмов перезапуска
Прежде чем убивать процесс и удалять файлы, обязательно надо найти всё, что его перезапускает — иначе через 5 минут он вернётся. Проверил в порядке приоритета:
1. Запланированные задачи:
PS C:\> Get-ScheduledTask | Where-Object {$_.TaskPath -notlike "\Microsoft\*"} | Format-Table TaskName, TaskPath, State
TaskName TaskPath State
WindowsHostMonitor \Microsoft\Windows Ready
WindowsHostUpdater \ Running
Нашёл две задачи. Первая — каждые 5 минут проверяет, запущен ли майнер, и если нет — запускает. Вторая — раз в сутки скачивает свежую версию с командного сервера. Обе создал злоумышленник.
2. Службы Windows:
PS C:\> Get-Service | Where-Object {$_.DisplayName -like "*Helper*" -or $_.DisplayName -like "*Host Service*"}
Status Name DisplayName
Running WinHostHlpr Windows Host Helper Service
Ещё один механизм — служба, которая стартует при загрузке системы. Тоже создана злоумышленником, но имя выглядит «системным».
3. Автозагрузка через реестр:
PS C:\> Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Run
WindowsHostHelper : C:\ProgramData\WindowsHostService\bin\WindowsHostHelper.exe
И третий — стандартный ключ реестра автозагрузки. Тройная страховка: даже если убрать одно, два других перезапустят майнер. Видно, что злоумышленник опытный.
Зачистка инфраструктуры
Порядок зачистки важен — сначала отключаем все механизмы перезапуска, потом убиваем процесс, потом удаляем файлы:
# 1. Удаляем запланированные задачи
PS C:\> Unregister-ScheduledTask -TaskName "WindowsHostMonitor" -Confirm:$false
PS C:\> Unregister-ScheduledTask -TaskName "WindowsHostUpdater" -Confirm:$false
# 2. Останавливаем и удаляем службу
PS C:\> Stop-Service -Name "WinHostHlpr" -Force
PS C:\> sc.exe delete WinHostHlpr
# 3. Удаляем ключ автозапуска
PS C:\> Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" `
-Name "WindowsHostHelper"
# 4. Убиваем процесс
PS C:\> Stop-Process -Id 4128 -Force
# 5. Удаляем файлы майнера
PS C:\> Remove-Item -Path "C:\ProgramData\WindowsHostService\" -Recurse -Force
После этого открыл диспетчер задач — загрузка CPU мгновенно упала до 8%. Зашёл в 1С, провёл тестовый документ — секунда. Бухгалтерия выдохнула, директор перестал нервничать. Но работа далеко не закончена — нужно понять, как майнер попал на сервер, и закрыть эту дыру. Иначе через неделю всё повторится.
Расследование: точка входа
Открыл журнал событий безопасности Windows и отфильтровал по событию 4624 (успешный вход в систему) с указанием логона типа 10 (Remote Interactive — то есть RDP):
PS C:\> Get-WinEvent -FilterHashtable @{LogName='Security';ID=4624;StartTime=(Get-Date).AddDays(-35)} `
| Where-Object {$_.Message -like "*Logon Type:*10*"} `
| Select-Object TimeCreated, @{N='Account';E={$_.Properties[5].Value}}, `
@{N='SourceIP';E={$_.Properties[18].Value}} `
| Group-Object SourceIP | Sort-Object Count -Descending | Select-Object -First 10
Картина оказалась шокирующей. За месяц на сервер было 14 700 успешных RDP-логинов с IP-адресов из Бразилии, Вьетнама, Нигерии и Болгарии. То есть кто-то методично подбирал пароль, и в какой-то момент подобрал. Проверил неудачные попытки (событие 4625) — 2.3 миллиона за месяц. Брутфорс работал постоянно, и в итоге пароль был подобран.
Дальше выяснилось, что у клиента:
- RDP-порт 3389 открыт в интернет на роутере (проброс с белого IP);
- Учётка администратора называется
Administrator(стандартное имя — половина дела для атакующего); - Пароль
Qwerty2024!— выглядит сложным, но он в любом списке для брутфорса; - Нет ограничений по числу попыток входа, нет блокировки после неудачных попыток;
- Нет лимита по IP-адресам, с которых можно подключаться по RDP.
Это типовая ситуация для маленьких компаний, которые «попросили IT-шника на удалёнке настроить, чтобы из дома можно было работать». IT-шник настроил, протестировал, что работает, и забыл. А злоумышленники сканируют интернет на открытые 3389 порты круглосуточно.
Закрытие дыры: как мы переделали удалённый доступ
В тот же день мы переделали схему удалённого доступа полностью. На решение заложили 3 часа, реально уложились в 2.5:
- Закрыли проброс RDP с роутера в интернет. Никаких 3389 наружу больше нет, точка.
- Развернули WireGuard на роутере Mikrotik. 7 пользователей (директор, главбух, кладовщик, 4 менеджера) получили персональные конфиги. Подключение к VPN, и уже из VPN — RDP к серверу. На каждое подключение — отдельный ключ, можно отозвать.
- Переименовали учётку Administrator в нестандартное имя (по политике безопасности АйТи Фреш — что-то вроде
adm-itfresh-svnv). Старое имя оставлено, но отключено — это ловушка. - Сменили все админские пароли на 18-символьные с генератором. Сохранили в Bitwarden, поделились с клиентом через защищённую ссылку.
- Включили блокировку учётки после 5 неудачных попыток на 30 минут (групповая политика «Account Lockout Threshold»).
- Включили журнал безопасности с увеличенным размером (1 ГБ) и настроили выгрузку в SIEM (у клиента — Wazuh).
- Установили мониторинг загрузки CPU через Zabbix — алерт инженеру, если CPU >70% дольше 30 минут вне рабочих часов.
Стоимость для клиента — 28 000 рублей разовых работ. Они платили нам пока почасовку, на следующей неделе подписали договор абонентского обслуживания на 95 000 руб./мес — потому что осознали, что инфраструктура без присмотра обходится в десятки раз дороже.
Признаки майнера на сервере: чек-лист для самопроверки
Если у вас есть подозрение, что на сервере работает майнер, вот что нужно проверить за 5 минут (любой админ справится):
| Признак | Что проверить | Норма |
|---|---|---|
| Загрузка CPU | Диспетчер задач, график за последние сутки | Должны быть провалы ночью и в обеденное время |
| Температура сервера | iDRAC/iLO/IPMI или термодатчики | На 5-15 °C выше базового уровня — повод проверить |
| Странные процессы | Get-Process отсортировать по CPU | В топе должны быть знакомые: 1cv8.exe, sqlservr.exe, agntsrvc |
| Подозрительные подключения | Get-NetTCPConnection | Не должно быть исходящих на порты 3333, 5555, 7777, 14444 |
| Папки в ProgramData | dir C:\ProgramData /AD | Только папки с именами известных программ |
| Запланированные задачи | Get-ScheduledTask | Без задач с подозрительными именами вне Microsoft\Windows |
| Скачки потребления электричества | Счётчик электроэнергии по серверной | Стабильное потребление, без скачков на 30-50% |
Как мы предотвращаем майнеры у клиентов АйТи Фреш
Каждый клиент АйТи Фреш на абонентском обслуживании автоматически получает базовый пакет защиты от компрометации серверов. Это не дополнительная услуга — это часть стандартной абонентки за 90 000 руб./мес для офиса 25 ПК с одним сервером. Что входит:
- Никакого RDP в интернет. Удалённый доступ только через VPN (WireGuard на роутере или OpenVPN на сервере), с персональными ключами для каждого сотрудника.
- Аудит паролей раз в квартал. Проверяем, что админские пароли — не из списков для брутфорса, длиной 16+ символов, не повторяются между серверами.
- Мониторинг загрузки CPU и памяти 24/7 через Zabbix. Аномалии (например, 100% CPU на сервере 1С в 4 утра) сразу всплывают на дежурной смене.
- Бэкапы в две локации с тестовым восстановлением раз в квартал. Если майнер всё-таки прорвался — мы знаем, что у нас есть чистая копия за 24 часа до инцидента.
- Аудит безопасности раз в полгода с письменным отчётом — что нужно дозакрыть, какие сервисы выставлены наружу, какие пароли пора сменить.
Я знаю, что это звучит как реклама — но без этих базовых вещей любой сервер в интернете заразится за пару месяцев. Это не вопрос «если», это вопрос «когда». Мы просто делаем «когда» как можно более далёким и контролируемым событием.
Подозреваете майнер на своём сервере? Позвоните прямо сейчас
Если у вас сервер тормозит, греется, потребляет много электричества и вы не понимаете почему — это может быть майнер. Я лично или один из моих инженеров приедет к вам в офис в Москве в течение 2-4 часов, проведёт диагностику, найдёт и удалит майнер, закроет точку входа. Стоимость экстренного выезда — от 12 000 руб., в составе абонентки — без доплат.
Телефон: +7 903 729-62-41 (звоните сейчас, отвечу лично)
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы про криптомайнеры на серверах
- Как понять, что на сервере работает криптомайнер?
- Главный признак — постоянная загрузка CPU 90-100% при отсутствии реальной работы пользователей. На сервере 1С это особенно заметно: ночью нагрузка должна быть минимальной, а майнер держит её на максимуме круглосуточно. Также повышается температура, шумят кулеры, растут счета за электричество.
- Опасен ли майнер для данных компании?
- Сам майнер не крадёт данные, его задача — генерировать криптовалюту. Но факт его установки означает, что злоумышленник получил доступ к серверу. И через эту же дыру он может загрузить шифровальщик, скачать базы или подменить документы. Поэтому майнер — всегда сигнал о компрометации.
- Как майнер попадает на сервер компании?
- Три основных пути: открытый RDP с слабым паролем, уязвимости в публично доступных сервисах (старая 1С-публикация, веб-сайт компании на сервере, веб-морда видеонаблюдения), и физический доступ через флэшку. В 70% случаев в моей практике — это именно RDP.
- Нужно ли переустанавливать сервер после обнаружения майнера?
- Если майнер установлен недавно, точка входа понятна и других следов компрометации нет — достаточно зачистки и закрытия дыры. Если злоумышленник имел доступ долго (недели и месяцы), есть смысл переустанавливать ОС с нуля и восстанавливать данные из проверенного бэкапа — нельзя гарантировать, что не остался скрытый бэкдор.
- Сколько стоит чистка сервера от майнера?
- В АйТи Фреш разовая зачистка с поиском точки входа и базовым харденингом — от 12 000 руб. Полное расследование инцидента с переустановкой ОС и восстановлением — от 35 000 руб. Клиентам на абонентке инцидент закрывается без доплат.