daniyalnasir-root/scopesift
GitHub: daniyalnasir-root/scopesift
scopesift 是一个通过 DNS、TLS 与 HTTP 指纹验证资产程序归属的验证工具。
Stars: 0 | Forks: 0
# scopesift
**Bug Bounty 与渗透测试项目的资产归属验证工具**
*“这些资产中,到底有哪些真正属于该目标项目?”*



## 概述
Bug bounty 项目和渗透测试的范围通常会列出数十个域名。其中一些是公司完全拥有的绝对范围内的资产;一些是分配了子域名后被遗忘的第三方 SaaS(如 Heroku apps、Netlify sites、Zendesk 帮助中心);还有一些完全是配置错误。第三类正是机会所在:子域名接管、泄露的资产、被遗忘的测试环境,以及范围界定偏差。
`scopesift` 会读取一个范围文件,通过 DNS + TLS + HTTP 探测每个资产,并根据你提供的项目标识来评估其关联证据的强度。它会优先排序 SUSPICIOUS(可疑)级别的资产,让你在被大量明确的 HIGH(高置信度)级别淹没之前,先看到那些真正有趣的资产。
专为那些拿到资产范围列表后,想在正式开始之前进行一分钟快速检查的猎手而打造。
## 功能特性
- 一次性完成 DNS + CNAME、TLS 证书(SAN / 颁发者 / Subject 组织)以及 HTTP HEAD 指纹识别
- 对每个资产的各类证据源进行关键词匹配及评分
- 四级置信度:HIGH、MEDIUM、LOW、SUSPICIOUS
- 内置第三方主机指纹库(Heroku、Netlify、Vercel、GitHub Pages、Azure、S3、Fastly 等)
- 支持并行探测及可选的 JSON 导出
## 安装说明
```
git clone https://github.com/daniyalnasir-root/scopesift.git
cd scopesift
go build -o scopesift .
```
或者直接安装到 `$GOPATH/bin`:
```
go install github.com/daniyalnasir-root/scopesift@latest
```
要求 Go 1.21 或更高版本。
## 用法
使用项目关键词对范围文件进行基础扫描:
```
./scopesift -i scope.txt -p 'hackerone,hackerone inc'
```
导出为 JSON 格式:
```
./scopesift -i scope.txt -p 'gitlab' -o results.json
```
针对大型列表调整并发和超时时间:
```
./scopesift -i big-scope.txt -p 'shopify' -c 50 -t 15s
```
适配管道流(无颜色输出),以便用于 CI 或后续处理:
```
./scopesift -i scope.txt -p 'acme' --no-color | grep SUSPICIOUS
```
范围文件为纯文本,每行一个资产。空行和以 `#` 开头的注释会被忽略。URL 会自动去除其 scheme。
## 命令行选项
```
Required:
-i scope file, one asset per line
-p program keyword(s) to match against cert/DNS/HTTP evidence
Optional:
-o write full JSON output to file
-c concurrent workers (default 20)
-t per-probe timeout (default 10s)
-v verbose stderr logging
--no-color disable color (also honours NO_COLOR env)
-h show help
```
## 置信度评分
每个关键词对每个资产最多贡献 3 分:
| 证据类型 | 分数 | 示例 |
|-----------------|--------|---------|
| 证书 SAN 匹配 | +3 | SAN `hackerone.com` 匹配关键词 `hackerone` |
| 证书 Subject 组织 | +3 | 证书 Subject 组织 "HackerOne Inc." 匹配 `hackerone inc` |
| CNAME 匹配 | +2 | CNAME 解析到项目拥有的域名 |
| HTTP Server | +1 | `Server` header 包含关键词 |
| 重定向目标 | +1 | `Location` header 包含关键词 |
级别划分:
- **HIGH**:分数 ≥ 3。具有强烈的归属证据。
- **MEDIUM**:分数 1–2。有一定信号但不足以确证。
- **LOW**:分数 0,且未匹配到任何第三方指纹。
- **SUSPICIOUS**:分数 0,但该资产解析到了已知的第三方主机(如 Heroku、Netlify、Vercel 等)。这些才是值得关注的对象。
- **UNRESOLVED**:DNS 解析失败。
结果排序为 SUSPICIOUS → HIGH → MEDIUM → LOW → UNRESOLVED,让最有趣的项浮现在最前面。
## 输出示例
```
# ./scopesift -i examples/scope-mixed.txt -p 'hackerone' -o examples/mixed-results.json
ASSET CONFIDENCE SCORE FINGERPRINT EVIDENCE
-------------------- ------------ ------ ------------------------------ --------------------
netlify.app SUSPICIOUS 0 Netlify third-party:netlify.app
hackerone.com HIGH 3 cloudflare cert-san:hackerone.com
www.hackerone.com HIGH 3 cloudflare cert-san:hackerone.com
google.com LOW 0 gws
github.com LOW 0 github.com
example.com LOW 0 cloudflare
summary: 6 assets | HIGH=2 MEDIUM=0 LOW=3 SUSPICIOUS=1 UNRESOLVED=0
```
在包含 50 个资产的范围列表中,使用默认并发的典型运行耗时:
```
$ time ./scopesift -i scope-50.txt -p 'acme'
...
real 0m6.412s
user 0m0.204s
sys 0m0.088s
```
## 工作原理
对于每个资产:
1. 如果是 IP,则跳过 DNS。否则解析 A/AAAA 记录,并捕获任何 CNAME。
2. 建立到 `:443` 的 TLS 连接(跳过证书验证;我们只进行审查,不建立信任),并读取叶子证书的 SAN 列表、颁发者的 CN/O,以及 Subject 的 CN/O。
3. 首先向 `https://` 发送 HTTP HEAD 请求,如果失败则回退到 `http://`。记录 `Server` 和 `Location` header。
4. 根据每个关键词对各个证据源进行评分并分类。
5. 输出排序后的表格,并可选择将原始结果导出为 JSON。
所有探测均通过 worker pool 并行运行。默认值 `20` 对大多数 ISP 来说是一个安全的下限;如果列表很大,可以适当调高 `-c`。
## 注意事项
- 该工具不会暴力枚举子域名、进行端口扫描,或发送任何类似于漏洞利用 payload 的内容。它纯粹是基于三种标准协议的指纹识别。
- 证书检查使用了 `InsecureSkipVerify`,因此自签名或过期的证书依然能提取出证据。这是有意为之。
- 使用 HEAD 而不是 GET 可以最小化带宽和服务器负载。某些服务器会拒绝 HEAD 请求;这些请求在结果中会显示为空的 Server 值,这并不影响评分逻辑。
- Whois 未包含在默认流程中,因为域名注册商的限速非常严格,且其信号与证书中的组织信息存在重叠。如果大家确实有需求,我很乐意通过添加一个 flag 来启用该功能。
## 法律免责声明
该工具仅用于授权的安全测试和教育目的。
请仅对你拥有或获得明确书面测试授权的系统使用此工具。
作者不对任何滥用行为承担责任。未经授权的扫描可能违反
地方、州或联邦法律。
## 关于作者
[Daniyal Nasir](https://www.daniyalnasir.com) 是一名资深的 **网络安全顾问**、**渗透测试专家** 以及 **VAPT(漏洞评估与渗透测试)顾问**,拥有 10 年以上的 **攻防安全**、**道德黑客** 和 **Bug Bounty 挖掘** 实战经验。他曾为财富 500 强企业和高速增长的 SaaS 平台提供过 **Web 应用渗透测试**、**API 安全测试**、**网络渗透测试**、**移动应用安全评估** 以及 **云安全审计** 服务,业务遍及 **中东、亚洲、欧洲和北美**。持有 **OSCP**、**LPT**、**CPENT**、**CEH**、**CISA**、**CISM** 以及 **CASP+** 认证。
- LinkedIn: https://www.linkedin.com/in/daniyalnasir
- Website: https://www.daniyalnasir.com
## 许可证
MIT,详见 [许可证](LICENSE)。
标签:EVTX分析, GitHub, Go语言, 子域名接管, 安全工具, 实时处理, 渗透测试, 漏洞挖掘, 程序破解, 资产测绘