arthurvit-dev/reconTool
GitHub: arthurvit-dev/reconTool
一款 Python 自动化侦察工具,用于渗透测试初期的子域名枚举、端口扫描和 HTTP 安全头检测。
Stars: 0 | Forks: 0
我用 Python 制作的一款工具,旨在自动化 pentest 中的信息收集阶段。
我开发这个项目是为了自动化 pentest 中部分信息收集阶段的工作,同时也实践了我在进攻性安全领域学习的一些概念。
该脚本主要执行三个任务:
- 通过 DNS 测试常见的子域名列表,以确认哪些是存在的
- 扫描常见端口(HTTP、SSH、FTP、RDP、MySQL 等),以识别暴露的服务
- 检查网站是否使用了 HTTP 安全 headers(CSP、HSTS、X-Frame-Options)
最后,所有结果都会保存到一个 JSON 报告中。
## 道德规范与合法使用
仅在你获得授权测试的域名上运行此工具。我使用了 `scanme.nmap.org`
来测试该脚本,这是 Nmap 项目专门公开提供用于此类练习的域名。未经许可扫描第三方域名
是非法的,即使“仅仅是信息收集”。
## 演示:
--初始化:
该工具首先会识别输入的目标,并准备信息收集的各个阶段。

--扫描与分析:
在执行过程中,会进行端口扫描以及主要 HTTP 安全 headers 的分析。

--生成的报告:
结束后,所有收集到的信息都会自动导出为一个 JSON 文件。

## 如何运行
安装依赖项:
```
pip install requests
```
然后运行:
```
python recon_tool.py scanme.nmap.org
```
你也可以跳过某些步骤:
```
python recon_tool.py scanme.nmap.org --skip-subdomains
```
或者使用 `-w minha_wordlist.txt` 指定自定义的子域名 wordlist,并使用
`-o nome.json` 更改报告的名称。
注意:请仅输入域名或 IP。不要包含 http:// 或 https://,否则会导致报错,因为在检查 HTTP headers 时,该工具会自动添加协议。
## 内部运行机制
子域名枚举和端口扫描通过使用线程
(`ThreadPoolExecutor`)并发执行,因此脚本不再逐一测试每个子域名或端口,
而是同时测试多个目标——这使得整个过程快了许多。
至于 headers 检查,它会向目标发起一个 HTTP/HTTPS 请求,并将响应
与预期的安全 headers 列表进行比对,从而指出缺少了哪些 headers。
## 我学到了什么 / 后续计划
在 scanme.nmap.org 上进行测试时,我发现该服务器运行的是 Apache 2.4.7(非常过时)
并且没有使用任何安全 headers——这在实践中印证了为什么这些
基本检查在安全评估中如此重要。
后续优化想法:检测网站使用的技术(WordPress、Cloudflare 等),
将报告导出为 HTML,以及增加扫描速度控制功能。
标签:Python, 子域名枚举, 实时处理, 密码管理, 数据统计, 无后门, 端口扫描, 系统安全, 逆向工具