常见技术问题:
在渗透测试或资产测绘中,常遇到如 `admin.example.com`、`dev.api.company.net` 等二级域名,但其未在公开DNS记录中显式解析(如被CDN/云WAF隐藏),或指向泛解析IP、跳转页、维护页,导致无法直接获取真实源站IP与后台入口。如何绕过CDN代理、识别隐蔽的CNAME链、利用历史DNS数据(如SecurityTrails、Censys)、HTTP响应头线索(如`X-Powered-By`、`Server`、`Set-Cookie`域)、证书透明度日志(crt.sh)匹配子域证书,以及通过同IP虚拟主机枚举(如`httpx -ip -title`)反推真实Web服务?尤其当目标启用Strict-Transport-Security、HSTS预加载或使用边缘计算架构(如Cloudflare Workers)时,传统`nslookup`或`dig`往往失效,应如何构建多维度关联分析流程,安全、合规地还原其真实出口IP与可访问管理入口?
1条回答 默认 最新
远方之巅 2026-04-14 08:48关注```html一、基础层:DNS解析失效的根源诊断
当
nslookup admin.example.com返回 Cloudflare(104.16.0.0/12)、Akamai 或 AWS CloudFront 的泛解析IP时,本质是CDN/WAF在L7层做了流量终止。此时A记录已不指向源站,而CNAME链可能被刻意截断(如admin.example.com → cdn-alias.net → [hidden])。需优先执行:dig +short admin.example.com CNAME与dig +trace admin.example.com A追踪完整递归路径。二、数据层:历史DNS与证书透明度交叉验证
- 调用 SecurityTrails API 查询
domain/subdomains?domain=example.com&include_subdomains=true,提取曾解析到非CDN IP 的子域(如backup.example.com → 192.168.122.10) - 访问 crt.sh 搜索通配符证书
*.example.com,导出所有已签发子域(含dev.api.company.net),比对其 Subject Alternative Names 中是否包含内网域名或测试环境标识 - 使用
subfinder -d example.com -sources censys,securitytrails,certspotter聚合多源子域,去重后生成高置信候选集
三、协议层:HTTP响应头与TLS指纹深度挖掘
Header 线索价值 实操示例 X-Powered-By: PHP/7.4.33暴露后端技术栈与可能存在的未公开管理后台路径 httpx -u https://admin.example.com -H "X-Forwarded-For: 127.0.0.1" -status-code -titleSet-Cookie: domain=.staging.company.net泄露同根域下的其他活跃子域 结合 httpx -l staging_domains.txt -threads 100 -timeout 5批量探测四、架构层:绕过HSTS预加载与边缘计算的战术突破
对于启用 HSTS 预加载且强制 HTTPS 的目标,传统 HTTP 回退失效;而 Cloudflare Workers 可能动态改写 Host 头。此时应:
- 使用
curl -v --resolve admin.example.com:443:192.168.122.10 https://admin.example.com强制直连疑似源站IP(需确认端口开放) - 构造 TLS ClientHello 中 SNI 字段为
dev.api.company.net,但目标IP设为历史DNS中出现过的源站IP(工具:sslscan --sni dev.api.company.net 192.168.122.10) - 若返回有效证书且 Common Name 匹配,则确认该IP为真实出口
五、关联层:多维度IP-Web服务拓扑重构(Mermaid流程图)
flowchart LR A[子域列表] --> B{历史DNS查询} A --> C{crt.sh证书枚举} A --> D{HTTP响应头分析} B & C & D --> E[候选源站IP池] E --> F[同IP虚拟主机扫描] F --> G[httpx -ip -title -tech-detect] G --> H[过滤404/503/跳转页] H --> I[存活Web服务矩阵] I --> J[人工验证管理入口]六、合规层:安全边界与法律红线守则
- 所有历史DNS/证书数据仅限已授权资产范围内使用,禁止扫描
.gov、.mil及未签署授权书的目标 - 直连源站IP前须确认其不在云服务商公开文档(如 Cloudflare IP Ranges)中,避免触发WAF速率封禁
- 使用
httpx -rate-limit 50控制并发,添加-random-agent减少指纹特征 - 对
Set-Cookie domain=*.company.net类线索,仅用于发现同域子域,不得尝试会话劫持或Cookie注入
七、实战工具链整合范例
以下为可直接运行的自动化流水线(Bash + Go 工具):
# 1. 收集全量子域 subfinder -d example.com -o subs.txt -silent
# 2. 历史DNS+证书聚合 amass enum -passive -d example.com -o amass_out.txt
# 3. 提取非CDN IP cat subs.txt | httpx -status-code -title -tech-detect -o httpx_out.json
# 4. 同IP聚类分析 cat httpx_out.json | jq -r '. | select(.status_code == 200) | "\(.url) \(.webserver) \(.title)"' | sort -k3 | uniq -w 50
八、进阶反制:识别Cloudflare Workers伪装模式
当
curl -I https://dev.api.company.net返回Server: cloudflare但X-Content-Type-Options: nosniff缺失,且响应体含<script src="/worker.js">,极可能为Workers代理。此时应:- 访问
https://dev.api.company.net/__error或/favicon.ico触发未处理路由,观察原始错误页是否暴露源站路径 - 发送
OPTIONS /api/v1/health查看Access-Control-Allow-Origin是否为*—— 若是,可尝试 CORS Proxy 绕过同源限制读取敏感接口 - 利用 Workers 可配置自定义 DNS 的特性,尝试
dig @1.1.1.1 api.company.net CNAME对比公共DNS差异
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- 调用 SecurityTrails API 查询