HAMZA-ALNAJJAR-CY/Z3R0-RECON
GitHub: HAMZA-ALNAJJAR-CY/Z3R0-RECON
Z3R0 Recon 是一款智能自动化侦察框架,用于授权渗透测试和安全研究。
Stars: 1 | Forks: 0
# Z3R0 Recon 框架
```
╔══════════════════════════════════════════════════════════════╗
║ ███████╗███████╗██████╗ ██████╗ ██████╗ ███████╗ ║
║ ╚══███╔╝██╔════╝██╔══██╗██╔═══██╗ ██╔══██╗██╔════╝ ║
║ ███╔╝ █████╗ ██████╔╝██║ ██║ ██████╔╝█████╗ ║
║ ███╔╝ ██╔══╝ ██╔══██╗██║ ██║ ██╔══██╗██╔══╝ ║
║ ███████╗███████╗██║ ██║╚██████╔╝ ██║ ██║███████╗ ║
║ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ║
║ Intelligent Auto-Recon — Authorized Use Only ║
╚══════════════════════════════════════════════════════════════╝
```
## 目录
- [什么是 Z3R0 Recon?](#what-is-z3r0-recon)
- [功能](#features)
- [工作原理](#how-it-works)
- [安装](#installation)
- [使用方法](#usage)
- [配置](#configuration)
- [输出结构](#output-structure)
- [免责声明](#disclaimer)
- [结论](#conclusion)
## 什么是 Z3R0 Recon?
**Z3R0 Recon** 是一个智能、自动化的侦察框架,专为授权渗透测试活动、CTF 竞赛和安全研究设计。它将行业标准工具链在一起,形成一个单一、统一的管道,消除了手动运行、解析和关联多个工具输出的繁琐工作。
Z3R0 Recon 可以自动编排 nmap、nuclei、gobuster、nikto 等工具,而不是手动逐个运行。内置的 **决策引擎** 分析开放端口和服务,以确定哪些后续扫描是有意义的,然后并发执行它们。
### 关键特性
- **基于插件的架构** — 每个工具(nmap、nuclei、gobuster 等)都是一个独立的插件
- **异步并发执行** — 多个服务扫描并行运行以提高速度
- **道德门** — 在任何扫描开始之前需要明确的授权确认
- **会话持久性** — 扫描保存到 SQLite;中断的会话可以恢复
- **自动报告** — 完成后生成 Markdown、JSON 和 HTML 报告
## 功能
| 类别 | 功能 |
|---|---|
| **端口扫描** | Nmap 服务/版本检测,Masscan 快速 CIDR 扫描 |
| **Web 扫描** | Nikto、Gobuster、FFUF、WhatWeb、WafW00f、Nuclei |
| **子域名枚举** | Subfinder、PureDNS 强制枚举、DNSGen 排列 |
| **OSINT/被动** | AlienVault OTX、URLScan.io、Shodan |
| **参数发现** | Arjun 在 Web 端点上的参数模糊测试 |
| **云枚举** | AWS S3、Azure Blob、GCP 存储桶枚举 |
| **HTTPX 探测** | 使用状态码进行实时子域名检测 |
| **截图** | Gowitness 捕获实时 Web 服务器 |
| **报告** | 带严重性分析的 Markdown + JSON + HTML 报告 |
| **恢复** | 可以通过会话 ID 恢复中断的扫描 |
## 工作原理
Z3R0 Recon 遵循一个结构化的多阶段执行管道:
```
Phase 0a → Passive OSINT (OTX, URLScan, Shodan)
Phase 0b → Subdomain Enumeration (subfinder + puredns + dnsgen)
Phase 0c → Masscan rapid port scan (CIDR mode)
Phase 0d → Cloud storage enumeration (S3 / Azure / GCP)
Phase 1 → Nmap port & service discovery
↓ Decision Engine analyzes results
Phase 2 → Concurrent service scanning (web, SMB, FTP, SQL, LDAP, ...)
Phase 3 → HTTPX probing + Gowitness screenshots (if subdomains found)
↓
→ Report generation (Markdown, JSON, HTML)
```
**决策引擎** (`core/decision.py`) 自动将开放端口映射到正确的工具 — 检测到 HTTP/HTTPS 运行 Web 插件,SMB 端口触发 enum4linux,MSSQL 触发服务枚举,等等。
## 安装
### 要求
- Python 3.10+
- Linux / macOS (Kali Linux 推荐)
- 外部工具已安装并位于 `$PATH` 中(见下文)
### 第 1 步 — 克隆仓库
```
git clone https://github.com/HAMZA-ALNAJJAR-CY/Z3R0-RECON.git
cd z3r0-recon
```
### 第 2 步 — 安装 Python 依赖项
```
pip install -r requirements.txt
```
或者作为包安装:
```
pip install -e .
```
### 第 3 步 — 安装外部工具
Z3R0 Recon 协调外部二进制文件。安装您需要的工具:
```
# 核心
sudo apt install nmap masscan nikto gobuster enum4linux
# 基于 Go 的工具
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install -v github.com/ffuf/ffuf/v2@latest
go install -v github.com/d3mondev/puredns/v2@latest
go install -v github.com/sensepost/gowitness@latest
# 基于 Python 的
pip install arjun dnsgen
# 更新 nuclei 模板
nuclei -update-templates
```
### 第 4 步 — 配置(可选)
```
cp config.yaml.example config.yaml
# 编辑 config.yaml 添加 API 密钥和自定义词表路径
```
## 使用方法
### 基本扫描
```
python3 -m z3r0_recon -t 10.10.10.10
```
### 使用所有模块进行完整扫描
```
python3 -m z3r0_recon -t example.com --subdomains --osint --screenshots --cloud
```
### 使用 Masscan 进行 CIDR 范围扫描
```
python3 -m z3r0_recon -t 10.10.10.1 --masscan --cidr 10.10.10.0/24 --masscan-rate 5000
```
### 预览扫描计划而不执行
```
python3 -m z3r0_recon -t 10.10.10.10 --plan-only
```
### 跳过授权提示(实验室/CTF/自动化模式)
```
python3 -m z3r0_recon -t 10.10.10.10 --no-confirm
```
### 列出保存的会话
```
python3 -m z3r0_recon --sessions
```
### 恢复中断的扫描
```
python3 -m z3r0_recon --resume
```
### 所有可用标志
| 标志 | 描述 |
|---|---|
| `-t / --target` | 目标 IP、主机名或 CIDR |
| `--concurrency N` | 并发扫描工作进程数(默认:5) |
| `--plan-only` | 显示扫描计划而不执行 |
| `--no-confirm` | 跳过授权提示(实验室/自动化模式) |
| `--operator NAME` | 报告归属的运营商名称 |
| `-v / --verbose` | 启用详细日志记录 |
| `--config PATH` | config.yaml 的路径(默认:`./config.yaml`) |
| `--resume SESSION_ID` | 恢复不完整的扫描 |
| `--sessions` | 列出所有保存的会话 |
| `--subdomains` | 启用子域名枚举 |
| `--wordlist PATH` | puredns 强制枚举的自定义词表 |
| `--masscan` | 启用 masscan 快速端口扫描 |
| `--masscan-rate PPS` | Masscan 每秒数据包数(默认:1000) |
| `--cidr RANGE` | masscan 的 CIDR 范围 |
| `--no-nuclei` | 禁用 Nuclei 扫描 |
| `--nuclei-templates PATH` | 自定义 Nuclei 模板目录 |
| `--no-arjun` | 禁用 Arjun 参数发现 |
| `--osint` | 启用 OSINT 收集(OTX、URLScan、Shodan) |
| `--shodan-key KEY` | Shodan API 密钥 |
| `--otx-key KEY` | AlienVault OTX API 密钥 |
| `--screenshots` | 启用 Gowitness 截图捕获 |
| `--cloud` | 启用云存储枚举 |
## 配置
将 `config.yaml.example` 复制到 `config.yaml` 并填写您的值:
```
api_keys:
shodan: "YOUR_SHODAN_KEY"
otx: "YOUR_OTX_KEY"
tools:
nmap: "" # Leave blank to use $PATH
nuclei: ""
subfinder: ""
# ... etc
wordlists:
subdomains: "/opt/SecLists/Discovery/DNS/subdomains-top1million-5000.txt"
web_content: "/opt/SecLists/Discovery/Web-Content/common.txt"
scan:
nmap_timing: "T4"
masscan_rate: 1000
concurrency: 5
nuclei_severity: "critical,high,medium,low"
```
## 输出结构
每个扫描在 `outputs/` 下创建一个带时间戳的目录:
```
outputs//
├── recon/ # Raw tool output (nmap XML, gobuster txt, nuclei JSON, ...)
├── reports/ # Generated reports
│ ├── report.md
│ ├── report.json
│ └── report.html
├── screenshots/ # Gowitness captures
└── loot/
└── session.db # SQLite session database (resumable)
```
## 免责声明
**未经授权的扫描违反了计算机欺诈和滥用法案 (CFAA)、计算机滥用法以及大多数司法管辖区中的等效法律**。
本工具的作者(们)对任何滥用、损害或由此产生的未经授权或恶意使用本软件而产生的法律后果不承担任何责任。
**您 — 操作员 — 对在扫描任何目标之前获得明确授权负有完全责任**。
## 结论
Z3R0 Recon 是为了消除在授权评估期间链式侦察工具的重复、手动工作而构建的。无论您是在处理 HackTheBox 机器、CTF 实验室还是现实世界的渗透测试活动,它都为您提供了一个结构化、可重复且文档齐全的侦察管道。
该框架旨在可扩展 — 添加新工具意味着编写插件,而不是触及核心。会话是持久化的,因此如果发生崩溃,则不会丢失任何工作。报告是自动生成的,这样您就可以专注于利用,而不是格式化。
**负责任地扫描。道德黑客**。
*为安全社区构建 — 在获得许可的情况下使用它来学习、防御和测试.*
标签:CTF竞赛, XML 请求, 反取证, 合规使用, 威胁情报, 安全开发, 安全评估, 开发者工具, 异步处理, 插件式, 攻击链, 日志审计, 智能侦察框架, 网络安全, 逆向工具, 防御策略, 隐私保护