
Orchestratore autorizzato di ricognizione e triage per il settore educativo (nmap/dirsearch/sqlmap/hydra + CVE-2024-4577, leak di secret/API-key, XSS, wp2shell) con pannello di controllo web
Orchestratore autorizzato di recon e triage per esercitazioni red/blue nel settore education. Inserisci i target, esegue gli scanner, filtra il rumore e ti consegna una coda di revisione ordinata in una web UI. Progettato per essere distribuito sulla tua macchina Linux (Kali / infra), pilotato da browser.
⚠️ Solo uso autorizzato. Puntalo esclusivamente verso sistemi che sei autorizzato a testare. Lo scope-lock è disattivato di default — l'operatore è responsabile dell'autorizzazione. Per un engagement reale puoi riattivare una allowlist di scope bloccata con
scope_enforce: trueinconfig.yaml(ogni stage ricontrolla quindi lo scope prima di agire).
Kali / Debian / Ubuntu — incolla l'intero blocco:
sudo apt update && sudo apt install -y python3 python3-venv git nmap sqlmap hydra dirsearch
git clone https://github.com/ericchen913900/edu-recon.git
cd edu-recon
chmod +x run.sh
./run.sh
Tutto qui. run.sh crea il venv, clona i tool inclusi + installa le dipendenze,
esegue doctor, poi avvia la console full-power su
http://127.0.0.1:8770 e apre il browser. (Ctrl-C lo ferma; riesegui ./run.sh
in qualsiasi momento.)
Windows (Git Bash / WSL):
git clone https://github.com/ericchen913900/edu-recon.git
cd edu-recon
bash run.sh # first run auto-creates the venv + clones tools; nmap must be on PATH
targets ─▶ expand (CIDR ping-sweep, subdomain enum)
─▶ per target:
portscan nmap -sV -sC (+ --script vuln)
webdisco dirsearch (+ WordPress detect)
exposures .git / .env / backups / phpinfo / server-status / actuator …
+ phpMyAdmin/Adminer exposure + open directory listing
secrets JS/HTML key-leak scan (AWS/GCP/GitHub/Slack/Stripe/JWT/私鑰/…)
+ API-doc / GraphQL-introspection exposure ← api leak
phpcgi CVE-2024-4577 / 8926 via Night-have-dreams/php-cgi-Injector
react2shell CVE-2025-55182 React Server Components RCE
via hidden-investigations/react2shell-scanner (safe-check by default)
webcve built-in non-destructive safe-check probes for famous CVEs:
PHPUnit 2017-9841 · Apache-traversal 2021-41773 · Struts2 2017-5638
· Confluence 2022-26134 · Drupalgeddon2 2018-7600 · Next.js 2025-29927
moodle Moodle LMS fingerprint + version + outdated-branch +
web-exposed moodledata (the dominant .edu system)
xss dalfox + built-in reflected-XSS canary
sqli built-in SQL-error quick pass + sqlmap deep
cred hydra weak/default passwords (ssh/ftp/rdp/db/…)
wp xAL6/wp2shell WordPress SQLi→shell
─▶ triage: infer findings from services, drop soft-404 noise,
dedupe, rank by severity → review queue
─▶ report: JSON / Markdown / self-contained HTML
git clone https://github.com/ericchen913900/edu-recon.git && cd edu-recon
python3 -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
python recon.py setup # clones php-cgi-Injector + react2shell-scanner + wp2shell + dirsearch, installs deps
python recon.py doctor # shows which scanners resolved
Su Kali gli scanner pesanti (nmap/sqlmap/hydra/dirsearch) sono già nativi — vedi Deploy on Kali Linux per la ricetta completa.
Kali è la macchina prevista: nmap, sqlmap, hydra, dirsearch sono inclusi nella
distro, quindi l'intera pipeline (incl. injection + weak-password) gira nativamente.
# 1) system tools — most are already on Kali; this is the complete set
sudo apt update
sudo apt install -y python3 python3-venv git nmap sqlmap hydra dirsearch
# optional (better XSS + subdomain enum):
# sudo apt install -y dalfox subfinder # or: go install github.com/hahwul/dalfox/v2@latest ; \
# # go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# 2) get the code
git clone https://github.com/ericchen913900/edu-recon.git
cd edu-recon
# 3) isolated venv + Python deps + bundled script-tools
python3 -m venv .venv
source .venv/bin/activate
python recon.py setup # clones php-cgi-Injector / react2shell-scanner / wp2shell / dirsearch, pip-installs deps
# 4) sanity check — on Kali nmap/sqlmap/hydra/dirsearch should all be OK (native)
python recon.py doctor
# 5a) web console — bind to localhost, drive from a browser
python recon.py serve --host 127.0.0.1 --port 8770
# → http://127.0.0.1:8770 (paste targets → pick intensity → ARM & RUN)
# remote Kali? tunnel instead of exposing it:
# ssh -L 8770:127.0.0.1:8770 user@kali # then browse http://localhost:8770
# 5b) or headless
python recon.py scan -t targets.txt --intensity full
python recon.py repro <run-id> # runnable reproduction PoC per confirmed finding
python recon.py payout <run-id> # legal disclosure / bounty routing per finding
Note su Kali
dirsearch nativo viene usato automaticamente per una scansione completa
di db/dicc.txt (ogni dir/file scoperto viene elencato nella console sotto
🗂 網站路徑). Salta il pacchetto apt e setup clona dirsearch e lo esegue via
Python — in entrambi i casi webdisco funziona.sqlmap/hydra/nmap nativi, --intensity full
esegue effettivamente i controlli di injection + weak-password (safe-check non distruttivi
altrove).scope_enforce: true in config.yaml + elenca lo scope autorizzato
nel file dei target / extra_allowed_cidrs.--host 127.0.0.1 e raggiungila tramite un tunnel
SSH; non ha autenticazione propria.# /etc/systemd/system/edu-recon.service
[Service]
WorkingDirectory=/home/kali/edu-recon
ExecStart=/home/kali/edu-recon/.venv/bin/python recon.py serve --host 127.0.0.1 --port 8770
Restart=on-failure
User=kali
[Install]
WantedBy=multi-user.target
sudo systemctl enable --now edu-reconchmod +x run.sh && ./run.sh # 滿血:自動 venv/setup/doctor → 全火力 console → 開瀏覽器
# HOST=0.0.0.0 PORT=9000 ./run.sh # override bind/port
run.sh crea il venv al primo avvio, clona i tool inclusi, esegue doctor,
poi serve la console a full power — intensity full, nmap -sC --script vuln, la scansione completa di dirsearch db/dicc.txt, ogni scanner risolto, scope-lock
disattivato — su http://127.0.0.1:8770 e apre il browser. Ctrl-C lo ferma.
python recon.py serve --host 127.0.0.1 --port 8770
Apri l'URL, incolla i target (uno per riga: IP / host / URL / CIDR /
domain / host:port), scegli un'intensity, premi 開始掃描. Guarda la griglia degli stage di ogni
target riempirsi in tempo reale, filtra i finding per severità, espandi le evidenze,
apri i log grezzi dei tool, marca i falsi positivi ed esporta il report HTML.
python recon.py scan -t targets.txt --intensity full
# reports land in runs/<run-id>/report.{md,html,json}
Launcher:
| comando | cosa fa |
|---|---|
./run.sh | avvio full-power con un solo comando: venv/setup/doctor → console → apre il browser. HOST=… PORT=… ./run.sh per sovrascrivere. |
Sottocomandi di recon.py (prefissa con il python del venv, es. .venv/bin/python):