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

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

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

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

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

Категории

Все категории
Loading categories
process-watcher — Инструмент мониторинга процессов, который пытается обнаруживать эксплуатацию | Kitploit
Инструменты/GitHubGitHub/neo23x0/process-watcher
Оборонительные ИнструментыДинамический анализ (песочница)Анализ вредоносных программРазведка угрозОбнаружение ВторженийРеагирование на ИнцидентыАнализ Журналов
GitHubneo23x0/process-watcher

process-watcher

Инструмент мониторинга процессов, который пытается обнаруживать эксплуатацию

Репозиторий
131621 день назадЕщё не проверено

Популярное

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

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

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

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

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

process-watcher logo

process-watcher

Инструмент мониторинга процессов, который пытается обнаружить эксплуатацию

[!IMPORTANT] Новая угроза: критический релиз безопасности PHP 21 октября 2026 г., 14:00 UTC. Проект PHP объявил о нём 20 октября (анонс): две критические уязвимости, обе оценены по CVSS v4.0 в 9.2. Подробности, затронутые версии и исправления появятся вместе с релизом, который может выйти раньше, если подробности станут публичными или начнётся эксплуатация. Готовьтесь обновить PHP уже сейчас.

В анонсе не сказано, какого рода эти уязвимости. Если атака заставляет PHP запускать программы, process-watcher показывает каждую из них с её командной строкой и может по желанию завершать те, которые вы укажете. Он не ищет эти уязвимости: он ничего не предотвращает и пропускает код, который выполняется внутри PHP без запуска процесса, поэтому он добавляет слой обнаружения и не заменяет патч.

Начните здесь: наблюдение за PHP с помощью process-watcher, или прочитайте полное руководство по PHP.

Смотрите, что запускает сервис. process-watcher отслеживает сервис (веб-сервер, сервер приложений, ...) и каждый процесс, который он создаёт, в реальном времени и записывает каждый запуск, смену программы и завершение в формате JSON, по желанию с командной строкой. Когда ваш веб-сервер внезапно запускает оболочку или curl, вы видите, что было запущено, каким процессом и из какого сервиса. Это один статический бинарный файл для Linux (amd64, arm64): скачайте, распакуйте, запустите.

Он делает активность видимой; он её не оценивает. Построение базовой линии или решение о том, что является атакой, остаётся за вами или за системой, которая получает события (файл журнала, SIEM, вебхук). При желании он может реагировать на определённые дочерние процессы целевым SIGKILL (правила завершения).

Как работает process-watcher: он отслеживает каждую программу, имя которой содержит ваш текст (здесь php-fpm), и всё, что она запускает, записывает каждый запуск, смену программы и завершение в локальный журнал JSON, по желанию отправляет события по TCP, UDP или через вебхук и может завершать подходящие дочерние процессы, такие как обратная оболочка (правила завершения).

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

1. Скачайте и распакуйте последний релиз (amd64 или arm64, определяется по вашей машине; имена архивов содержат версию, поэтому вторая строка ищет последний тег):

ARCH=$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')
VERSION=$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/Neo23x0/process-watcher/releases/latest | sed 's#.*/##')
curl -fsSLO https://github.com/Neo23x0/process-watcher/releases/download/$VERSION/process-watcher_${VERSION}_linux_${ARCH}.tar.gz
tar xzf process-watcher_${VERSION}_linux_${ARCH}.tar.gz && cd process-watcher_${VERSION}_linux_${ARCH}

2. Запустите его для сервиса, который хотите отслеживать. Требуются права root и Linux 5.15 или новее с BTF; sudo ./process-watcher doctor сообщит, соответствует ли ваш хост требованиям.

sudo ./process-watcher --watch-image-contains nginx --capture-argv=true

nginx — это подстрока имени исполняемого файла вашего сервиса (apache2, php-fpm, java, ...). Остановите агент с помощью Ctrl-C; он запишет события в ./process-watcher.jsonl. --capture-argv=true записывает командные строки, которые могут содержать секреты (Argument capture). Предпочитаете файл? Отредактируйте process-watcher.yaml рядом с бинарным файлом (он находится автоматически) и запустите sudo ./process-watcher.

3. Наблюдайте за тем, что запускает сервис (второй терминал, тот же каталог; jq делает JSON читаемым):

sudo tail -f process-watcher.jsonl | jq -r '
  select(.event_type=="process.exec" and .lineage.role=="descendant")
  | "\(.timestamp[:19])Z  \(.root.image) > \(.process.image)  \(.process.argv // [] | join(" "))" | gsub("[[:cntrl:]]"; "?")'

Пример: служба nginx заставляют запустить оболочку и несколько программ (имитируемых с помощью подставной программы):

2026-10-17T19:15:16Z  nginx > dash  sh -c id; uname -s
2026-10-17T19:15:16Z  nginx > id  id
2026-10-17T19:15:16Z  nginx > uname  uname -s
2026-10-17T19:15:16Z  nginx > curl  curl --version
2026-10-17T19:15:16Z  nginx > sleep  sleep 1

Веб- или прикладной сервер, который запускает оболочки, инструменты загрузки или интерпретаторы (sh, curl, wget, nc, python, ...), — это классический след веб-шелла или удалённого выполнения кода. Отслеживаются все поколения процессов, в том числе после завершения родительского процесса. (jq лишь объединяет аргументы для отображения; в событии они сохраняются как массив. sh отображается как dash, поскольку именно эта программа фактически запускалась.)

Далее: запустите его как службу systemd · отправьте события в вашу SIEM или конвейер журналов с помощью --tcp-address, --udp-address или --webhook-url (Выходы) · автоматически завершайте подозрительные дочерние процессы (Правила завершения).

Требования

ТребованиеЗначение
Операционная системаLinux, amd64 или arm64
Ядро5.15 или новее с BTF (/sys/kernel/btf/vmlinux). Один лишь номер версии ничего не гарантирует: при запуске агент проверяет необходимые ему функции и поля структур ядра.
Привилегииroot, или CAP_BPF + CAP_PERFMON (+ CAP_SYS_PTRACE для /proc/<pid>/exe процессов других пользователей, CAP_KILL для функции завершения, CAP_SYS_RESOURCE до ядра 5.11). Блокировка ядра confidentiality препятствует работе.
Пространство имён PIDначальное пространство имён PID хоста (все PID — это PID хоста); запуск внутри контейнера отклоняется.

Если какое-либо требование не выполнено, агент останавливается с конкретным диагнозом и кодом выхода 3; он никогда не переключается на опрос /proc, который пропускал бы недолговечные процессы. sudo ./process-watcher doctor проверяет всё, загружает программы и запускает собственный пробный процесс. Протестированные ядра: docs/compatibility.md.

Установка

Проверка загрузки

# in the directory the archive was downloaded to, with $VERSION and $ARCH from step 1
curl -fsSLO https://github.com/Neo23x0/process-watcher/releases/download/$VERSION/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
gh attestation verify process-watcher_${VERSION}_linux_${ARCH}.tar.gz --repo Neo23x0/process-watcher   # build provenance
Скачать инструмент