L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

performing-subdomain-enumeration-with-subfinder

performing-subdomain-enumeration-with-subfinder

使用 ProjectDiscovery 的 Subfinder 被动侦察工具枚举目标域名的子域名,在安全评估期间绘制攻击面图谱。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: performing-subdomain-enumeration-with-subfinder description: 使用 ProjectDiscovery 的 Subfinder 被动侦察工具枚举目标域名的子域名,在安全评估期间绘制攻击面图谱。 domain: cybersecurity subdomain: web-application-security tags: [subdomain-enumeration, reconnaissance, bug-bounty, attack-surface, subfinder, passive-recon, osint] version: "1.0" author: mahipal license: Apache-2.0

使用 Subfinder 执行子域名枚举(Performing Subdomain Enumeration with 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 -silent -status-code

步骤 3 — 过滤和自定义源选择

# 仅使用特定源
subfinder -d example.com -s crtsh,virustotal,shodan -o filtered.txt

# 排除特定源
subfinder -d example.com -es github -o results.txt

# 启用递归子域名枚举
subfinder -d example.com -recursive -o recursive_subs.txt

# 匹配特定模式
subfinder -d example.com -m "api,dev,staging" -o matched.txt

步骤 4 — 控制速率限制和输出格式

# 速率限制以避免 API 节流
subfinder -d example.com -rate-limit 10 -t 5 -o rate_limited.txt

# JSON 输出用于程序化处理
subfinder -d example.com -oJ -o subdomains.json

# 带来源信息输出
subfinder -d example.com -cs -o subdomains_with_sources.txt

# 按域名收集结果到目录
subfinder -dL domains.txt -oD ./results/

步骤 5 — 使用 httpx 验证发现的子域名

# 将 subfinder 输出管道传输到 httpx 进行实时验证
subfinder -d example.com -silent | httpx -silent -status-code -title -tech-detect -o live_hosts.txt

# 检查特定端口
subfinder -d example.com -silent | httpx -ports 80,443,8080,8443 -o web_services.txt

# 解析 IP 地址
subfinder -d example.com -silent | dnsx -a -resp -o resolved.txt

步骤 6 — 集成到更广泛的侦察管道

# 与 nuclei 链接进行漏洞扫描
subfinder -d example.com -silent | httpx -silent | nuclei -t cves/ -o vulns.txt

# 与 amass 结合进行综合枚举
subfinder -d example.com -o subfinder_results.txt
amass enum -passive -d example.com -o amass_results.txt
cat subfinder_results.txt amass_results.txt | sort -u > combined_subdomains.txt

# 对发现的主机截图
subfinder -d example.com -silent | httpx -silent | gowitness file -f - -P screenshots/

核心概念

概念定义
被动枚举(Passive Enumeration)在不直接查询目标 DNS 服务器的情况下发现子域名
证书透明度(Certificate Transparency)揭示子域名名称的 SSL/TLS 证书公共日志
DNS 聚合(DNS Aggregation)从多个被动 DNS 数据库收集子域名数据
递归枚举(Recursive Enumeration)发现子域名的子域名以实现更深层覆盖
源提供商(Source Providers)为子域名情报查询的外部 API 和数据库
CNAME 记录可能揭示额外基础设施的规范名称记录
通配符 DNS(Wildcard DNS)为任何子域名查询返回结果的 DNS 配置

工具与系统

工具用途
Subfinder主要的被动子域名枚举引擎
httpx用于验证活跃子域名的 HTTP 探测工具
dnsxDNS 解析和验证工具包
Nuclei用于发现主机的基于模板的漏洞扫描器
Amass具有主动/被动模式的互补子域名枚举工具
gowitness用于视觉侦察的 Web 截图工具
Shodan用于子域名情报的全网扫描数据库
crt.sh证书透明度日志搜索引擎

常见场景

  1. 漏洞赏金侦察 — 枚举目标项目范围内的所有子域名,识别可能包含漏洞的被遗忘或配置错误的资产
  2. 攻击面映射 — 构建外部可访问子域名的综合清单,用于持续安全监控和风险评估
  3. 云资产发现 — 识别指向云服务(AWS、Azure、GCP)的子域名,这些可能容易受到子域名接管
  4. CI/CD 集成 — 在管道中自动化子域名监控,检测新子域名并在攻击面变化时发出警报
  5. 并购尽职调查 — 在安全评估期间映射收购目标的完整外部足迹

输出格式

## 子域名枚举报告
- **目标域名**:example.com
- **发现子域名总数**:247
- **活跃主机**:183
- **唯一 IP 地址**:42
- **使用的源**:crt.sh、VirusTotal、Shodan、SecurityTrails、Censys

### 发现的子域名
| 子域名 | IP 地址 | 状态码 | 技术 |
|-----------|-----------|-------------|------------|
| api.example.com | 10.0.1.5 | 200 | Nginx, Node.js |
| staging.example.com | 10.0.2.10 | 403 | Apache |
| dev.example.com | 10.0.3.15 | 200 | Express |

### 修复建议
- 删除已停用子域名的 DNS 记录
- 调查 CNAME 指向未认领服务的子域名
- 限制对开发和演示环境的访问
Skills enregistrées