scp2801/ShadowRecon-toolkit
GitHub: scp2801/ShadowRecon-toolkit
一款基于 Python 的模块化 OSINT 侦察工具包,集成十项核心侦察模块,帮助安全人员快速完成目标信息收集与攻击面映射。
Stars: 0 | Forks: 0
# 🔍 ShadowRecon
.[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)。
面向道德黑客、漏洞赏金猎人与安全研究人员的专业级 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/
ShadowRecon — 为网络安全社区而建 🛡️
如果您觉得它有用,请给本仓库点个 Star ⭐!
标签:ESC4, GitHub, OSINT, Python, Termux, TShark, Windows内核, 侦查工具包, 动态插桩, 子域名枚举, 实时处理, 密码管理, 攻击面映射, 数据统计, 无后门, 白帽子, 端口扫描, 系统安全, 网络安全, 逆向工具, 隐私保护