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

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

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

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

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

Категории

Все категории
Loading categories
php2shell-scanner — Неразрушающий сканер для CVE-2026-109618 / CVE-2026-109619 (RCE в ядре PHP). Разведка поддоменов через crt.sh + subfinder, надёжный захват баннеров, обнаружение на основе версии. | Kitploit
Инструменты/GitHubGitHub/joasasantos/php2shell-scanner
OSINT (Разведка открытых источников)РазведкаСканеры уязвимостейСканеры веб-уязвимостейКартирование сетиАнализ уязвимостейСбор информацииВеб-безопасностьТестирование на Проникновение

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Перечисление Поддоменов
GitHubjoasasantos/php2shell-scanner

php2shell-scanner

Неразрушающий сканер для CVE-2026-109618 / CVE-2026-109619 (RCE в ядре PHP). Разведка поддоменов через crt.sh + subfinder, надёжный захват баннеров, обнаружение на основе версии.

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

php2shell-scanner

Неразрушающий сканер (с опциональной проверкой probe) для CVE-2026-109618 (RCE через повреждение OOM) и CVE-2026-109619 (RCE через устаревшее глобальное состояние) — ошибки ядра PHP, исправленные в 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12.

✅ Проверено по официальным рекомендациям php-src (2026-10-21, критический уровень). Идентификаторы CVE и таблица исправленных версий ниже точно соответствуют upstream.

  • CVE-2026-109618 — GHSA-w8hw-w9fx-j79w
  • CVE-2026-109619 — GHSA-6wmf-4rv5-p3rp

Уязвимые / исправленные версии

ВеткаУязвимыеИсправленные
8.2< 8.2.358.2.35
8.3< 8.3.368.3.36
8.4< 8.4.278.4.27
8.5< 8.5.128.5.12
< 8.2EOL — нет upstream-патчапроверьте backport дистрибутива/OSV

Стратегии

РежимЧто делает
LOCALphp -r для точной версии среды выполнения, SAPI, memory_limit, post_max_size
REMOTEОпределение версии через заголовки X-Powered-By / Server и открытый phpinfo()
PRESENCEОбнаружение PHP без определения версии (PHPSESSID, ссылки на .php, редиректы)
BANNERНадёжный захват баннера через raw-socket — HEAD/GET/OPTIONS + некорректный запрос, http/https, раскрытие информации на странице ошибки
RECONПеречисление поддоменов через crt.sh (Certificate Transparency) с резервным/совмещённым использованием subfinder, затем веерное сканирование с разрешением хостов
PROBE(опционально) Крупные multipart-запросы для наблюдения за нестабильностью воркеров — может вызвать DoS

Установка

git clone https://github.com/JoasASantos/php2shell-scanner.git
cd php2shell-scanner
# stdlib only — no pip deps.
# Optional recon fallback: ProjectDiscovery subfinder
#   brew install subfinder   (or: go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest)

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

# Local runtime check
python3 php2shell_scan.py --local

# Single remote target, look for exposed phpinfo()
python3 php2shell_scan.py https://example.com --phpinfo-paths

# Subdomain recon (crt.sh + subfinder) then scan, 10 threads, JSON out
python3 php2shell_scan.py example.com --recon --threads 10 -o out.json

# Recon only, no scanning
python3 php2shell_scan.py example.com --recon-only

# Target list + forced robust banner grab
python3 php2shell_scan.py -f targets.txt --banner

# OPT-IN load probe (authorized use only — DoS risk)
python3 php2shell_scan.py https://example.com --probe --probe-count 5

Флаги

ФлагЗначение
--localЛокальное сканирование через бинарник php
--reconРазворачивание каждого домена в поддомены (crt.sh + subfinder), затем сканирование разрешающихся хостов
--recon-onlyТолько перечисление поддоменов, без сканирования
--bannerПринудительный надёжный захват баннера через сырой сокет на каждой цели
--phpinfo-pathsПроверка типовых путей с открытым phpinfo()
--deep-versionДополнительные методы определения версии: пасхалки PHP + файлы с утечкой версии (composer.json, .env, …)
--origin-scanДостижение origin-сервера PHP за Cloudflare/WAF — прямой запрос на IP с реальным заголовком Host
--shodan-keyAPI-ключ Shodan для разведки origin (или переменная окружения SHODAN_API_KEY); подразумевает --origin-scan
--censys-id / --censys-secretУчётные данные API Censys (или переменные окружения CENSYS_API_ID / CENSYS_API_SECRET); подразумевают --origin-scan
--probeМногозапросная нагрузочная проверка — риск DoS, только с разрешения
--probe-count NКоличество запросов проверки (по умолчанию 5)
--threads N / --timeout NПараллелизм / таймаут на запрос
--insecureНе проверять TLS
-o FILE / --csv FILEСохранить отчёт в JSON / CSV

Пассивное обогащение

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

  • SAPI / модель воркеров — постоянные воркеры (fpm, mod_php) переиспользуют состояние запроса → уязвимы к CVE-2026-109619; обычный cgi — гораздо меньше.
  • CDN / WAF / прокси (Cloudflare, Akamai, Fastly, Sucuri…) — баннер может принадлежать edge-серверу, а не origin → уверенность снижается.
  • Сборка дистрибутива (ubuntu, +deb, .el8…) — бэкпорт может исправить уязвимость без изменения версии → уверенность снижается, примечание «проверьте changelog».
  • Глубокий phpinfo (если открыт) — Server API, post_max_size / max_input_vars (поверхность OOM для CVE-2026-109618), disable_functions.

Дополнительные методы определения версии (--deep-version)

Когда версия в баннере отсутствует: пасхалки PHP (?=PHPE9568F34-... → GIF/credits при expose_php=On) и файлы с утечкой версии (composer.json, .env, …; .env PHP_VERSION = точная версия, ограничение "php": ">=8.2" лишь сужает ветку).

Обход origin / WAF (--origin-scan)

CDN скрывают origin, поэтому чтение заголовков показывает только edge. --origin-scan:

  1. разрешает apex, www, непроксируемые префиксы (origin.*, cpanel.*, mail.*…) и поддомены из разведки;
  2. отбрасывает IP из диапазонов edge Cloudflare / Imperva / Sucuri (IPv4 + IPv6);
  3. запрашивает каждый оставшийся origin-IP напрямую с реальным Host + SNI, читая Server / X-Powered-By / страницы ошибок прямо с origin.

Прямой запрос к уже раскрытому IP. Только авторизованные цели.

Разведка с учётными данными добавляет IP, которые DNS никогда не раскрывает, плюс версию PHP из проиндексированного баннера (помечается как разведданные — могут быть устаревшими):

  • --shodan-key / env SHODAN_API_KEY — хосты по hostname:<domain>.
  • --censys-id + --censys-secret / env CENSYS_API_ID + CENSYS_API_SECRET — хосты по TLS-сертификату / DNS-имени.
  • Любые учётные данные автоматически включают --origin-scan.
export SHODAN_API_KEY=xxx CENSYS_API_ID=xxx CENSYS_API_SECRET=xxx
python3 php2shell_scan.py hackersec.com --origin-scan

Уровень достоверности

ДостоверностьЗначение
HIGHверсия получена из открытого phpinfo() или страницы ошибки PHP
MEDIUMверсия получена из HTTP-баннера (expose_php=On)
LOWтолько предположение, либо за прокси, либо возможен бэкпорт дистрибутива

Консолидированный вывод группирует цели по уровню серьёзности, сортирует VULNERABLE по достоверности (сначала HIGH) и помечает результаты LOW/MEDIUM для повторной проверки перед отчётом.

Логика обнаружения

Сравнение версий по каждой ветке с таблицей FIXED:

  • < fixed на поддерживаемой ветке → VULNERABLE
  • >= fixed → PATCHED
  • < 8.2 (EOL) → VULNERABLE_EOL (нет исправления от upstream; проверьте бэкпорт дистрибутива/OSV)
  • ветка выше диапазона рекомендаций или версия отсутствует → UNKNOWN / SUSPECTED

Авторизация

Запускайте только против активов, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Режим --probe может нарушить работу нестабильных воркеров. Вы несёте ответственность за своё использование.

Лицензия

MIT

Скачать инструмент