
منسّق استطلاع وفرز مخصص لقطاع التعليم (nmap/dirsearch/sqlmap/hydra + CVE-2024-4577، تسريب الأسرار/مفاتيح API، XSS، wp2shell) مع لوحة تحكم ويب
منسّق استطلاع وفرز مُصرَّح به لتمارين الفريق الأحمر/الأزرق في قطاع التعليم. ألقِ الأهداف داخله، فيشغّل الماسحات، ويُرشّح الضجيج، ويسلّمك قائمة مراجعة مرتّبة في واجهة ويب. مبنيّ ليُنشر على جهاز Linux لديك (Kali / بنية تحتية)، ويُدار من المتصفح.
⚠️ للاستخدام المُصرَّح به فقط. وجّهه فقط إلى الأنظمة المُصرَّح لك باختبارها. قفل النطاق معطّل افتراضيًا — المشغّل هو من يملك التصريح. في مهمة حقيقية يمكنك إعادة تفعيل قائمة نطاق مسموح مقفلة عبر
scope_enforce: trueفيconfig.yaml(حينها تعيد كل مرحلة التحقق من النطاق قبل أن تتصرف).
Kali / Debian / Ubuntu — الصق الكتلة كاملة:
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
هذا كل شيء. يبني run.sh البيئة الافتراضية، ويستنسخ الأدوات المضمّنة + يثبّت
الاعتماديات، ويشغّل doctor، ثم يُطلق وحدة التحكم كاملة القوة على
http://127.0.0.1:8770 ويفتح متصفحك. (Ctrl-C يوقفه؛ أعد تشغيل ./run.sh
في أي وقت.)
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
على Kali تكون الماسحات الثقيلة (nmap/sqlmap/hydra/dirsearch) أصلية بالفعل — راجع النشر على Kali Linux للوصفة الكاملة.
Kali هو الجهاز المقصود: nmap وsqlmap وhydra وdirsearch تأتي مع
التوزيعة، لذا يعمل خط الأنابيب كاملًا (بما في ذلك الحقن + كلمات المرور الضعيفة) أصليًا.
# 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
ملاحظات Kali
dirsearch الأصلي تلقائيًا لمسح كامل عبر
db/dicc.txt (كل مجلد/ملف مكتشف يظهر في وحدة التحكم تحت
🗂 網站路徑). تجاهل حزمة apt وسيستنسخ setup أداة dirsearch ويشغّلها عبر
Python بدلًا من ذلك — في الحالتين يعمل webdisco.sqlmap/hydra/nmap الأصلية، ينفّذ --intensity full
فعليًا فحوصات الحقن + كلمات المرور الضعيفة (فحوصات آمنة غير مدمّرة
في ما عدا ذلك).scope_enforce: true في config.yaml + أدرج نطاقك المُصرَّح به في ملف
الأهداف / extra_allowed_cidrs.--host 127.0.0.1 واوصل إليها عبر نفق SSH؛
فليس لديها مصادقة خاصة بها.chmod +x run.sh && ./run.sh # 滿血:自動 venv/setup/doctor → 全火力 console → 開瀏覽器
# HOST=0.0.0.0 PORT=9000 ./run.sh # override bind/port
ينشئ run.sh البيئة الافتراضية عند أول تشغيل، ويستنسخ الأدوات المضمّنة، ويشغّل doctor،
ثم يخدم وحدة التحكم بكامل القوة — كثافة full، وnmap -sC --script vuln، ومسح dirsearch الكامل عبر db/dicc.txt، وكل ماسح تم حلّه، وقفل النطاق
معطّل — على http://127.0.0.1:8770 ويفتح متصفحك. Ctrl-C يوقفه.
python recon.py serve --host 127.0.0.1 --port 8770
افتح الرابط، والصق الأهداف (واحدًا في كل سطر: IP / host / URL / CIDR /
domain / host:port)، واختر كثافة، واضغط 開始掃描. راقب شبكة مراحل
كل هدف وهي تمتلئ مباشرةً، ورشّح النتائج حسب الخطورة، ووسّع الأدلة،
وافتح سجلات الأدوات الخام، وحدّد الإيجابيات الكاذبة، وصدّر تقرير HTML.
python recon.py scan -t targets.txt --intensity full
# reports land in runs/<run-id>/report.{md,html,json}
المشغّلات:
| command | what it does |
|---|---|
./run.sh | one-command full-power launch: venv/setup/doctor → console → opens browser. HOST=… PORT=… ./run.sh to override. |
أوامر recon.py الفرعية (سبقها بـ python الخاص بالبيئة الافتراضية، مثل .venv/bin/python):
الأعلام الشائعة (لكل الأوامر الفرعية): --config FILE (تجاوزات yaml/json) · --intensity · --concurrency N · --workdir DIR.
أهداف المسح تقبل: IP · host · URL · CIDR · domain · host:port (واحدًا في كل سطر في ملف، أو مباشرةً / ملصقًا في وحدة التحكم).
واجهة الويب API (ما تقوده وحدة التحكم؛ مفيدة للبرمجة النصية):
أمثلة:
./run.sh # full-power console + browser
.venv/bin/python recon.py scan -t targets.txt --intensity full
.venv/bin/python recon.py repro run-20260907-185021 --out pocs/ # write repro_*.sh
.venv/bin/python recon.py payout run-20260907-185021 # legal cash-out routing
HOST=0.0.0.0 PORT=9000 ./run.sh # bind elsewhere (tunnel it, don't expose)
| level | what runs |
|---|---|
full | everything, injection + weak-password executed (default) |
recon | phpcgi + react2shell + webcve + XSS + exposures run; sqli/cred only list candidates |
passive | portscan + webdisco + exposures + secrets (benign GETs only) |
حرّر config.yaml (راجع التعليقات) أو مرّر --config. قوائم الكلمات موجودة في
wordlists/ (default-creds.txt، users.txt، passwords.txt، web-common.txt).
اضبط hydra_tasks منخفضًا لتجنّب قفل الحسابات؛ وارفع nmap_top_ports: 0 لمسح
كامل المنافذ.
recon.py CLI (serve / scan / setup / doctor / repro / payout)
edurecon/
config.py defaults + yaml/json loader + intensity gating
scope.py target parsing + scope allowlist (subdomain-aware)
engine.py expansion + concurrent per-target pipeline + cancel
stages.py every scan stage
webscan.py crawler + reflected-XSS + SQL-error heuristics
secrets.py key-leak regexes + API-doc/GraphQL probes
cveprobes.py built-in non-destructive famous-CVE safe-check probes
edusys.py education-sector system audit (Moodle)
parse.py nmap/dirsearch/sqlmap/hydra/phpcgi/react2shell parsers
triage.py service inference, soft-404 filter, dedupe, ranking
report.py JSON / Markdown / HTML export
store.py run state + JSON persistence
webui.py stdlib web control panel
third_party/ php-cgi-Injector, react2shell-scanner, wp2shell, dirsearch (via `setup`)
runs/ per-run artifacts + reports
# /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-recon| command | what it does |
|---|
recon.py setup | clone bundled tools (php-cgi-Injector / react2shell-scanner / wp2shell / dirsearch) + pip-install their deps |
recon.py doctor | show which scanners resolved (nmap / sqlmap / hydra / dirsearch / dalfox / subfinder / bundled tools) |
recon.py serve [--host H] [--port P] | launch the web console (default 127.0.0.1:8770) |
recon.py scan -t targets.txt [--intensity full|recon|passive] | headless scan of a target file |
recon.py scan http://host/ 10.0.0.0/24 … | headless scan of inline targets |
recon.py repro <run-id> [--finding <id>] [--out DIR] | print / write a runnable reproduction PoC per confirmed finding |
recon.py payout <run-id> | legal disclosure / bounty routing per confirmed finding |
| endpoint | purpose |
|---|
POST /api/runs {targets,intensity,concurrency,scope_enforce} | start a run → {id} |
GET /api/runs · GET /api/runs/{id} | list runs · full run (targets/stages/findings/webpaths) |
GET /api/runs/{id}/logs?since=N | incremental live log |
GET /api/runs/{id}/artifact?path=… | raw tool log / saved dump |
GET /api/runs/{id}/repro[?finding_id=…] | reproduction PoC script(s) |
POST /api/runs/{id}/finding {finding_id,reviewed,false_positive} | triage a finding |
POST /api/runs/{id}/dump {finding_id} · POST …/dumps/clear | capture a leak (file/.git-source/key) · clear captures |
POST /api/runs/{id}/report · POST …/cancel | export report · cancel run |