scp2801/ShadowRecon-toolkit

GitHub: scp2801/ShadowRecon-toolkit

一款基于 Python 的模块化 OSINT 侦察工具包,集成十项核心侦察模块,帮助安全人员快速完成目标信息收集与攻击面映射。

Stars: 0 | Forks: 0

# 🔍 ShadowRecon

Version Python Platform License Use

面向道德黑客、漏洞赏金猎人与安全研究人员的专业级 OSINT 侦察工具包

``` ╔═══════════════════════════════════════════════════════════════════╗ ║ ██████╗ ██╗ ██╗ █████╗ ██████╗ ██████╗ ██╗ ██╗ ║ ║ ██╔════╝██║ ██║██╔══██╗██╔══██╗██╔═══██╗██║ ██║ ║ ║ ╚█████╗ ███████║███████║██║ ██║██║ ██║██║ █╗ ██║ ║ ║ ╚═══██╗██╔══██║██╔══██║██║ ██║██║ ██║██║███╗██║ ║ ║ ██████╔╝██║ ██║██║ ██║██████╔╝╚██████╔╝╚███╔███╔╝ ║ ║ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚══╝╚══╝ ║ ║ ██████╗ ███████╗ ██████╗ ██████╗ ███╗ ██╗ ║ ║ ██╔══██╗██╔════╝██╔════╝██╔═══██╗████╗ ██║ ║ ║ ██████╔╝█████╗ ██║ ██║ ██║██╔██╗ ██║ ║ ║ ██╔══██╗██╔══╝ ██║ ██║ ██║██║╚██╗██║ ║ ║ ██║ ██║███████╗╚██████╗╚██████╔╝██║ ╚████║ ║ ║ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝╚═╝ ╚═══╝ ║ ╠═══════════════════════════════════════════════════════════════════╣ ║ ┌─ OSINT Reconnaissance Toolkit v1.0.0 ║ ║ ├─ Platform: Linux / Kali Linux / Ubuntu / Android Termux ║ ║ ├─ Purpose : Ethical Security Research & Bug Bounty ║ ║ └─ ⚠ For AUTHORIZED USE and EDUCATION ONLY ║ ╚═══════════════════════════════════════════════════════════════════╝ ``` ## 📋 目录 - [概述](#-overview) - [功能特性](#-features) - [目录结构](#-folder-structure) - [安装说明](#-installation) - [Linux / Kali / Ubuntu / Debian](#linux--kali--ubuntu--debian) - [Android Termux](#android-termux) - [手动安装](#manual-installation) - [使用说明](#-usage) - [快速上手](#quick-start) - [模块示例](#module-examples) - [命令参考](#command-reference) - [输出示例](#-sample-output) - [导出格式](#-export-formats) - [配置说明](#-configuration) - [常见问题与排查](#-troubleshooting) - [免责声明](#-disclaimer) - [贡献指南](#-contributing) - [许可证](#-license) - [未来改进](#-future-improvements) ## 🌐 概述 **ShadowRecon** 是一个使用 Python 构建的模块化、专业级 OSINT(开源情报)侦察工具包。它专为道德黑客、漏洞赏金猎人、渗透测试人员和安全专业学生而设计,将 10 种核心侦察技术整合到一个快速且拥有精美排版的 CLI 工具中。 原生运行于 **Linux、Kali Linux、Ubuntu、Debian** 和 **Android Termux** —— 这使其成为少数提供一流移动端支持的侦察工具之一。 ### 适用人群? | 受众 | 应用场景 | |----------|----------| | 🎓 安全专业学生 | 动手学习侦察方法论 | | 🐛 漏洞赏金猎人 | 初始目标分析与攻击面映射 | | 🔐 渗透测试人员 | 授权前的 OSINT 与指纹识别 | | 🔬 OSINT 研究员 | 被动信息收集 | | 📱 移动端黑客 | 在 Android Termux 上体验完整功能 | ## ✨ 功能特性 ### 10 大内置侦察模块 | # | 模块 | 描述 | |---|--------|-------------| | 1 | `--whois` | **Whois 查询** — 注册商、创建/过期日期、注册人、域名服务器 | | 2 | `--dns` | **DNS 记录** — A、AAAA、MX、NS、TXT、CNAME、SOA + 区域传送测试 | | 3 | `--subdomains` | **子域名发现** — DNS 暴力破解 + crt.sh 证书透明度查询 | | 4 | `--geo` | **IP 地理位置** — 国家、城市、ISP、ASN、代理/VPN 检测 | | 5 | `--headers` | **HTTP 头部** — 完整响应头分析 + 有价值的响应头提取 | | 6 | `--ports` | **端口扫描** — 带有 Banner 抓取的多线程 TCP 扫描器 | | 7 | `--rdns` | **反向 DNS** — PTR 记录 + 正向确认反向 DNS 检查 | | 8 | `--tech` | **技术栈检测** — CMS、框架、WAF、CDN、语言指纹识别 | | 9 | `--robots` | **Robots.txt 检查器** — 禁止访问的路径、Sitemap、security.txt | | 10 | `--secheaders` | **安全头部审计** — OWASP 安全头部评分(A+ 到 F) | ### 核心能力 - ⚡ **多线程** — 端口扫描和子域名枚举并行运行 - 🎨 **赛博朋克风 CLI** — 完整的 ANSI 彩色输出、精美横幅与进度条 - 📦 **模块化架构** — 每个模块相互独立且可扩展 - 💾 **导出** — 生成 JSON 和 TXT 报告 - 📝 **日志记录** — 基于文件的审计日志,支持详细/调试模式 - 🌐 **crt.sh 集成** — 通过证书日志被动发现子域名 - 🔒 **安全评分** — 自动进行 A+ 到 F 的头部审计评分 - 📱 **Termux 原生** — 已测试并针对 Android 进行优化 - 🛡️ **错误处理** — 提供信息丰富提示的优雅降级与错误处理 ## 📁 目录结构 ``` shadowrecon/ │ ├── main.py # Entry point — argument parsing, module dispatch │ ├── modules/ # Reconnaissance modules (plug-and-play) │ ├── __init__.py │ ├── whois_lookup.py # WHOIS domain/IP lookup │ ├── dns_lookup.py # DNS records enumeration │ ├── subdomain_finder.py # Subdomain brute-force + crt.sh │ ├── ip_geolocation.py # IP geolocation (ip-api.com + ipinfo.io) │ ├── http_headers.py # HTTP response headers analysis │ ├── port_scanner.py # Multi-threaded TCP port scanner │ ├── reverse_dns.py # Reverse DNS (PTR) + FCrDNS check │ ├── tech_detection.py # Technology fingerprinting │ ├── robots_checker.py # robots.txt + sitemap + security.txt │ └── security_headers.py # OWASP security headers audit │ ├── utils/ # Shared utilities │ ├── __init__.py │ ├── banner.py # ASCII banner, colors, output formatting │ ├── logger.py # Logging setup (file + verbose console) │ ├── helpers.py # Validation, port parsing, URL building │ └── exporter.py # JSON and TXT export │ ├── config/ │ └── config.ini # Tool configuration (timeouts, threads, APIs) │ ├── output/ # Generated reports (JSON/TXT) ├── logs/ # Audit logs ├── assets/ # Icons, assets ├── screenshots/ # Demo screenshots │ ├── requirements.txt # Python dependencies ├── install.sh # One-command installer (Linux + Termux) ├── README.md # This file ├── LICENSE # MIT License └── .gitignore # Git exclusions ``` ## ⚙️ 安装说明 ### Linux / Kali / Ubuntu / Debian **一键安装:** ``` git clone https://github.com/scp2801/ShadowRecon-toolkit.git cd shadowrecon chmod +x install.sh ./install.sh ``` **手动安装:** ``` git clone https://github.com/scp2801/ShadowRecon-toolkit.git cd shadowrecon pip3 install -r requirements.txt python3 main.py --help ``` ### Android Termux ``` # 更新 Termux 包 pkg update && pkg upgrade -y # 安装依赖 pkg install python git curl -y # 克隆工具 git clone https://github.com/scp2801/ShadowRecon-toolkit.git cd shadowrecon # 安装 Python 包 pip install -r requirements.txt --break-system-packages # 运行 python main.py --help ``` ### 手动安装(不使用 install.sh) ``` # 克隆仓库 git clone https://github.com/scp2801/ShadowRecon-toolkit.git cd shadowrecon # 创建虚拟环境(推荐在 Linux 上) python3 -m venv venv source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 创建所需目录 mkdir -p output logs # 测试安装 python3 main.py --version ``` ## 🚀 使用说明 ### 快速上手 ``` # 完整扫描 — 全部 10 个模块 python3 main.py -t example.com --all # 完整扫描 + 导出到文件 python3 main.py -t example.com --all --output results --format both # 快速信息(whois + dns + geo) python3 main.py -t example.com --whois --dns --geo ``` ### 模块示例 ``` # ── WHOIS Lookup ────────────────────────────────────────────────── python3 main.py -t example.com --whois # ── DNS Enumeration ─────────────────────────────────────────────── python3 main.py -t example.com --dns # ── Subdomain Finder(使用自定义 wordlist)─────────────────────── python3 main.py -t example.com --subdomains python3 main.py -t example.com --subdomains --wordlist /path/to/wordlist.txt python3 main.py -t example.com --subdomains --sub-threads 100 # ── IP Geolocation ──────────────────────────────────────────────── python3 main.py -t example.com --geo python3 main.py -t 8.8.8.8 --geo # ── HTTP Headers ────────────────────────────────────────────────── python3 main.py -t example.com --headers # ── Port Scanner ────────────────────────────────────────────────── python3 main.py -t example.com --ports python3 main.py -t example.com --ports --port-range 1-65535 python3 main.py -t example.com --ports --port-range 80,443,8080,8443 python3 main.py -t example.com --ports --threads 200 --timeout 0.5 # ── Reverse DNS ─────────────────────────────────────────────────── python3 main.py -t 1.1.1.1 --rdns # ── Technology Detection ────────────────────────────────────────── python3 main.py -t example.com --tech # ── Robots.txt ─────────────────────────────────────────────────── python3 main.py -t example.com --robots # ── Security Headers Audit ──────────────────────────────────────── python3 main.py -t example.com --secheaders ``` ### 命令参考 ``` usage: shadowrecon [-h] [-t TARGET] [--all] [--whois] [--dns] [--subdomains] [--geo] [--headers] [--ports] [--rdns] [--tech] [--robots] [--secheaders] [--port-range RANGE] [--threads N] [--timeout T] [--wordlist FILE] [--sub-threads N] [--output FILENAME] [--format FORMAT] [--no-color] [--verbose] [--quiet] [--version] [--log FILE] Scan Modules: --all Run all 10 reconnaissance modules --whois Whois domain/IP lookup --dns DNS records lookup (A, MX, NS, TXT, CNAME, SOA) --subdomains Subdomain enumeration (brute-force + crt.sh) --geo IP geolocation lookup --headers HTTP response headers analysis --ports Port scanner (multi-threaded) --rdns Reverse DNS lookup --tech Technology stack detection --robots Robots.txt & sitemap checker --secheaders Security headers audit (OWASP grading) Port Scanner Options: --port-range RANGE Port range: 1-1024, 1-65535, or 80,443,8080 --threads N Scan threads (default: 100) --timeout T Socket timeout in seconds (default: 1.0) Subdomain Options: --wordlist FILE Custom wordlist file for brute-forcing --sub-threads N Subdomain threads (default: 50) Output Options: --output FILENAME Save results to output/.[json|txt] --format FORMAT Export format: json, txt, or both (default: both) --no-color Disable colored output (for piping) Misc: --verbose / -v Verbose/debug output --quiet / -q Suppress banner and info --log FILE Custom log file path --version Show version info ``` ## 📊 输出示例 ``` ══════════════════════════════════════════════════════════════════════ [»] Target : example.com [»] Start Time : 2025-06-01 14:32:01 [»] Version : ShadowRecon v1.0.0 [»] Modules : 10 selected [»] Threads : 100 (port scan) / 50 (subdomains) ┌─[ Whois Lookup ] │──────────────────────────────────────────────────────────────────── │ Domain Name example.com │ Registrar ICANN │ Created 1995-08-14 04:00:00 UTC │ Expires 2024-08-13 04:00:00 UTC │ Name Servers a.iana-servers.net, b.iana-servers.net │ DNSSEC signedDelegation ┌─[ DNS Records ] │──────────────────────────────────────────────────────────────────── │ A 93.184.216.34 │ AAAA 2606:2800:220:1:248:1893:25c8:1946 │ MX 0 . │ NS a.iana-servers.net │ b.iana-servers.net │ TXT v=spf1 -all │ SOA MNAME=ns.icann.org RNAME=noc.dns.icann.org Serial=2022091302 ┌─[ IP Geolocation ] │──────────────────────────────────────────────────────────────────── │ IP Address 93.184.216.34 │ Country United States (US) │ Region Massachusetts │ City Norwell │ ISP Edgecast Inc. │ Organization AS15133 Edgecast Networks │ Proxy/VPN False │ Hosting/DC True ┌─[ Security Headers Audit ] │──────────────────────────────────────────────────────────────────── │ ✓ Strict-Transport-Security max-age=31536000 │ ✗ Content-Security-Policy MISSING │ ✓ X-Content-Type-Options nosniff │ ✓ X-Frame-Options DENY │ ✗ Referrer-Policy MISSING │ ✗ Permissions-Policy MISSING │ │ Security Grade: C (57/100) ┌─[ Scan Summary ] │──────────────────────────────────────────────────────────────────── [✓] Completed : 10/10 modules [»] Total Time : 18.4s [✓] JSON report saved: output/results.json [✓] TXT report saved: output/results.txt ``` ## 💾 导出格式 ### JSON 导出 (`--format json`) ``` { "meta": { "tool": "ShadowRecon", "version": "1.0.0", "target": "example.com", "timestamp": "2025-06-01 14:32:01" }, "results": { "Whois Lookup": { "status": "success", "elapsed": 1.23, "data": { "Domain Name": "example.com", "Registrar": "ICANN", "Created": "1995-08-14 04:00:00 UTC" } } } } ``` ### TXT 导出 (`--format txt`) ``` ====================================================================== SHADOWRECON — OSINT Reconnaissance Report ====================================================================== Tool : ShadowRecon v1.0.0 Target : example.com Timestamp : 2025-06-01 14:32:01 ====================================================================== ────────────────────────────────────────────────────────────────────── MODULE: WHOIS LOOKUP Status : success Elapsed: 1.23s ────────────────────────────────────────────────────────────────────── Domain Name: example.com Registrar: ICANN Created: 1995-08-14 04:00:00 UTC ``` ## ⚙️ 配置说明 编辑 `config/config.ini` 以自定义默认设置: ``` [network] http_timeout = 10 # HTTP request timeout dns_timeout = 5 # DNS query timeout port_timeout = 1.0 # Port scan socket timeout default_port_range = 1-1024 [threading] port_threads = 100 subdomain_threads = 50 [output] default_format = both # json, txt, or both ``` ## 🔧 常见问题与排查 ### `ModuleNotFoundError: No module named 'dns'` ``` pip3 install dnspython # Termux: pip install dnspython --break-system-packages ``` ### `ModuleNotFoundError: No module named 'whois'` ``` pip3 install python-whois # Termux: pip install python-whois --break-system-packages ``` ### 端口扫描速度慢 增加线程数并减少超时时间: ``` python3 main.py -t example.com --ports --threads 200 --timeout 0.5 ``` ### 子域名发现遗漏结果 使用更大的字典: ``` # 下载 SecLists wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/subdomains-top1million-5000.txt python3 main.py -t example.com --subdomains --wordlist subdomains-top1million-5000.txt ``` ### Termux 权限拒绝 ``` chmod +x install.sh main.py # 如果 pip 失败: pip install -r requirements.txt --break-system-packages ``` ### SSL 错误 已自动处理 —— ShadowRecon 为研究目的禁用了 SSL 验证。如果遇到问题,请确保您的 Python 版本为 3.8+。 ### 颜色未显示 ``` # 强制彩色输出: export TERM=xterm-256color python3 main.py -t example.com --all # 或者禁用颜色以进行管道操作: python3 main.py -t example.com --all --no-color | tee output.txt ``` ## ⚠️ 免责声明 使用此工具即表示您同意: 1. **仅扫描您拥有的系统**,或拥有**明确书面授权**进行测试的系统 2. 不使用此工具进行未经授权的访问、数据窃取或任何非法活动 3. 遵守所有适用的地方、州、国家及国际法律法规 4. 如果发现漏洞,请遵循负责任的披露原则 未经授权扫描计算机系统可能违反以下法律: - 计算机欺诈和滥用法 (CFAA) — 美国 - 滥用计算机法 — 英国 - 信息技术法 2000 (IT Act 2000) — 印度 - 您所在司法管辖区的相关法律 **开发者对滥用此工具的行为不承担任何责任。** ## 🔮 未来改进 | 功能 | 状态 | |---------|--------| | Shodan API 集成 | 🔄 已规划 | | ASN 枚举 | 🔄 已规划 | | 邮箱收集 (OSINT) | 🔄 已规划 | | WAF 指纹识别 | 🔄 已规划 | | 已检测技术的 CVE 查找 | 🔄 已规划 | | HTML 报告生成 | 🔄 已规划 | | 异步 I/O (asyncio) 模式 | 🔄 已规划 | | Docker 容器 | 🔄 已规划 | | Web 界面 (Flask) | 🔄 已规划 | | 用于自定义模块的插件 API | 🔄 已规划 | ## 📜 许可证 本项目基于 **MIT 许可证** 授权 —— 详见 [LICENSE](LICENSE)。

ShadowRecon — 为网络安全社区而建 🛡️
如果您觉得它有用,请给本仓库点个 Star ⭐!

标签:ESC4, GitHub, OSINT, Python, Termux, TShark, Windows内核, 侦查工具包, 动态插桩, 子域名枚举, 实时处理, 密码管理, 攻击面映射, 数据统计, 无后门, 白帽子, 端口扫描, 系统安全, 网络安全, 逆向工具, 隐私保护