Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
security checks — Проверки безопасности Linux | Kitploit
Инструменты/GitLabGitLab/abdom.seada/security-checks
Оборонительные ИнструментыКриминалистика памятиАнализ уязвимостейСетевая криминалистикаАудит конфигурацииФорензикаАнализ вредоносных программЦифровая криминалистикаОбнаружение ВторженийРеагирование на ИнцидентыАнализ Журналов
4 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitLab
abdom.seada/security-checks

security checks

Проверки безопасности Linux

Репозиторий

🔍 Охотник за майнерами

Инструмент для обнаружения, удаления криптомайнеров и усиления защиты серверов Linux.

Создан на основе реального реагирования на инциденты — обнаруживает майнеры, которые скрываются от ps, top, htop и btop с помощью руткит-техник.


📦 Установка

root@kitploit:~
git clone https://gitlab.com/abdom.seada/security-checks.git
cd security-checks
sudo bash setup.sh

🔀 Ветка: master — этот инструментарий находится в ветке master. Другие скрипты безопасности могут быть добавлены в отдельных ветках в будущем.


⚙️ Настройка

⚠️ Запустите setup.sh сразу после клонирования — пропуск этого шага является причиной №1 ошибок.

root@kitploit:~
sudo bash setup.sh

setup.sh делает всё автоматически:

Ожидаемый вывод при успешной настройке:

root@kitploit:~
✅ Setup complete — all checks passed!

  Next steps:
    sudo ./miner-hunter scan        # Safe read-only scan
    sudo ./miner-hunter full        # Scan → Kill → Harden

💡 Зачем это нужно? Linux не выполнит файл, если у него нет флага +x. Git и SCP-передачи удаляют его. setup.sh исправляет все файлы за один раз, включая модули lib/, от которых зависит основной скрипт.


🚀 Быстрый старт

root@kitploit:~
sudo ./miner-hunter scan            # ✅ Safe — read-only, zero changes
sudo ./miner-hunter full            # ⚠️  Full pipeline: Scan → Kill → Harden
sudo ./miner-hunter scan --dry-run  # 👁️  Preview mode — shows what would happen

📋 Команды и параметры

Команды

Параметры

ПараметрОписание
-d, --dry-run

🎭 Сценарии случаев

Реальные ситуации и что именно запускать в каждой из них.


🔴 Сценарий 1 — "Загрузка ЦП сервера 100%, но top ничего не показывает"

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

root@kitploit:~
# Step 1: Run a safe scan first — confirm what's there before touching anything
sudo ./miner-hunter scan

Что вы увидите, если майнер присутствует:

root@kitploit:~
🚨 [CRITICAL]  CPU anomaly: 97% user CPU but top shows max 2% per process
🚨 [CRITICAL]  perf detected 4 hidden threads consuming ~94% total CPU
🚨 [CRITICAL]  Active connection to 185.x.x.x:9200 (known mining port)
🚨 [CRITICAL]  Fake kernel thread PID=3421 NAME=[kworker/0:1] EXE=/tmp/.x/miner
root@kitploit:~
# Step 2: Kill the miner and block its pool
sudo ./miner-hunter kill

# Step 3: Harden the server so it can't come back
sudo ./miner-hunter harden

🟡 Сценарий 2 — "Я думаю, меня взломали, но не уверен"

Вы заметили что-то подозрительное — необычный исходящий трафик, задание cron, которое вы не создавали, процесс со странным именем — но вы не уверены.

root@kitploit:~
# Run a full scan — completely safe, read-only, zero changes
sudo ./miner-hunter scan

# Then read the structured report
sudo ./miner-hunter report

Отчёт в /root/miner_evidence_*/report.txt категоризирует каждую находку по серьёзности:

  • [CRITICAL] → немедленно переходите к kill
  • [WARNING] → просмотрите вручную перед действием
  • Пустой отчёт → сервер выглядит чистым

🟠 Сценарий 3 — "Я убил майнер вручную, но он возвращается"

У майнера есть механизм персистентности — задание cron, служба systemd, запись PM2 или бэкдор в профиле оболочки, которые возрождают его после убийства.

root@kitploit:~
sudo ./miner-hunter scan

Ищите это в выводе:

root@kitploit:~
⚠️  [WARN]     Suspicious cron entry: * * * * * /tmp/.x/update
🚨 [CRITICAL]  Malicious systemd service: /etc/systemd/system/update-check.service
🚨 [CRITICAL]  PM2 process 'app-worker' has 8432 restarts — likely miner respawn loop
🚨 [CRITICAL]  Shell profile backdoor detected in /root/.bashrc
root@kitploit:~
# kill removes ALL persistence artifacts — not just the running process
sudo ./miner-hunter kill

# Then harden to install the watchdog so you're alerted if anything respawns
sudo ./miner-hunter harden

💡 После kill, сторожевой cron запускается каждые 5 минут и записывает в /var/log/miner_hunter/watchdog_alerts.log — вы сразу узнаете, если что-то вернётся.


🔵 Сценарий 4 — "Я хочу усилить защиту нового сервера до того, как что-то случится"

Упреждающее усиление защиты перед развёртыванием — нет майнера, нет инцидента, просто блокировка системы.

root@kitploit:~
# Run harden standalone — no scan or kill needed
sudo ./miner-hunter harden

Это сделает:

  • Проверить вашу конфигурацию SSH и вывести рекомендуемые настройки
  • Убедиться, что fail2ban активен с jail'ом sshd
  • Создать базовую линию целостности /usr/bin (контрольные суммы MD5 — чтобы вы могли позже обнаружить подменённые бинарники)
  • Установить сторожевой cron, который проверяет каждые 5 минут на индикаторы майнера
  • Сохранить существующие правила iptables после перезагрузки через службу systemd

⚫ Сценарий 5 — "Майнер пережил kill — загрузка ЦП всё ещё высокая"

После kill, шаг проверки сообщает, что майнер может всё ещё работать:

root@kitploit:~
⚠️  MINER MAY HAVE RESPAWNED
CPU: 89% | Mining conns: 1
Firewall blocks are in place — miner can't reach pool
Consider a REBOOT or OS REINSTALL
root@kitploit:~
# 1. Firewall blocks are already in place — miner CANNOT reach its pool
#    Confirm blocks are active:
iptables -L OUTPUT -n | grep DROP

# 2. Run a second scan to see what survived
sudo ./miner-hunter scan

# 3. Check for a kernel module rootkit hiding the process
lsmod | grep -iE 'diamorphine|reptile|kovid|rootkit'

# 4. Non-zero taint = out-of-tree kernel modules loaded (rootkit indicator)
cat /proc/sys/kernel/tainted

Если значение taint ядра не равно нулю или появляется известный модуль руткита — майнер имеет контроль уровня ядра. Самым безопасным путём на этом этапе является полная переустановка ОС из известной чистой резервной копии.


🟣 Сценарий 6 — "Я хочу постоянный мониторинг без ручного запуска сканирований"

После harden сторожевой cron уже установлен. Вот как с ним работать:

root@kitploit:~
# Watch the alert log in real time
tail -f /var/log/miner_hunter/watchdog_alerts.log

# Confirm the watchdog cron job is registered
cat /etc/cron.d/miner-watchdog

# Check for /usr/bin binary changes since your baseline was taken
md5sum --check /var/lib/miner_hunter/usrbin_baseline.md5 --quiet

Любой вывод последней команды означает, что системный бинарник был изменён после создания базовой линии — немедленно проведите расследование.


🔬 Что он обнаруживает

Обнаружение скрытых процессов

Профилирование ЦП

ТехникаЧто обнаруживает
Профилирование аппаратных PMC с помощью perfСкрытые потребители ЦП — руткиты не могут подделать аппаратные счётчики

Сетевой анализ

Механизмы персистентности


⚔️ Процесс Kill — Пошагово

Когда вы запускаете sudo ./miner-hunter kill, выполняется следующая последовательность:

  1. 🔥 Блокировка IP-адресов пулов майнинга на брандмауэре — правила iptables DROP применяются до убийства, чтобы майнер не мог переподключиться, даже если он возродится
  2. 💀 Убийство лидера группы потоков — сначала отправляет SIGKILL на TGID (PID лидера группы потоков)
  3. 🧹 Зачистка всех рабочих потоков — убивает каждый PID в той же группе потоков во всём диапазоне PID
  4. 🗑️ Удаление артефактов — конфиги майнера, бинарники, веб-шеллы и файлы персистентности
  5. 🔄 Очистка PM2 — удаляет записи майнера из менеджера процессов Node.js и сохраняет список
  6. ✅ Проверка — повторно запускает perf и проверяет /proc/net/tcp, чтобы подтвердить снижение нагрузки ЦП и отсутствие соединений

🛡️ Усиление защиты после инцидента — что применяется


📁 Структура проекта

root@kitploit:~
security-checks/               ← repo root (master branch)
├── miner-hunter               # Entry point — this is what you run
├── setup.sh                   # ⚙️ First-time setup — run once after cloning
├── lib/
│   ├── common.sh              # Shared utilities: logging, colors, helpers
│   ├── detect_hidden.sh       # Hidden process & rootkit detection
│   ├── detect_cpu.sh          # CPU profiling via perf & /proc
│   ├── detect_network.sh      # Mining pool connection detection
│   ├── detect_persistence.sh  # Persistence mechanism detection
│   ├── kill_miner.sh          # Process killing & artifact removal
│   └── harden.sh              # Post-incident hardening
├── README.md
└── LICENSE

📋 Требования


📤 Выходные файлы


🌍 Реальное происхождение

Этот инструмент был создан в ходе активного реагирования на инцидент с криптомайнером, который:

  • Переименовался в next, чтобы слиться с процессами Next.js на сервере Node.js
  • Использовал лидера группы потоков, переименованного в kthreadd — настоящее имя потока ядра
  • Удалил свой бинарник с диска, оставаясь запущенным в памяти (/proc/PID/exe → (deleted))
  • Был полностью невидим для ps, top, htop и btop
  • Мог быть обнаружен только с помощью профилирования аппаратных счётчиков ЦП через perf

📄 Лицензия

MIT

Скачать инструмент
ШагЧто делает
✅ Праваchmod +x для miner-hunter и всех скриптов lib/*.sh
✅ КаталогиСоздаёт /var/log/miner_hunter/ и /var/lib/miner_hunter/ (только для root, 700)
✅ ЗависимостиПроверяет perf, mpstat, iptables, fail2ban, bc, strings — автоматически устанавливает отсутствующие
✅ СамопроверкаЗапускает ./miner-hunter --version, чтобы убедиться, что всё настроено правильно
КомандаОписаниеИзменяет систему?
scanПолное сканирование обнаружения — скрытые процессы, ЦП, сеть, персистентность✅ Нет
killУбить обнаруженные майнеры, заблокировать IP-адреса пулов, удалить артефакты⚠️ Да
hardenУсиление защиты после инцидента — SSH, брандмауэр, сторожевой пёс, базовая линия целостности⚠️ Да
fullЗапускает scan → kill → harden с запросами подтверждения между фазами⚠️ Да
reportПоказать последний отчёт сканирования✅ Нет
Предварительный просмотр всех действий без внесения изменений
-e, --evidence DIRСохранить доказательства в пользовательский каталог вместо /root/miner_evidence_*
-h, --helpПоказать справку
-v, --versionПоказать версию
ТехникаЧто обнаруживает
Сравнение /proc и psПроцессы, невидимые для пользовательских инструментов
Перехват LD_PRELOADВредоносные разделяемые библиотеки, перехватывающие libc для сокрытия процессов
Руткиты модулей ядраDiamorphine, Reptile, Kovid и другие известные руткиты
Поддельные потоки ядраМайнеры, маскирующиеся под [kworker], [kthreadd], [kswapd]
Изменённые системные бинарникиЗаменённые ps, top, ls, ss, netstat
Дельта-сэмплирование /procПрямой учёт ЦП на уровне ядра для каждого PID
Обнаружение аномалий ЦПВысокая загрузка ЦП в %user без видимого процесса, который бы её объяснял
Техника
Что обнаруживает
Прямое чтение /proc/net/tcpАктивные соединения — обходит перехваченные ss/netstat
Обнаружение портов майнингаПорты 3333, 4444, 5555, 7777, 9200, 14433, 14444, 45560
Разрешение доменов майнингаРазрешает известные домены пулов и перекрестно проверяет активные соединения
Сопоставление сокетов с PIDОпределяет, какой процесс владеет каждым майнинг-соединением
МестоположениеЧто проверяет
Cron/etc/cron*, /var/spool/cron/, все пользовательские crontab'ы
SystemdВсе unit-файлы и таймеры на подозрительные записи
Правила UdevВыполнение, срабатывающее на события устройств
PM2Записи менеджера процессов Node.js с чрезвычайно большим числом перезапусков
Профили оболочки.bashrc, .bash_profile, /etc/profile, /etc/profile.d/*
SSHВсе файлы authorized_keys у всех пользователей
Веб-шеллыPHP-файлы внутри каталогов проекта Node.js
Конфиги XMRigconfig.json в типичных местах размещения майнеров
ДействиеПодробности
Сохранение брандмауэраСлужба systemd для восстановления блокировок майнинга iptables при каждой перезагрузке
Аудит SSHПроверяет PermitRootLogin, PasswordAuthentication, MaxAuthTries — выводит рекомендуемые значения
Проверка Fail2banПроверяет, активен ли jail sshd, и сообщает о забаненных IP-адресах
Сторожевой пёс майнераЗадание cron каждые 5 минут — проверка аномалий ЦП, LD_PRELOAD, портов майнинга, PHP веб-шеллов
Базовая линия /usr/binСоздаёт контрольные суммы MD5 всех бинарников в /usr/bin для будущего обнаружения подмен
ТребованиеПодробности
ОСLinux — протестировано на Ubuntu 24.04 LTS, Debian 13
ПривилегииДолжен выполняться от имени root (sudo)
Автоматически устанавливается setup.shperf, mpstat (sysstat), bc, strings (binutils)
Рекомендуетсяfail2ban — отмечается, если отсутствует, не устанавливается автоматически
Требуется (не устанавливается автоматически)iptables — должен присутствовать для этапов kill/harden
ВыводРасположениеСодержимое
Каталог доказательств/root/miner_evidence_YYYYMMDD_HHMMSS/Захваченные бинарники, отчёты perf, конфиги майнера
Файл журнала/var/log/miner_hunter/run_YYYYMMDD_HHMMSS.logПолный журнал выполнения с временными метками
Отчётevidence_dir/report.txtСтруктурированная сводка находок с уровнями серьёзности
Оповещения сторожевого пса/var/log/miner_hunter/watchdog_alerts.logТекущие оповещения после harden
Базовая линия целостности/var/lib/miner_hunter/usrbin_baseline.md5Контрольные суммы /usr/bin после harden