子域名发现
yc Lv1

子域名发现

子域名发现是信息搜集阶段的重要环节,可以帮助发现目标组织更多的资产和潜在攻击面。

常用工具

1. Subfinder

一款快速的子域名发现工具,支持多种数据源。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

# 基本使用
subfinder -d example.com

# 输出到文件
subfinder -d example.com -o subs.txt

# 使用所有数据源
subfinder -d example.com -all

# 递归查找子域名
subfinder -d example.com -recursive

2. Amass

OWASP 项目,功能强大的开源情报和攻击面映射工具。

1
2
3
4
5
6
7
8
9
10
11
# 安装
go install -v github.com/owasp-amass/amass/v4/cmd/amass@latest

# 被动枚举
amass enum -passive -d example.com

# 主动枚举
amass enum -active -d example.com

# 完整侦察
amass reconnaissance -d example.com

3. Sublist3r

基于搜索引擎的子域名扫描工具。

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装
git clone https://github.com/aboul3la/Sublist3r.git
cd Sublist3r
pip install -r requirements.txt

# 基本使用
python sublist3r.py -d example.com

# 使用搜索引擎
python sublist3r.py -d example.com -e google,bing,yahoo

# 保存结果
python sublist3r.py -d example.com -o subs.txt

在线工具

SecurityTrails

Censys

CRT.SH

1
2
# 命令行查询
curl -s "https://crt.sh/?q=%.example.com&output=json" | jq -r '.[].name_value' | sort -u

DNS 记录爆破

使用 DNS 字典爆破技术发现隐藏的子域名。

dnsx

1
2
3
4
5
6
7
8
9
10
11
# 安装
go install -v github.com/projectdiscovery/dnsx@latest

# 基本爆破
dnsx -l subdomains.txt -o resolved.txt

# 使用自定义字典
echo "www\napi\ndev\nstaging" | dnsx -d example.com -o result.txt

# 多线程解析
dnsx -l subs.txt -t 100 -o resolved.txt

技巧与最佳实践

  1. 多工具结合使用

    • 不同工具使用不同的数据源,结果互补
    • 建议至少使用 2-3 种工具
  2. 结果去重和验证

    1
    2
    3
    4
    5
    # 合并多个工具的结果
    cat subs1.txt subs2.txt subs3.txt | sort -u > all_subs.txt

    # 验证子域名是否存活
    httpx -l all_subs.txt -o alive_subs.txt
  3. 递归枚举

    • 发现子域名后,继续对其子域名进行枚举
    • 可以发现更深层的资产
  4. 关注被遗忘的子域名

    • 测试环境、开发环境
    • 旧版本、被废弃的子域名
    • 时间敏感的临时子域名

常见子域名字典

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
www
api
admin
dev
staging
test
beta
app
mail
ftp
vpn
secure
portal
dashboard
console
panel

防御建议

  1. 限制子域名 wildcard DNS 记录的使用
  2. 定期审计和清理不使用的子域名
  3. 使用 HSTS 预加载列表保护敏感子域名
  4. 监控证书透明度日志,及时发现新证书
由 Hexo 驱动 & 主题 Keep