第4章 · 信息收集 — 渗透测试的“侦察兵”

章节定位:信息收集决定渗透测试成败的 60%——顶级技术专家与普通工程师的分水岭,往往就在信息收集的广度与深度上。

面试真相:大厂面试官会故意在信息收集环节设置陷阱,考察你“收集完信息之后如何决策”——而不是“用过什么工具”。

🎯 面试官考察核心 🔍 技术广度 🧠 分析决策 资产 入口 遗漏判断 攻击链 CDN 识别 WAF 指纹 遗漏资产 关联路径 追问路径:真实性验证 → 遗漏补救 → 攻击决策

一、公司侧重点

公司类型信息收集侧重点常见陷阱
大型互联网公司海量子域名、多云架构资产测绘只回答“用 subfinder”没有去重/验证
金融/安全公司精准目标、供应链入口、攻击面缩小忽略边缘业务、第三方接口
乙方安全服务可复现性、文档化、工具链闭环没有输出资产清单和验证步骤

二、面试官画像

  • 技术极客型:会追问你“某个子域名怎么验证CDN回源”,考察调试思维。
  • 项目实战型:关注“收集2000个子域名后怎么优先筛选”,考察决策效率。
  • 攻防对抗型:爱问“如果目标做了DNS防护,你还有什么办法”,考察变通能力。

三、面试问答卡片

卡片1 · 信息收集过程问法

  • 面试问题:请描述一次你信息收集做得特别好的渗透测试项目,你发现了什么别人没发现的东西?
  • 面试官考察点:是否形成自己的信息收集方法论;能否区分“有效信息”+“噪声”;遇到信息壁垒时的应变能力。
  • 回答框架:
    1. 一句话背景+目标范围
    2. 我的信息收集链路(工具+手动+交叉验证)
    3. 发现的关键资产/入口
    4. 这个发现如何影响后续渗透决策
  • 简短示例回答:“某金融项目,目标只给了主域名。我先用被动收集跑出800+子域名,然后主动验证存活,发现一个测试子域用的是阿里云CDN。通过SHODAN查回源IP,绕过CDN拿到真实服务器,最后发现测试环境通生产数据库。”
    60字
  • 可能追问:你怎么判断那个子域是测试环境?CDN回源IP识别用了哪些特征?
  • 避坑提醒:不要只列工具名字。面试官想听的是“你如何排除干扰信息、找到真正高价值资产”。

卡片2 · 子域名收集方法论

  • 面试问题:你是怎么做子域名收集的?如何保证不会遗漏重要资产?
  • 面试官考察点:是否形成体系化收集;对 DNS 原理的理解;对遗漏风险的补救策略。
  • 回答框架:
    1. 被动收集(证书透明度、搜索引擎、历史DNS)
    2. 主动收集(字典爆破、NS/PTR查询)
    3. 交叉验证(不同源去重、稳定性检查)
    4. 遗漏补救:模糊哈希+Web截图反查
  • 简短示例回答:“我采用三层覆盖:被动用crt.sh、certspotter;主动用massdns配合1kw字典;最后用gowitness截图对比,发现某些子域名WAF页面完全不同,判定是不同后端系统。针对每个后端系统分别做指纹识别。”
    75字
  • 可能追问:1kw字典怎么来的?怎么知道自己字典覆盖了多少?如果目标有通配符DNS怎么处理?
  • 避坑提醒:不要说自己用“全自动工具”。面试官希望你意识到通配符DNS的干扰,以及字典质量比数量重要。

卡片3 · WAF识别与绕过策略

  • 面试问题:信息收集阶段你会怎么识别WAF?不同WAF你会分别采取什么收集策略?
  • 面试官考察点:对WAF指纹的理解;能否根据WAF类型调整渗透节奏;是否知道CDN+WAF嵌套场景的区分。
  • 回答框架:
    1. 发送特征请求(X-Cache、x-served-by、异常响应码)
    2. 比对开源WAF指纹库(wafw00f、手工匹配)
    3. 根据WAF类型决定下一步:拦截型→找旁站/IP;检测型→调慢速/编码
  • 简短示例回答:“我第一步发`?id=1 union select`看response header,如果返回`__cfduid`判定是Cloudflare,再查其真实IP。如果是AWS WAF,特征是一致性弱,需要更多探针确定规则。然后根据WAF严格程度选不同收集链路。”
    75字
  • 可能追问:Cloudflare回源IP怎么找?WAF检测到拦截后你会立刻换IP还是调payload?
  • 避坑提醒:不要直接说“用wafw00f就够了”。面试官希望看到你的手动验证逻辑,以及基于WAF类型调整收集策略的能力。

四、回答框架总结

信息收集面试回答通用结构:
✅ 一句话场景 → ✅ 工具+手动结合 → ✅ 关键发现+验证逻辑 → ✅ 对后续渗透的影响
核心关键词:交叉验证、遗漏补救、入口决策、CDN绕过、WAF自适应
提醒:大厂面试中,信息收集环节的回答时间建议控制在 90 秒以内,重点陈述“发现”+“决策”环节,工具名称一带而过即可。