
Orquestador autorizado de reconocimiento y triaje para el sector educativo (nmap/dirsearch/sqlmap/hydra + CVE-2024-4577, fuga de secretos/claves de API, XSS, wp2shell) con panel de control web
Orquestador autorizado de reconocimiento y triaje para ejercicios red/blue del sector educativo. Introduce los objetivos, ejecuta los escáneres, filtra el ruido y te entrega una cola de revisión clasificada en una interfaz web. Diseñado para desplegarse en tu máquina Linux (Kali / infra), controlado desde un navegador.
⚠️ Solo para uso autorizado. Apúntalo únicamente a sistemas que estés autorizado a probar. El bloqueo de alcance está desactivado por defecto — el operador es responsable de la autorización. Para un encargo real puedes reactivar una lista de permitidos de alcance bloqueada con
scope_enforce: trueenconfig.yaml(cada etapa vuelve a comprobar el alcance antes de actuar).
Kali / Debian / Ubuntu — pega el bloque completo:
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
Eso es todo. run.sh construye el venv, clona las herramientas incluidas + instala las dependencias,
ejecuta doctor, y luego lanza la consola a plena potencia en
http://127.0.0.1:8770 y abre tu navegador. (Ctrl-C lo detiene; vuelve a ejecutar ./run.sh
en cualquier 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
En Kali los escáneres pesados (nmap/sqlmap/hydra/dirsearch) ya son nativos — consulta Desplegar en Kali Linux para la receta completa.
Kali es la máquina prevista: nmap, sqlmap, hydra, dirsearch vienen en la
distribución, así que todo el pipeline (incluida la inyección + contraseñas débiles) se ejecuta de forma nativa.
# 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
Notas sobre Kali
dirsearch nativo se usa automáticamente para un barrido completo de
db/dicc.txt (cada directorio/archivo descubierto se lista en la consola bajo
🗂 網站路徑). Omite el paquete apt y setup clona dirsearch y lo ejecuta vía
Python en su lugar — de cualquier forma webdisco funciona.sqlmap/hydra/nmap nativos, --intensity full
ejecuta realmente las comprobaciones de inyección + contraseñas débiles (safe-checks no destructivos
en el resto).scope_enforce: true en config.yaml + lista tu alcance autorizado
en el archivo de objetivos / extra_allowed_cidrs.--host 127.0.0.1 y accede a ella mediante un túnel
SSH; no tiene autenticación propia.# /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 el venv en la primera ejecución, clona las herramientas incluidas, ejecuta doctor,
y luego sirve la consola a plena potencia — intensidad full, nmap -sC --script vuln, el barrido completo de dirsearch db/dicc.txt, todos los escáneres resueltos, bloqueo de alcance
desactivado — en http://127.0.0.1:8770 y abre tu navegador. Ctrl-C lo detiene.
python recon.py serve --host 127.0.0.1 --port 8770
Abre la URL, pega los objetivos (uno por línea: IP / host / URL / CIDR /
domain / host:port), elige una intensidad, pulsa 開始掃描. Observa cómo se rellena en vivo la cuadrícula de etapas de cada
objetivo, filtra hallazgos por severidad, expande la evidencia,
abre los registros de herramientas en bruto, marca falsos positivos y exporta el informe HTML.
python recon.py scan -t targets.txt --intensity full
# reports land in runs/<run-id>/report.{md,html,json}
Lanzadores: