Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
php2shell-scanner — Scanner non distruttivo per CVE-2026-109618 / CVE-2026-109619 (RCE del core PHP). Ricognizione dei sottodomini tramite crt.sh + subfinder, banner grabbing robusto, rilevamento basato sulla versione. | Kitploit
Strumenti/GitHubGitHub/joasasantos/php2shell-scanner
OSINT (Open Source Intelligence)RicognizioneScanner di VulnerabilitàScanner di Vulnerabilità WebMappatura della ReteAnalisi delle VulnerabilitàRaccolta InformazioniSicurezza Web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Penetration Testing
Enumerazione Sottodomini
GitHubjoasasantos/php2shell-scanner

php2shell-scanner

Scanner non distruttivo per CVE-2026-109618 / CVE-2026-109619 (RCE del core PHP). Ricognizione dei sottodomini tramite crt.sh + subfinder, banner grabbing robusto, rilevamento basato sulla versione.

Vedi Repository
6923191 giorno faNon ancora revisionato

php2shell-scanner

Scanner non distruttivo (con probe opt-in) per CVE-2026-109618 (RCE tramite corruzione OOM) e CVE-2026-109619 (RCE tramite stato globale obsoleto) — bug del core PHP corretti in 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12.

✅ Verificato rispetto agli advisory ufficiali php-src (2026-10-21, Critico). Gli ID CVE e la tabella delle versioni corrette di seguito corrispondono esattamente a quelli upstream.

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

Versioni interessate / corrette

BranchAffectedFixed
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 — nessuna patch upstreamverifica backport distro/OSV

Strategie

ModalitàCosa fa
LOCALphp -r per la versione esatta del runtime, SAPI, memory_limit, post_max_size
REMOTEFingerprint della versione tramite header X-Powered-By / Server e phpinfo() esposto
PRESENCERilevamento PHP senza versione (PHPSESSID, riferimenti .php, redirect)
BANNERAcquisizione robusta del banner tramite raw-socket — HEAD/GET/OPTIONS + probe malformato, http/https, divulgazione della pagina di errore
RECONEnumerazione dei sottodomini tramite crt.sh (Certificate Transparency) con fallback/merge su subfinder, poi scansione fan-out risolvendo gli host
PROBE(opt-in) Richieste multipart di grandi dimensioni per osservare l'instabilità dei worker — può causare DoS

Installazione

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)

Utilizzo

# 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

Flag

FlagSignificato
--localScansione locale tramite il binario php
--reconEspande ogni dominio in sottodomini (crt.sh + subfinder), poi scansiona gli host che risolvono
--recon-onlyEnumera solo i sottodomini, senza scansione
--bannerForza un banner grab robusto via raw-socket su ogni target
--phpinfo-pathsVerifica i percorsi phpinfo() esposti più comuni
--deep-versionTecniche di versione aggiuntive: easter egg di PHP + file che rivelano la versione (composer.json, .env, …)
--origin-scanRaggiunge l'origin PHP dietro Cloudflare/WAF — richiesta diretta all'IP con il vero header Host
--shodan-keyChiave API Shodan per l'intel sull'origin (o env SHODAN_API_KEY); implica --origin-scan
--censys-id / --censys-secretCredenziali API Censys (o env CENSYS_API_ID / CENSYS_API_SECRET); implicano --origin-scan
--probeSonda di carico multipart — rischio DoS, solo su target autorizzati
--probe-count NNumero di richieste di sonda (default 5)
--threads N / --timeout NConcorrenza / timeout per richiesta
--insecureNon validare TLS
-o FILE / --csv FILESalva report JSON / CSV

Arricchimento passivo

Oltre al controllo della versione, ogni target viene arricchito con segnali passivi (dalle risposte normali) che affinano il verdetto e riducono i falsi positivi:

  • SAPI / modello worker — i worker persistenti (fpm, mod_php) riutilizzano lo stato della richiesta → esposti a CVE-2026-109619; cgi semplice molto meno.
  • CDN / WAF / proxy (Cloudflare, Akamai, Fastly, Sucuri…) — il banner potrebbe essere l'edge, non l'origin → confidenza ridotta.
  • Build della distro (ubuntu, +deb, .el8…) — il backport potrebbe correggere senza un incremento di versione → confidenza ridotta, nota "verifica il changelog".
  • phpinfo approfondito (quando esposto) — Server API, post_max_size / max_input_vars (superficie OOM per CVE-2026-109618), disable_functions.

Ulteriori tecniche di versione (--deep-version)

Quando manca la versione dal banner: easter egg di PHP (?=PHPE9568F34-... → GIF/credits con expose_php=On) e file che rivelano la versione (composer.json, .env, …; PHP_VERSION in .env = esatta, un vincolo "php": ">=8.2" restringe solo il branch).

Origin / bypass WAF (--origin-scan)

Le CDN nascondono l'origin, quindi una lettura degli header mostra solo l'edge. --origin-scan:

  1. risolve l'apex, www, prefissi non proxati (origin.*, cpanel.*, mail.*…) e i sottodomini del recon;
  2. scarta gli IP nei range edge di Cloudflare / Imperva / Sucuri (IPv4 + IPv6);
  3. richiede ogni IP origin rimanente direttamente con il vero Host + SNI, leggendo Server / X-Powered-By / pagine di errore direttamente dall'origin.

Una richiesta diretta a un IP già esposto. Solo su target autorizzati.

L'intel con credenziali aggiunge IP che il DNS non espone mai, più una versione PHP dal banner indicizzato (intel segnalato — potrebbe essere obsoleto):

  • --shodan-key / env SHODAN_API_KEY — host tramite hostname:<domain>.
  • --censys-id + --censys-secret / env CENSYS_API_ID + CENSYS_API_SECRET — host tramite certificato TLS / nome DNS.
  • Qualsiasi credenziale abilita automaticamente --origin-scan.
export SHODAN_API_KEY=xxx CENSYS_API_ID=xxx CENSYS_API_SECRET=xxx
python3 php2shell_scan.py hackersec.com --origin-scan

Grado di affidabilità

AffidabilitàSignificato
HIGHversione da phpinfo() esposto o da una pagina di errore PHP
MEDIUMversione da un banner HTTP (expose_php=On)
LOWsolo inferenza, oppure dietro un proxy, oppure potrebbe applicarsi un backport della distro

L'output consolidato raggruppa i target per gravità, ordina i VULNERABLE per affidabilità (HIGH per primo) e segnala i risultati LOW/MEDIUM da ricontrollare prima di segnalarli.

Logica di rilevamento

Confronto delle versioni per branch rispetto alla tabella FIXED:

  • < fixed su un branch supportato → VULNERABLE
  • >= fixed → PATCHED
  • < 8.2 (EOL) → VULNERABLE_EOL (nessuna patch upstream; verificare il backport della distro/OSV)
  • branch superiore all'intervallo dell'advisory o nessuna versione → UNKNOWN / SUSPECTED

Autorizzazione

Eseguire solo contro asset di tua proprietà o per i quali sei esplicitamente autorizzato a eseguire test. La modalità --probe può compromettere worker fragili. Sei responsabile del tuo utilizzo.

Licenza

MIT

Scarica lo strumento