Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
php2shell-scanner — Scanner non destructif pour CVE-2026-109618 / CVE-2026-109619 (RCE du cœur de PHP). Reconnaissance de sous-domaines via crt.sh + subfinder, récupération robuste de bannières, détection basée sur la version. | Kitploit
Outils/GitHubGitHub/joasasantos/php2shell-scanner
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceScanners de VulnérabilitésScanners de Vulnérabilités WebCartographie RéseauAnalyse des VulnérabilitésCollecte d'InformationsSécurité Web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Tests d'Intrusion
Énumération de Sous-domaines
GitHubjoasasantos/php2shell-scanner

php2shell-scanner

Scanner non destructif pour CVE-2026-109618 / CVE-2026-109619 (RCE du cœur de PHP). Reconnaissance de sous-domaines via crt.sh + subfinder, récupération robuste de bannières, détection basée sur la version.

Voir le dépôt
692319il y a 1 jourPas encore vérifié

php2shell-scanner

Scanner non destructif (avec sonde optionnelle) pour CVE-2026-109618 (RCE via corruption OOM) et CVE-2026-109619 (RCE via état global obsolète) — bugs du cœur de PHP corrigés dans 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12.

✅ Vérifié par rapport aux avis officiels php-src (2026-10-21, Critique). Les identifiants CVE et le tableau des versions corrigées ci-dessous correspondent exactement à l'amont.

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

Versions affectées / corrigées

BrancheAffectéeCorrigée
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 — aucun correctif amontvérifier le rétroportage distro/OSV

Stratégies

ModeCe qu'il fait
LOCALphp -r pour obtenir la version exacte du runtime, la SAPI, memory_limit, post_max_size
REMOTEEmpreinte de version via les en-têtes X-Powered-By / Server et phpinfo() exposé
PRESENCEDétection de PHP sans version (PHPSESSID, références .php, redirections)
BANNERRécupération robuste de bannière par socket brut — HEAD/GET/OPTIONS + sonde malformée, http/https, divulgation via page d'erreur
RECONÉnumération de sous-domaines via crt.sh (Certificate Transparency) avec repli/fusion sur subfinder, puis scan en éventail des hôtes résolus
PROBE(optionnel) Requêtes multipart volumineuses pour observer l'instabilité des workers — peut provoquer un DoS

Installation

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)

Utilisation

# 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

Options

OptionSignification
--localAnalyse locale via le binaire php
--reconÉtend chaque domaine en sous-domaines (crt.sh + subfinder), puis analyse les hôtes qui résolvent
--recon-onlyÉnumère uniquement les sous-domaines, sans analyse
--bannerForce une récupération robuste de bannière par socket brut sur chaque cible
--phpinfo-pathsSonde les chemins phpinfo() exposés courants
--deep-versionTechniques de version supplémentaires : easter eggs PHP + fichiers de fuite de version (composer.json, .env, …)
--origin-scanAtteint l'origine PHP derrière Cloudflare/WAF — requête directe vers l'IP avec le véritable en-tête Host
--shodan-keyClé API Shodan pour le renseignement sur l'origine (ou variable d'env SHODAN_API_KEY) ; implique --origin-scan
--censys-id / --censys-secretIdentifiants API Censys (ou variables d'env CENSYS_API_ID / CENSYS_API_SECRET) ; impliquent --origin-scan
--probeSonde de charge multipart — risque de DoS, uniquement sur cibles autorisées
--probe-count NNombre de requêtes de sonde (par défaut 5)
--threads N / --timeout NConcurrence / délai d'expiration par requête
--insecureNe pas valider TLS
-o FILE / --csv FILEEnregistrer un rapport JSON / CSV

Enrichissement passif

Au-delà de la vérification de version, chaque cible est enrichie de signaux passifs (issus des réponses normales) qui affinent le verdict et réduisent les faux positifs :

  • SAPI / modèle de worker — les workers persistants (fpm, mod_php) réutilisent l'état des requêtes → exposés à CVE-2026-109619 ; un simple cgi bien moins.
  • CDN / WAF / proxy (Cloudflare, Akamai, Fastly, Sucuri…) — la bannière peut provenir de l'edge, pas de l'origine → confiance abaissée.
  • Build de distribution (ubuntu, +deb, .el8…) — un backport peut corriger sans changement de version → confiance abaissée, note « vérifier le changelog ».
  • phpinfo approfondi (lorsqu'exposé) — Server API, post_max_size / max_input_vars (surface OOM pour CVE-2026-109618), disable_functions.

Techniques de version supplémentaires (--deep-version)

Lorsqu'aucune version n'apparaît dans la bannière : easter eggs PHP (?=PHPE9568F34-... → GIF/credits si expose_php=On) et fichiers de fuite de version (composer.json, .env, … ; PHP_VERSION dans .env = exact, une contrainte "php": ">=8.2" ne fait que restreindre la branche).

Contournement origine / WAF (--origin-scan)

Les CDN masquent l'origine, donc la lecture d'un en-tête ne montre que l'edge. --origin-scan :

  1. résout l'apex, www, les préfixes non proxifiés (origin.*, cpanel.*, mail.*…) et les sous-domaines de reconnaissance ;
  2. écarte les IP des plages edge Cloudflare / Imperva / Sucuri (IPv4 + IPv6) ;
  3. interroge chaque IP d'origine restante directement avec le véritable Host + SNI, en lisant Server / X-Powered-By / les pages d'erreur directement depuis l'origine.

Une requête directe vers une IP déjà exposée. Cibles autorisées uniquement.

Le renseignement authentifié ajoute des IP que le DNS n'expose jamais, ainsi qu'une version PHP issue de la bannière indexée (renseignement signalé — peut être obsolète) :

  • --shodan-key / env SHODAN_API_KEY — hôtes via hostname:<domain>.
  • --censys-id + --censys-secret / env CENSYS_API_ID + CENSYS_API_SECRET — hôtes via certificat TLS / nom DNS.
  • Tout identifiant active automatiquement --origin-scan.
export SHODAN_API_KEY=xxx CENSYS_API_ID=xxx CENSYS_API_SECRET=xxx
python3 php2shell_scan.py hackersec.com --origin-scan

Niveau de confiance

ConfianceSignification
HIGHversion issue d'un phpinfo() exposé ou d'une page d'erreur PHP
MEDIUMversion issue d'une bannière HTTP (expose_php=On)
LOWdéduction uniquement, ou derrière un proxy, ou un backport de distribution peut s'appliquer

La sortie consolidée regroupe les cibles par gravité, trie les VULNERABLE par confiance (HIGH en premier) et signale les résultats LOW/MEDIUM à revérifier avant de les rapporter.

Logique de détection

Comparaison de version par branche par rapport à la table FIXED :

  • < fixed sur une branche prise en charge → VULNERABLE
  • >= fixed → PATCHED
  • < 8.2 (EOL) → VULNERABLE_EOL (aucun correctif amont ; vérifier le backport de la distribution/OSV)
  • branche au-dessus de la plage de l'avis ou aucune version → UNKNOWN / SUSPECTED

Autorisation

À exécuter uniquement contre des actifs que vous possédez ou que vous êtes explicitement autorisé à tester. Le mode --probe peut perturber des workers fragiles. Vous êtes responsable de votre usage.

Licence

MIT

Télécharger l’outil