S8C88/ReconProbe

GitHub: S8C88/ReconProbe

一款将子域名发现、端口扫描和服务枚举整合在一起的命令行自动化侦查工具包,适用于渗透测试和漏洞赏金场景下的目标信息收集。

Stars: 0 | Forks: 0

# ReconProbe 自动化侦查工具包 —— 将子域名发现、端口扫描和服务枚举集于一体的 CLI 工具。专为 HTB/VulnHub 靶机枚举、Bug Bounty 范围映射和内部网络评估而编写。 结合了被动(crt.sh 证书透明度日志)和主动(DNS 爆破、TCP 端口扫描)技术,并利用多线程实现并行化。没有数据库,没有 daemon,没有废话 —— 只有 Python 和 shell。 ## 功能 - **被动侦查** — 从 crt.sh 证书透明度日志中提取子域名 - **DNS 爆破** — 内置常见子域名字典或使用自定义字典 - **端口扫描** — 带有 banner grabbing 的多线程 TCP 扫描器 - **服务检测** — 尝试识别开放端口上运行的服务 - **批量模式** — 从文件中处理多个域名 - **导出** — 支持 JSON、CSV 和终端输出 ## 快速开始 ``` pip install requests python3 reconprobe.py -d example.com ``` ``` # 快速扫描(无 passive,无 brute,仅 ports) python3 reconprobe.py -d scanme.org --quick # 完整 aggressive 扫描 python3 reconprobe.py -d target.com --aggressive -o ~/recon_results/ # 从文件批量扫描 python3 reconprobe.py -l domains.txt -o ./batch_output/ # 自定义 ports python3 reconprobe.py -d example.com --ports 22,80,443,8443,3306,8080 ``` ## 输出结构 ``` recon_output/ example_com/ subdomains.csv — hostname, ip ports.csv — ip, port, state, banner summary.json — everything in one file ``` ## Todo / 已知问题 - 暂不支持 UDP 扫描。在单线程 Python 脚本上实现这个祝你好运。 - 如果你频繁请求,crt.sh 会触发 rate limit。如果扫描大量域名,请添加延迟。 - banner grabbing 是尽力而为的策略。某些服务在建立连接时并不使用 HTTP 通信。 - 解析器可能会受到限流。对于大型字典,建议通过本地 resolver 运行。 ## 系统设计 ``` graph TB A[CLI Argument Parser] --> B{Domain Input} B -->|Single| C[Phase 1: Passive Recon] B -->|Batch File| C C --> D[crt.sh API] D --> E[Subdomain Set] E --> F[Phase 2: DNS Brute-force] F --> G[Subdomain Wordlist] G --> E E --> H[Phase 3: Port Scan] H --> I[Thread Pool Executor] I --> J[connect_ex + Banner Grab] J --> K{Results} K --> L[Terminal Output] K --> M[CSV Export] K --> N[JSON Export] ``` ## 架构 ``` sequenceDiagram participant User participant CLI as reconprobe.py participant CRT as crt.sh participant DNS as DNS Resolver participant Target as Target Host User->>CLI: -d example.com CLI->>CRT: GET ?q=%.example.com CRT-->>CLI: JSON subdomains CLI->>DNS: resolve subdomains DNS-->>CLI: IP addresses CLI->>Target: TCP connect scan Target-->>CLI: open/closed/filtered CLI->>Target: banner grab Target-->>CLI: service banner CLI-->>User: formatted results + files ``` ## 技术栈 | 组件 | 选择 | 原因 | |-----------|--------|-----| | 语言 | Python 3 | 原型开发速度快,后续易于与 scapy/nmap 互操作 | | 网络 | socket stdlib | 核心扫描无需额外依赖 | | HTTP | requests | 用于 crt.sh 和 banner 探测 | | 并行化 | concurrent.futures | 简单的线程池,对于 IO 密集型任务足够好用 | | 输出 | CSV + JSON | 易于机器解析,对 grep 友好 | ## 许可证 MIT — 随你折腾,惹上麻烦别找我。
标签:Python, 主机安全, 数据统计, 无后门, 端口扫描, 资产测绘