NeiveZ/SUBE
GitHub: NeiveZ/SUBE
SUBE 是一个采用被动优先策略的子域名枚举 Bash 工具,在被动收集结果不足时自动回退到暴力破解。
Stars: 0 | Forks: 0
# SUBE




## 概述
SUBE 使用**优先级链**枚举子域名:它从被动和隐蔽的技术开始,然后逐步升级为主动暴力破解。只有在被动结果低于可配置的阈值时,才会触发暴力破解——默认情况下保持侦察的隐蔽性。
```
AXFR (Zone Transfer) → crt.sh (Certificate Logs) → Brute Force (SecLists)
```
## 功能
- **优先级链** —— 被动优先,仅在需要时使用主动方式
- **区域传送 (AXFR)** —— 尝试对所有域名服务器进行攻击,按类型显示记录
- **证书透明度 (crt.sh)** —— 从 CT 日志中提取子域名,无需主动探测
- **暴力破解回退** —— 使用 SecLists Top 100K 或本地字典进行并行 DNS 解析
- **可配置阈值** —— 设置在跳过暴力破解前多少个被动结果才算“足够”
- **本地字典支持** —— 使用任何本地文件代替下载 SecLists
- **去重** —— 在最终输出中合并并去重所有来源的结果
- **静默模式** —— 输出纯子域名列表,便于通过管道传递给其他工具
- **唯一的临时目录** —— 针对不同域名进行多个并行执行时是安全的
## 要求
| 依赖 | 用途 | 安装 |
|---|---|---|
| `bash 4.0+` | 脚本运行时 | Linux 上预装 |
| `host` | DNS 查询和 AXFR | `apt install dnsutils` |
| `curl` | crt.sh 和字典下载 | `apt install curl` |
| `awk`, `sort` | 输出解析 | Linux 上预装 |
```
sudo apt install dnsutils curl
```
## 安装
### 1. 克隆仓库
```
git clone https://github.com/NeiveZ/SUBE.git
cd SUBE
```
### 2. 使脚本可执行
```
chmod +x sube.sh
```
### 3. (可选)全局安装
```
sudo cp sube.sh /usr/local/bin/sube
```
## 用法
```
./sube.sh -d [options]
Options:
-d, --domain Target domain (required)
-o, --output Output directory (default: .out)
-w, --wordlist Local wordlist for brute force (default: download SecLists)
-t, --threads Brute force parallel threads (default: 40)
-m, --min-passive Min passive results to skip brute force (default: 5)
-T, --timeout curl timeout in seconds (default: 15)
--passive-only Run AXFR + crt.sh only, skip brute force
--no-axfr Skip zone transfer attempt
--silent Results only — no progress output
-h, --help Show this help
```
## 示例
**基本扫描:**
```
./sube.sh -d example.com
```
**仅被动 —— 不进行暴力破解:**
```
./sube.sh -d example.com --passive-only
```
**跳过 AXFR,直接使用 crt.sh + 暴力破解:**
```
./sube.sh -d example.com --no-axfr
```
**使用本地字典,80 个线程:**
```
./sube.sh -d example.com -w /usr/share/seclists/Discovery/DNS/common.txt -t 80
```
**提高被动阈值(需要 20 个被动结果才会跳过暴力破解):**
```
./sube.sh -d example.com -m 20
```
**静默模式 —— 将结果通过管道传递给其他工具:**
```
./sube.sh -d example.com --silent | tee subdomains.txt
./sube.sh -d example.com --silent | httpx -silent
./sube.sh -d example.com --no-axfr --silent | dnsx -silent
```
**保存到自定义目录:**
```
./sube.sh -d example.com -o /tmp/engagement/example
```
## 优先级链的工作原理
```
┌─────────────────────────────────────────────────────────┐
│ 1. AXFR — attempt zone transfer on all nameservers │
│ ↓ always continues to step 2 │
│ 2. crt.sh — query certificate transparency logs │
│ ↓ count passive results (AXFR + crt.sh) │
│ ┌──────────────────────────────────────────┐ │
│ │ results ≥ MIN_PASSIVE? │ │
│ │ YES → skip brute force, print results │ │
│ │ NO → run brute force │ │
│ └──────────────────────────────────────────┘ │
│ 3. Brute Force — parallel DNS resolution via wordlist │
│ 4. Merge + deduplicate all sources → final output │
└─────────────────────────────────────────────────────────┘
```
## 输出
```
example.com chain: AXFR → crt.sh → Brute Force
min-passive: 5 threads: 40 passive-only: false
[*] Step 1/3 — Zone transfer attempt (AXFR)
[!] Zone transfer failed or not permitted
[*] Step 2/3 — Passive enumeration via crt.sh
[+] crt.sh returned 3 unique subdomain(s)
[!] Passive results (3) below threshold (5). Starting brute force...
[*] Step 3/3 — Active brute force
[>] mail.example.com
[>] api.example.com
[>] dev.example.com
[>] staging.example.com
[+] Total unique subdomains: 7
[*] Saved to: example.com.out/example.com-subdomains.txt
[*] Sample results:
api.example.com
dev.example.com
mail.example.com
...
time: 42s
```
默认情况下,结果将保存到 `.out/-subdomains.txt`。
## 仓库结构
```
SUBE/
└── sube.sh # Main script
```
## 法律声明
仅适用于您拥有或获得明确书面授权进行测试的系统。
未经授权对第三方系统使用是违法的。
标签:Berkeley Packet Filter, Cutter, DNS枚举, GitHub, 子域名枚举, 安全侦察, 实时处理, 应用安全, 系统安全, 网络安全工具