sec0ps/quick_recon
GitHub: sec0ps/quick_recon
一个自动化侦察框架,专为渗透测试人员设计,用于快速收集目标组织情报。
Stars: 0 | Forks: 0
# 快速侦察
快速侦察是一个自动化侦察框架,专为渗透测试人员和安全专业人员设计,旨在帮助他们在任务早期阶段快速收集目标组织情报。
## 功能简介
该工具能自动完成那些在评估初期耗费大量时间的繁琐重复性任务。只需指向目标域名和客户名称,其余工作(如 DNS 枚举、WHOIS 查询、证书透明日志搜索、邮箱地址收集、LinkedIn 员工发现、GitHub 密钥扫描、M365/Azure AD 租户归属、ADFS 端点发现、远程访问设备指纹识别等)便自动完成。结果会编译成结构化输出,便于分析或报告。
## 存在意义
该项目起源于一个用于加快初始侦察速度的快速脚本,并逐渐发展。与其运行十几个不同工具并手动关联输出,快速侦察将它们智能地串联起来,验证发现结果,并消除浪费时间的噪音信息。
## 安装说明
```
git clone https://github.com/sec0ps/quick_recon.git && sudo apt install python3-requests python3-urllib3 python3-dnspython
cd quick_recon
```
## 使用方法
```
python quick_recon.py -d target.com -c "Target Company Name"
```
首次运行时,系统会提示您配置 API 密钥以增强功能(GitHub、Shodan、HIBP、LinkedIn)。这些密钥将保存在本地,并在后续运行时自动验证。
### 常见运行模式
```
# 使用 IP 范围进行完全侦察
python quick_recon.py -d target.com -i 192.168.1.0/24 -c "Target Corp"
# 仅 OSINT 模式(未提供 IP 范围)
python quick_recon.py -d target.com -c "Target Corp"
# 恢复中断的扫描
python quick_recon.py -d target.com -c "Target Corp" --resume
# 仅运行单个模块
python quick_recon.py -d target.com -c "Target Corp" --m365-only
python quick_recon.py -d target.com -c "Target Corp" --linkedin-only --linkedin-mode paranoid
python quick_recon.py -d target.com -c "Target Corp" --email-only --deep-crawl
```
## 核心特性
### 核心侦察
- **DNS 与基础设施** - 通过证书透明日志(crt.sh、certspotter、hackertarget)进行子域枚举、DNS 暴力破解、WHOIS 关联、通过 Team Cymru 和 RIPE 进行 ASN 发现
- **子域名接管检测** - 针对 10 多种云服务进行经过验证的检测,并提供置信度评分(高/中/低)
- **技术栈识别** - 在默认和备用 HTTP 端口(80、443、8000、8080、8443、8888)上进行服务器指纹识别、框架检测、安全头部分析
- **远程访问设备指纹识别** - 识别暴露在外部的 VPN/远程访问设备,包括 F5 BIG-IP、Citrix Netscaler/ADC、FortiGate SSLVPN、GlobalProtect、Cisco AnyConnect/ASA、Pulse Secure/Ivanti、SonicWall、Microsoft RD Web Access 和 Check Point Mobile Access,并可提取版本信息
### 云身份侦察
- **M365/Azure AD 租户归属** - 通过 openid-configuration 和 userrealm 端点进行非租户凭据发现,返回租户 ID、区域、品牌名称和联合身份验证状态(托管式 vs 联合式)
- **ADFS 端点发现** - 针对联合租户自动进行 ADFS 侦察,包括版本横幅提取、联合元数据解析、支持的协议(SAML2、WS-Federation、WS-Trust、OAuth2)、令牌签名证书详情,以及通过内部版本号推断 ADFS 版本
### 云存储枚举
- **AWS S3 存储桶发现** - 多区域存储桶枚举,并支持基于敏感度的内容下载
- **Azure Blob 存储发现** - 针对常见容器名称的存储账户枚举
- **GCP 云存储发现** - 存储桶枚举,并进行公开/私有分类
### 开源情报与凭据情报
- **邮箱地址收集** - 高产出优先的网络爬取、站点地图感知的 URL 发现、搜索引擎 Dork 技巧(Google、Bing、DuckDuckGo、Yahoo)、PGP 密钥服务器、theHarvester 集成以及邮箱模式检测
- **LinkedIn 情报** - 公司识别、使用公司 ID 过滤的员工枚举、模拟人类延迟的模式(快速/正常/谨慎)以避免速率限制和账户锁定
- **GitHub 密钥扫描** - 在公开仓库、Gist 和议题中搜索泄露的凭据、API 密钥、JWT 令牌、AWS 密钥和机密信息,并自动下载包含检测到的机密的文件
- **泄露数据库查询** - 集成 HIBP API 以发现已泄露的凭据
### 操作特性
- **检查点/恢复** - 长时间运行的扫描可以中断,并从上一个检查点恢复
- **状态管理** - 自动状态持久化,支持模块级状态跟踪和中断恢复
- **单模块执行** - 通过 `--X-only` 标志运行任何单个模块,进行针对性侦察
- **细粒度跳过控制** - 通过 `--skip-X` 标志跳过特定模块,以适应任务特定范围
- **响应式中断处理** - 优雅处理 Ctrl-C,同时保留状态
## 命令行参考
### 跳过标志
- `--skip-m365` - 跳过 M365/Azure AD 租户归属
- `--skip-adfs` - 跳过 ADFS 端点发现
- `--skip-breach-check` - 跳过泄露数据库检查
- `--skip-scan` - 跳过网络扫描
- `--skip-s3` - 跳过 S3 存储桶枚举
- `--skip-azure` - 跳过 Azure 存储枚举
- `--skip-gcp` - 跳过 GCP 存储枚举
- `--skip-github` - 跳过 GitHub 密钥扫描
- `--skip-asn` - 跳过 ASN 枚举
- `--skip-subdomain-takeover` - 跳过子域名接管检测
- `--skip-osint` - 跳过所有 OSINT 模块
### 单模块执行标志
- `--m365-only` - 仅运行 M365 租户归属
- `--adfs-only` - 仅运行 ADFS 端点发现(会先运行 M365 归属)
- `--linkedin-only` - 仅运行 LinkedIn 枚举
- `--github-only` - 仅运行 GitHub 密钥扫描
- `--s3-only` - 仅运行 S3 存储桶枚举
- `--azure-only` - 仅运行 Azure 存储枚举
- `--gcp-only` - 仅运行 GCP 存储枚举
- `--asn-only` - 仅运行 ASN 枚举
- `--subdomain-takeover-only` - 仅运行子域名接管检测
- `--email-only` - 仅运行邮箱地址收集
- `--dns-only` - 仅运行 DNS 枚举
- `--breach-only` - 仅运行泄露数据库检查
- `--techstack-only` - 仅运行技术栈识别
### 行为标志
- `--linkedin-mode {fast,normal,paranoid}` - LinkedIn 延迟配置文件(默认:normal)。对于敏感任务,使用 paranoid 模式。
- `--linkedin-max-results N` - 要获取的最大 LinkedIn 员工结果数(默认:100)
- `--deep-crawl` - 启用深度邮箱爬取模式(100 页,深度 3) - 速度较慢但更彻底
- `--resume` - 自动从上一个检查点恢复,无需提示
## 配置
API 密钥和凭据存储在工作目录的 `quick_recon_config.json` 文件中。该工具在使用前会验证凭据,如果过期会提示替换。
支持的集成:
- GitHub 个人访问令牌(密钥扫描)
- LinkedIn 会话 Cookie(员工枚举)
- HIBP API 密钥(泄露数据库查询)
- Shodan API 密钥(计划集成)
- Censys API 凭据(计划集成)
## 输出
结果将写入一个带时间戳的目录,其中包含:
- **JSON 结果文件** - 来自所有模块的完整结构化数据
- **Markdown 报告** - 包含按部分组织的调查结果的人类可读摘要
- **报告模板** - 适合包含在评估交付物中的叙述性内容
- **状态文件** - 恢复检查点数据(保留直到扫描成功完成)
- **下载的工件** - 从云存储、GitHub 仓库等提取的文件
## 最近更新
### 云身份与联合认证
- 新增了 M365/Azure AD 租户归属模块,涵盖租户 ID、区域、品牌名称和联合身份验证状态
- 新增了针对联合租户的 ADFS 端点发现功能,包括版本横幅提取、联合元数据解析和协议支持枚举
- 这两个模块都与现有的范围验证集成,并作为标准流程的一部分自动运行
### 远程访问设备检测
- 扩展了技术栈识别功能,增加了 VPN 和远程访问设备指纹识别
- 探测默认端口(80、443)和常见备用端口(8000、8080、8443、8888)以进行服务检测
- 仅在响应不明确时触发条件性二次路径探测,以限制流量
- 针对每个主机捕获设备类别、版本和检测证据
### LinkedIn 速率限制强化
- 用多层人类行为延迟模型替换了固定的 5 秒延迟,包括每页抖动、偶尔的长时间阅读暂停以及公司间的休息间隔
- 新增了三种延迟配置文件:`fast`(测试用)、`normal`(默认,模拟人类计时)、`paranoid`(用于敏感任务)
- 设置硬性会话上限以防止 API 消耗失控
- 主动检测速率限制(HTTP 429、999、挑战重定向、连续空结果)
- 在触发速率限制时干净退出,同时保留部分结果
### 邮箱收集优化
- 重写了网络爬取,采用高产出 URL 优先策略(首先爬取联系人、关于、团队、员工、领导层页面)
- 站点地图快速路径消除了发布 sitemap.xml 的站点的链接发现开销
- 在连续 8 个页面没有新邮箱地址后提前终止
- 将默认页面上限从 100 页减少到 25 页,深度从 3 减少到 2
- 默认邮箱收集运行时间从最差情况 ~14 分钟减少到通常的 30-90 秒
- `--deep-crawl` 标志可在需要时恢复之前激进的爬取行为
### 中断响应
- 在长时间运行的循环中增加了关闭标志传播
- Ctrl-C 现在能在几秒内响应,而不是等待正在执行的 HTTP 请求完成
- 中断时立即保存状态,同时保留部分结果
### 报告
- Markdown 报告和报告模板已扩展,包含 M365 租户归属、ADFS 侦察、远程访问设备发现和备用端口服务
- 联合式与托管式租户的上下文在报告模板中驱动不同的叙述内容
- 内部 DNS 信息泄露作为单独的发现类别呈现
## 免责声明
本软件按"原样"提供,不作任何明示或暗示的担保,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有者均不对因软件或软件的使用或其他交易而引起的任何索赔、损害或其他责任负责,无论是在合同、侵权或其他诉讼中。
本工具仅用于授权的安全测试。用户有责任确保遵守所有适用的法律法规。未经授权使用这些工具可能违反地方、州、联邦和国际法律。
## 许可证与版权
**作者**: Keith Pachulski
**公司**: Red Cell Security, LLC
**邮箱**: keith@redcellsecurity.org
**网站**: [www.redcellsecurity.org](https://www.redcellsecurity.org)
© 2026 Keith Pachulski。保留所有权利。
**许可证**: MIT 许可证 - 您可以依据许可条款自由使用、修改和分发本软件。
## 支持开发
如果您认为本项目对您的安全运营有价值:
[](https://paypal.me/sec0ps)
标签:ADFS发现, Azure AD归属, CodeQL, DNS枚举, ESC6, GitHub扫描, LinkedIn侦察, Microsoft 365安全, OSINT工具, Python安全工具, WHOIS查询, 侦察框架, 协议探测, 威胁情报收集, 安全评估工具, 实时处理, 密码管理, 开源安全工具, 早期阶段侦察, 电子邮件收割, 网络安全, 网络安全工具, 自动化信息收集, 设备指纹识别, 证书透明度搜索, 逆向工具, 逆向工程平台, 隐私保护