
Orchestrateur de reconnaissance et de triage autorisé pour le secteur de l'éducation (nmap/dirsearch/sqlmap/hydra + CVE-2024-4577, fuite de secrets/clés API, XSS, wp2shell) avec un panneau de contrôle web
Orchestrateur de reconnaissance et de triage autorisé pour les exercices red/blue dans le secteur de l'éducation. Déposez des cibles, il lance les scanners, filtre le bruit et vous remet une file de revue classée dans une interface web. Conçu pour être déployé sur votre machine Linux (Kali / infra), piloté depuis un navigateur.
⚠️ Usage autorisé uniquement. Ne le pointez que vers des systèmes que vous êtes autorisé à tester. Le verrouillage de périmètre est désactivé par défaut — l'opérateur est responsable de l'autorisation. Pour un vrai engagement, vous pouvez réarmer une liste blanche de périmètre verrouillée avec
scope_enforce: truedansconfig.yaml(chaque étape revérifie alors le périmètre avant d'agir).
Kali / Debian / Ubuntu — collez le bloc entier :
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
C'est tout. run.sh construit le venv, clone les outils inclus + installe les dépendances,
lance doctor, puis démarre la console pleine puissance sur
http://127.0.0.1:8770 et ouvre votre navigateur. (Ctrl-C l'arrête ; relancez ./run.sh
à tout moment.)
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
Sur Kali, les scanners lourds (nmap/sqlmap/hydra/dirsearch) sont déjà natifs — voir Déploiement sur Kali Linux pour la recette complète.
Kali est la machine prévue : nmap, sqlmap, hydra, dirsearch sont fournis dans la
distribution, donc tout le pipeline (y compris l'injection + les mots de passe faibles) s'exécute nativement.
# 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
Notes Kali
dirsearch natif est utilisé automatiquement pour un balayage complet
de db/dicc.txt (chaque répertoire/fichier découvert est listé dans la console sous
🗂 網站路徑). Ignorez le paquet apt et setup clone dirsearch et l'exécute via
Python à la place — dans les deux cas webdisco fonctionne.sqlmap/hydra/nmap natifs, --intensity full
exécute réellement les vérifications d'injection + de mots de passe faibles (safe-checks
non destructifs ailleurs).scope_enforce: true dans config.yaml + listez votre périmètre autorisé
dans le fichier de cibles / extra_allowed_cidrs.--host 127.0.0.1 et accédez-y via un tunnel
SSH ; elle n'a pas d'authentification propre.# /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 crée le venv au premier lancement, clone les outils inclus, lance doctor,
puis sert la console à pleine puissance — intensité full, nmap -sC --script vuln, le balayage complet de dirsearch db/dicc.txt, chaque scanner résolu, verrouillage de périmètre
désactivé — sur http://127.0.0.1:8770 et ouvre votre navigateur. Ctrl-C l'arrête.
python recon.py serve --host 127.0.0.1 --port 8770
Ouvrez l'URL, collez les cibles (une par ligne : IP / host / URL / CIDR /
domain / host:port), choisissez une intensité, cliquez sur 開始掃描. Regardez la grille
d'étapes de chaque cible se remplir en direct, filtrez les résultats par sévérité, développez les preuves,
ouvrez les journaux bruts des outils, marquez les faux positifs et exportez le rapport HTML.
python recon.py scan -t targets.txt --intensity full
# reports land in runs/<run-id>/report.{md,html,json}
Lanceurs :