使用 Subfinder 执行子域枚举
适用场景
- 在渗透测试或漏洞众测的侦察阶段
- 在对目标组织的外部攻击面进行映射时
- 在对已发现的子域执行漏洞扫描之前
- 在为持续安全监控构建资产清单时
- 在红队行动中需要进行被动信息收集时
先决条件
- 已安装 Go 1.21+,以便从源码构建
- 已安装 Subfinder v2(
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest)
- 已为被动数据源配置 API 密钥(Shodan、Censys、VirusTotal、SecurityTrails、Chaos)
- 在
$HOME/.config/subfinder/provider-config.yaml 位置存在数据源配置文件
- 具备访问被动 DNS 和证书透明度数据源的网络连接
- 安装 httpx 或 httprobe 以用于验证已发现的子域
工作流程
步骤 1 — 安装并配置 Subfinder
# 安装 subfinder
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# 验证安装
subfinder -version
# 配置 API 密钥以获得更全面的结果
mkdir -p $HOME/.config/subfinder
cat > $HOME/.config/subfinder/provider-config.yaml << 'EOF'
shodan:
- YOUR_SHODAN_API_KEY
censys:
- YOUR_CENSYS_API_ID:YOUR_CENSYS_API_SECRET
virustotal:
- YOUR_VT_API_KEY
securitytrails:
- YOUR_ST_API_KEY
chaos:
- YOUR_CHAOS_API_KEY
EOF
步骤 2 — 运行基础子域枚举
# 对单个域名进行枚举
subfinder -d example.com -o subdomains.txt
# 通过文件指定多个域名
subfinder -dL domains.txt -o all_subdomains.txt
# 使用所有被动数据源(较慢但更彻底)
subfinder -d example.com -all -o subdomains_all.txt
# 静默模式以便管道传递给其他工具
subfinder -d example.com -silent | httpx -sil…