Ume-Habiba-0x/ASRCE
GitHub: Ume-Habiba-0x/ASRCE
ASRCE是一个自动化攻击面侦察与分类引擎,通过子域名发现和风险评估帮助用户识别关键资产暴露问题。
Stars: 0 | Forks: 0
# ASRCE — 攻击面侦察与分类引擎
## 什么是 ASRCE?
ASRCE 是一个自动映射组织完整攻击面的多阶段侦察流程。它能发现子域名,通过 DNS 和 HTTP 数据丰富信息,并根据风险级别进行分类——让你清楚地知道首先应该关注哪里。
大多数侦察工具只是输出原始列表,让你自己判断哪些重要。ASRCE 会告诉你哪些是关键以及原因。
## 流程
```
Target Domain
↓
[1] Orchestration — Subfinder + Amass in parallel
↓
[2] Normalization — Deduplicate, validate, wildcard detection
↓
[3] Enrichment — DNS (dnsx) + HTTP (httpx) analysis
↓
[4] Risk Scoring — CRITICAL / HIGH / MEDIUM / LOW classification
↓
[5] JSON Report — output/report_.json
```
## 安装说明
```
git clone https://github.com/Ume-Habiba-0x/ASRCE.git
cd ASRCE
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
**必需工具:**
```
# 先安装 Go(如果尚未安装)
sudo apt install golang-go -y
# ProjectDiscovery 工具
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
# Amass
sudo apt install amass -y
```
将 Go 二进制文件添加到 PATH:
```
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
source ~/.bashrc
```
## 使用方法
```
# 完全扫描
python3 main.py -d target.com
# 完全扫描(最小输出)
python3 main.py -d target.com --silent
# 重新分类现有扫描数据而无需重新扫描
python3 main.py --report-only
```
## 输出
每次扫描都会在 `output/report_.json` 生成结构化 JSON 报告。
```
{
"meta": {
"tool": "ASRCE v2.0",
"generated_at": "2026-01-01T00:00:00+00:00"
},
"summary": {
"total": 45,
"critical": 1,
"high": 8,
"medium": 28,
"low": 8
},
"critical": [
{
"host": "staging.example.com",
"ip": ["192.0.2.1"],
"cname": ["example.herokuapp.com"],
"risk": "CRITICAL",
"reasons": ["Potential subdomain takeover → herokuapp.com"]
}
],
"high": [
{
"host": "dev.example.com",
"ip": ["192.0.2.2"],
"cname": [],
"risk": "HIGH",
"reasons": [
"Direct IP exposure — no CDN or WAF protection",
"Sensitive keyword 'dev' — not behind CDN"
]
}
]
}
```
## 风险分类
| 风险级别 | 判定标准 |
|----------|----------|
| CRITICAL | 存在子域名接管风险、TLS 证书已过期 |
| HIGH | 直接暴露 IP 地址、包含敏感关键词但未使用 CDN、TLS 配置薄弱 |
| MEDIUM | 主机存活但位于 CDN 后方、使用过时技术栈、内部 CNAME 别名 |
| LOW | 主机存活且位于真正的 CDN 后方、无明显问题 |
## 处理的边界情况
| 优先级 | 问题 | 解决方案 |
|--------|------------------|---------------------------------------------------------------|
| CRITICAL | 通配符 DNS | 模式检测——标记出拥有 50 个以上匹配子域名的域名 |
| HIGH | 频率限制 | 请求节流 + amass 超时回退 |
| HIGH | HTTP/HTTPS 不匹配 | 在标记主机失效前检查两种协议 |
| MEDIUM | CNAME 链 | 在丰富化模块中进行完整链路遍历 |
| LOW | 负载均衡器 IP | 从风险输出中过滤掉 |
## 项目结构
```
ASRCE/
├── main.py # Entry point
├── requirements.txt
├── modules/
│ ├── orchestrator.py # Parallel subdomain discovery
│ ├── normalizer.py # Dedup, validation, wildcard detection
│ ├── enricher.py # DNS + HTTP enrichment
│ ├── risk_scorer.py # Risk classification engine
│ └── output.py # Reserved for future export formats
├── data/ # Generated at runtime
├── output/ # Reports generated at runtime
└── docs/
├── architecture.md
├── decisions.md
└── edge_cases.md
```
## 法律声明
(此处原内容为空,翻译时保留空位)
## 文档资料
- [架构设计](docs/architecture.md) — 流程设计与模块分解
- [设计决策](docs/decisions.md) — 每项决策背后的原因
- [边界情况](docs/edge_cases.md) — 常规工具会失效的场景及 ASRCE 的应对方法
标签:AES-256, DNS分析, Go语言, HTTP分析, JSON报告, ProjectDiscovery, Python, TShark, 动态插桩, 子域发现, 攻击面映射, 数据保护, 无后门, 日志审计, 漏洞评估, 程序破解, 网络安全, 自动化侦察, 运行时操纵, 逆向工具, 隐私保护, 风险分类, 风险评分