subbrute如何暴力破解子域名

联启 网络工具 16

本文目录导读:

subbrute如何暴力破解子域名-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 基本使用方法
  2. 核心参数说明
  3. 工作流程详解
  4. 提高效率和隐蔽性的技巧
  5. 所需文件准备
  6. 输出结果示例
  7. 注意事项与局限性
  8. 简单示例脚本

SubBrute 是一个用 Python 编写的子域名暴力破解工具,它通过使用字典文件(包含常见的子域名前缀)向 DNS 服务器发送查询请求,从而发现目标域名下的有效子域名。

以下是使用 SubBrute 进行暴力破解子域名的主要步骤和核心机制:

基本使用方法

# 基础命令格式
python subbrute.py <目标域名> [选项]
# 示例:暴力破解 example.com 的子域名
python subbrute.py example.com
# 使用自定义字典文件
python subbrute.py example.com -w /path/to/your/wordlist.txt
# 指定输出文件保存结果
python subbrute.py example.com -o output.txt
# 使用多个 DNS 服务器(提高速度和可靠性)
python subbrute.py example.com -s /path/to/resolvers.txt

核心参数说明

- `-w`:指定自定义子域名字典文件
- `-o`:指定输出文件路径,将结果保存到文件
- `-s`:指定 DNS 解析器列表文件(每个 IP 一行)
- `-t`:设置线程数(默认 100),控制并发请求量
- `-r`:指定递归级别(默认 1),发现子域名后是否继续对其子域名扫描
- `-v`:启用详细输出模式,显示更多调试信息
- `-q`:静默模式,只输出有效的子域名
- `--type`:指定 DNS 记录类型(如 A、AAAA、CNAME 等)
- `--exclude-suffix`:排除特定后缀(如 2 级域名)

工作流程详解

SubBrute 的工作机制基于以下步骤:

  1. 生成目标:从字典文件中读取子域名前缀列表(如 wwwmailadminftp 等),与目标域名组合形成完整的域名(如 www.example.commail.example.com)。

  2. DNS 查询:向指定的公共 DNS 服务器(如 8.8.8.8、1.1.1.1 等)发送 DNS 请求,查询这些域名是否存在。

  3. 结果处理

    • DNS 服务器返回 IP 地址(A 记录或 AAAA 记录),则视为子域名存在。
    • 如果返回 NXDOMAIN(域名不存在),则忽略。
    • 如果返回 SERVFAIL 或超时,可能需要重试或更换 DNS 服务器。
  4. 递归扫描(可选):如果发现了一个子域名(如 admin.example.com),SubBrute 可以继续对该子域名进行下一级暴力破解(如 test.admin.example.com)。

提高效率和隐蔽性的技巧

# 提高并发速度
python subbrute.py example.com -t 200
# 使用高质量的 DNS 解析器列表(绕过速率限制)
python subbrute.py example.com -s resolvers.txt -t 50
# 递归扫描 2 级子域名
python subbrute.py example.com -r 2
# 指定记录类型为 CNAME(用于发现 CDN 或别名)
python subbrute.py example.com --type CNAME
# 排除常见的二级域名后缀(如 .com.cn)
python subbrute.py example.com --exclude-suffix .com.cn

所需文件准备

1 子域名字典(wordlist)

这是最重要的部分,常见的字典文件来源:

  • SecLists:GitHub 上的著名安全测试字典集合
    • /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt
  • 自己制作:结合目标行业、业务特点生成
  • 常用开源字典dns-Jhaddix.txtcommonspeak2-subdomains.txt 每行一个子域名前缀):
    www
    mail
    admin
    blog
    ftp
    vpn
    api
    dev
    test
    staging

2 DNS 解析器列表(resolvers)

  • 包含可靠的公共 DNS 服务器 IP 地址
  • 可以从 https://public-dns.info/nameservers.txt 获取
  • 或使用自己搭建的 DNS 服务器
  • 建议至少 50-100 个不同的 DNS 服务器以避免被限制

输出结果示例

subbrute ownz 13.1.8.0.0.1.3.0.0.2.ip6.arpa  -  time to load hosts: 0.001s
subbrute ownz 13.1.8.0.0.1.3.0.0.2.ip6.arpa  -  time to scan: 0.003s
[+] www.example.com  ->  192.168.1.1
[+] mail.example.com ->  10.0.0.5
[+] admin.example.com ->  203.0.113.10

注意事项与局限性

1 法律与道德

  • 仅在获得授权的情况下使用,对未经授权的目标进行子域名爆破是非法行为。
  • 确保目标域名属于你拥有或已获得明确的渗透测试授权。

2 技术局限性

  • 字典依赖:无法发现未在字典中出现的子域名。
  • DNS 速率限制:大量请求可能导致源 IP 被临时封禁。
  • 泛解析问题:有些域名配置了通配符 DNS 记录(*.example.com 指向同一 IP),SubBrute 会误判所有子域名都存在,可以通过验证 DNS 响应中的 IP 是否重复或检查 TTL 值来缓解。
  • CDN 和 WAF:部分服务使用 CDN 可能隐藏真实 IP,但子域名本身仍可被发现。

3 优化建议

  • 使用 --type A 仅查询 IPv4 地址,有时能更快得到结果。
  • 配合其他工具(如 amassdnsrecongobuster)使用,提高覆盖率。
  • 结合被动收集(证书透明度日志、搜索引擎等)和主动扫描(暴力破解)的方式,效果最佳。

简单示例脚本

#!/bin/bash
# 基本使用流程
domain="$1"
if [ -z "$domain" ]; then
    echo "用法: $0 <域名>"
    exit 1
fi
# 使用默认字典暴力破解,输出到文件
python subbrute.py "$domain" -o "subdomains_$domain.txt"
# 显示发现的结果
echo "发现的子域名:"
cat "subdomains_$domain.txt"

SubBrute 是一个高效的子域名暴力破解工具,其核心在于优质的字典文件可靠的 DNS 服务器列表,合理设置线程数和递归级别,可以有效提高发现率,但请始终在法律允许的范围内操作。

标签: 子域名暴力破解

抱歉,评论功能暂时关闭!