影评周公子 2026-04-14 02:30 采纳率: 99.1%
浏览 0
已采纳

如何通过二级域名反查其绑定的IP及真实网站入口?

常见技术问题: 在渗透测试或资产测绘中,常遇到如 `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 CNAMEdig +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 -title
    Set-Cookie: domain=.staging.company.net泄露同根域下的其他活跃子域结合 httpx -l staging_domains.txt -threads 100 -timeout 5 批量探测

    四、架构层:绕过HSTS预加载与边缘计算的战术突破

    对于启用 HSTS 预加载且强制 HTTPS 的目标,传统 HTTP 回退失效;而 Cloudflare Workers 可能动态改写 Host 头。此时应:

    1. 使用 curl -v --resolve admin.example.com:443:192.168.122.10 https://admin.example.com 强制直连疑似源站IP(需确认端口开放)
    2. 构造 TLS ClientHello 中 SNI 字段为 dev.api.company.net,但目标IP设为历史DNS中出现过的源站IP(工具:sslscan --sni dev.api.company.net 192.168.122.10
    3. 若返回有效证书且 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: cloudflareX-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差异
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 4月15日
  • 创建了问题 4月14日