Hayder-Rzaigui/HaXder
GitHub: Hayder-Rzaigui/HaXder
HaXder 是一套异步子域名发现与攻击面测绘工具,帮助安全研究人员在单一扫描流程中完成资产枚举、接管检测和配置审计。
Stars: 46 | Forks: 13
HaXder v0.3.0 企业版
异步被动子域名发现、主动暴力破解与攻击面管理工具包
专为红队人员、渗透测试工程师和企业安全团队打造
[](https://www.python.org/) [](https://opensource.org/licenses/MIT) []()
**HaXder** 通过将被动 OSINT 收集与主动验证相结合,来映射域名的暴露面。它从十几个公共和高级数据源中提取候选主机名,通过字典暴力破解和排列猜测扩展该列表,然后在具备泛解析感知能力的情况下,对所有候选项执行异步 DNS 解析,因此最终输出的是一份真实且可访问主机的简明列表,而不是一大堆无用的噪音数据。
**作者兼首席开发人员:** **Hayder Rzaigui**
## 主要功能
- **异步优先引擎:** 运行在 `asyncio` + `aiohttp` 之上,在扫描期间可轻松维持 500+ 个并发连接。
- **广泛的 OSINT 覆盖:** 查询 11+ 个数据源 —— `Shodan`、`VirusTotal`、`ProjectDiscovery Chaos`、`BufferOver`、`crt.sh`、`HackerTarget`、`AlienVault OTX`、`CertSpotter`、`URLScan`、`Anubis`、`SecurityTrails` 以及 `WaybackMachine`。
- **Master/Worker 分布式架构:** 在独立主机上运行一个 Master 节点和任意数量的 Worker 节点,从而将大型扫描任务分摊到多台机器上执行。
- **Wayback 爬取 + JS 敏感信息扫描:** 从 Wayback Machine 提取历史 URL,并检查获取到的 JavaScript 文件中是否存在泄露的密钥或 token。
- **SPF/DMARC 审计:** 标记薄弱或缺失的邮件身份验证 DNS 记录,这些记录会为欺骗攻击敞开大门。
- **YAML 漏洞模板:** 对存活目标运行轻量级、用户自定义的 YAML 检查,以捕获常见的错误配置。
- **接管风险检测:** 将 CNAME 链和响应指纹与本地特征库进行匹配,从而发现悬空 DNS 的 **接管风险**(S3、GitHub Pages、Heroku 等)。
- **交互式 HTML 报告:** 输出一个包含图表、可排序表格和漏洞摘要的独立暗色主题报告。
- **Webhook/SIEM 通知:** 将结构化的 JSON 扫描遥测数据发送至 **Slack**、**Discord** 或通用 SIEM webhook。
- **内置 HTTP 探测器:** 探测每个已解析的主机,以捕获状态码、页面标题以及缺失的安全头(CSP、HSTS、X-Frame-Options)。
- **自定义终端 UI:** 基于 `rich` 构建了专用的青灰色/蓝绿色/琥珀色主题 —— 包含带边框的结果表格、定制化的 banner 以及状态图标,而非使用库的默认颜色。
## 架构
```
graph LR
subgraph Input["Input Layer"]
User[/Operator Input/]
Engine{{haxder.runner}}
Dict[(Dictionary File)]
end
subgraph Discovery["Discovery Layer"]
Harvest[[haxder.discovery]]
Feeds{{OSINT Feed Pool}}
Guess[[haxder.dictionary_scan]]
Combine((Candidate Pool))
Expand[[haxder.permutations]]
end
subgraph Validation["Validation Layer"]
Check[[haxder.dns_resolve]]
Names[(Name Servers)]
Scan[[haxder.http_scan]]
Hosts[(Live Hosts)]
end
subgraph Output["Output & Alerting"]
View[/Rich Terminal UI/]
Ship{{Webhook Dispatch}}
Save[(JSON / CSV Export)]
end
User --> Engine
Engine -- "target domain" --> Harvest
Harvest <-- "concurrent lookups" --> Feeds
Engine -- "wordlist path" --> Guess
Dict --> Guess
Harvest --> Combine
Guess --> Combine
Combine -- "permutation pass" --> Expand
Expand --> Check
Check <-- "A/CNAME queries + wildcard filter" --> Names
Check --> Scan
Scan -- "HTTP fetch + takeover fingerprint" --> Hosts
Hosts --> Engine
Engine --> View
Engine --> Ship
Engine --> Save
```
## 安装说明
**1. 获取源码:**
将仓库克隆到您平时存放工具的任意工作目录中。
**2. 安装依赖:**
HaXder 的所有依赖项均已锁定在 `requirements.txt` 中:
```
pip install -r requirements.txt
```
**3. (可选)以可编辑模式安装:**
如果您希望直接使用纯粹的 `haxder` 命令,而不是每次都输入 `python -m`,此操作会很有用:
```
pip install -e .
```
## 用法
提供一个域名和几个参数给 HaXder —— 其余的它会自动运行。
```
python -m haxder.runner -T target.com --deep-scan --check-takeover --stdout-format jsonl --save findings.json
```
### 命令行参数
| 参数 | 完整参数 | 描述 | 默认值 |
| :--- | :--- | :--- | :--- |
| `-T` | `--target` | 目标基础域名(例如:`tesla.com`) | **必填*** |
| | `--as-number` | 目标 ASN(例如:`AS15169`),用于发现关联域名 | `None` |
| | `--ip-range` | 目标 CIDR(例如:`104.16.0.0/24`),用于发现关联域名 | `None` |
| | `--bounty-scope` | 目标漏洞赏金计划(例如:`yahoo`),用于获取范围内的域名 | `None` |
| `-C` | `--concurrency` | 用于 DNS 解析的异步并发连接数 | `500` |
| `-K` | `--conf` | 包含 API 密钥的 YAML 配置文件路径 | `settings.yaml` |
| `-R` | `--resolver-file` | 包含自定义 DNS 解析器的文本文件路径 | `dns_resolvers.txt` |
| | `--refresh-resolvers` | 下载最新的受信任解析器列表 | `False` |
| | `--skip-resolve`| 跳过 DNS 验证阶段并返回所有发现的子域名 | `False` |
| | `--monitor` | 持续监控模式:仅输出前次扫描中未出现的子域名 | `False` |
| | `--deep-scan` | 对每个已解析的子域名递归运行枚举 | `False` |
| | `--permute`| 启用排列引擎以猜测隐藏环境(dev-、staging- 等) | `False` |
| | `--permute-list` | 用于排列引擎的自定义字典路径 | `None` |
| `-B` | `--brute`| 启用主动字典暴力破解 | `False` |
| `-D` | `--dict-file` | 用于暴力破解的自定义字典路径 | `dictionaries/subdomain_dictionary.txt` |
| | `--http-check` | 启用主动 HTTP 探测(状态码和标题) | `False` |
| | `--port-list` | 要探测的逗号分隔端口(例如:`80,443,8080`) | `80,443` |
| | `--check-takeover` | 启用子域名接管漏洞引擎 | `False` |
| | `--harvest` | 提取历史 URL(Wayback)并扫描 JS 文件以查找泄露的密钥/API 密钥 | `False` |
| | `--vuln-scan` | 启用原生漏洞引擎(YAML 模板) | `False` |
| | `--gui` | 启动 HaXder Web GUI 仪表板 | `False` |
| | `--master-mode` | 将 Web GUI 作为分布式扫描的 Master 节点启动 | `False` |
| | `--worker-of` | 要将本次扫描结果提交到的 Master 节点 URL(例如:`http://master:8000`) | `None` |
| | `--gui-port` | Web GUI 仪表板 / Master 节点的端口 | `8000` |
| `-O` | `--save` | 用于保存结果的输出文件路径(例如:`results.json`) | `None` |
| `-F` | `--stdout-format` | 标准输出显示格式(`table`、`jsonl`) —— 独立于 `-O` 的文件格式 | `table` |
| `-Q` | `--quiet` / `--silent` | 屏蔽 banner 和所有状态/进度输出;仅将原始扫描数据打印到标准输出。`--silent` 是 `--quiet` 的别名,适用于脚本/企业流水线。 | `False` |
| `-V` | `--debug` | 启用详细的调试日志以供排障 | `False` |
| | `--alert` | 通过配置的 webhook(Slack/Discord)发送完成通知 | `False` |
| | `--html-report` | 用于保存交互式 HTML 报告的路径(例如:`report.html`) | `None` |
\* 除非改用 `--as-number`、`--ip-range` 或 `--bounty-scope`,否则为必填项。
### 静默 / 企业模式
对于脚本化流水线、cron 任务或通过管道传递给其他工具的场景,请使用 `-Q`、`--quiet` 或 `--silent`(三者完全等效)。这将屏蔽启动 banner、进度条以及每一行状态信息,仅在标准输出中保留纯粹的原始扫描数据 —— 默认每行一个已解析的子域名,或者在使用 `-F jsonl` 时每行一个 JSON 对象:
```
# 纯文本,每行一个子域名 — 非常适合通过管道传递给其他工具
python -m haxder.runner -T example.com --brute --http-check --silent
# JSON Lines 输出,仍然完全静默
python -m haxder.runner -T example.com --brute --http-check --silent -F jsonl
```
### 示例命令
**开启所有功能 —— 暴力破解、探测、URL/密钥提取、接管和漏洞检查、HTML 报告:**
```
python -m haxder.runner -T example.com --brute --http-check --harvest --check-takeover --vuln-scan --html-report report.html
```
**分布式运行(一个 Master,一个或多个 Worker):**
```
# Master 主机:提供 Web GUI 并接受 Worker 提交
python -m haxder.runner --master-mode --gui-port 8000
# Worker 主机:执行扫描并将结果推送回 Master
python -m haxder.runner -T example.com --worker-of http://master_ip:8000
```
**高并发扫描,结果写入 JSON:**
```
python -m haxder.runner -T example.com -C 1000 -O results.json
```
**带有漏洞检查并在完成时发送 Slack/Discord 警报的持续监控:**
```
python -m haxder.runner -T example.com --monitor --vuln-scan --check-takeover --alert
```
## 配置与 API 密钥
将 `settings.yaml.example` 复制为 `settings.yaml` 并填入您的 API 密钥,即可解锁高级数据源。任何缺失或无效的密钥都会被静默跳过 —— 扫描的其余部分将继续进行。
开箱即支持的高级数据源和通知渠道:
- **SecurityTrails**、**Shodan**、**VirusTotal**、**ProjectDiscovery Chaos**
- **Slack** 和 **Discord** webhook
由 Hayder Rzaigui 开发
由从业者打造,服务于从业者的工具
由从业者打造,服务于从业者的工具
标签:AsyncIO, GitHub, Python, 子域名枚举, 实时处理, 密码管理, 文件查看, 无后门, 系统安全, 计算机取证, 逆向工具