2. 渗透测试方法论与流程
面试官问“你熟悉哪些渗透测试方法论”时,真正想听的并不是你把 PTES、OWASP Testing Guide、MITRE ATT&CK 的名字背一遍,而是想知道:你能否用一套结构化语言,把一次测试从接到需求讲到交付报告,并说清每个阶段做什么、产出什么、如何判断做到位。这一节就围绕这个目标展开。
一、三个框架在面试中的定位差异
先把三者的“角色”分清楚,面试表述才不会串味。
PTES(Penetration Testing Execution Standard)是流程骨架,回答“一次渗透测试分几步、每步的输入输出是什么”。它把测试划分为前期交互、情报收集、威胁建模、漏洞分析、渗透攻击、后渗透、报告七个阶段。面试中适合用它来展示你的项目管理和流程完整性。
OWASP Testing Guide(WSTG)是Web应用层面的测试用例库,回答“具体测什么、怎么测”。它按信息收集、配置管理、身份认证、授权、会话管理、输入验证、错误处理、加密、业务逻辑、客户端等类别组织,每个条目都有测试目标和测试方法。面试中适合用它来展示你的技术覆盖度和可复现性。
MITRE ATT&CK是攻击行为知识库,回答“攻击者用什么战术和技术达成目标”。它用战术(TA)和技术(T)两级结构描述对手行为,例如初始访问(TA0001)下的T1566钓鱼、执行(TA0002)下的T1059命令与脚本解释器。面试中适合用它来展示你的威胁视角和检测对抗思维,尤其在红队、蓝队或对抗演练岗位中权重很高。
一个常见的加分表述是:“我用PTES保证流程不漏项,用WSTG保证Web测试点可追溯,用ATT&CK把发现映射到攻击链,让客户能对照自己的检测能力。”这句话把三者关系一次讲清,比单独罗列定义有效得多。
二、从信息收集到报告输出的完整流程
下面按实际项目推进顺序展开,并标注关键交付物。
1. 前期交互与范围确认。输入是客户需求、授权书、目标清单。要确认的核心参数包括:目标IP/域名/应用清单、测试时间窗口、允许的测试强度(是否允许DoS、是否允许社工)、禁止触碰的资产、应急联系人。交付物是《测试授权书》和《范围说明书》。面试中要强调:没有书面授权,任何扫描都不应开始。
2. 被动信息收集。不直接接触目标,通过公开渠道获取信息。常用手段包括WHOIS查询、DNS记录枚举、证书透明度日志(crt.sh)、搜索引擎语法、GitHub代码泄露、招聘信息中的技术栈线索。例如通过证书透明度日志可以拿到子域名列表,命令示例如下:
# 通过crt.sh查询某域名关联的子域名(示例)
curl -s "https://crt.sh/?q=%25.example.com&output=json" | jq -r '.[].name_value' | sort -u
交付物是资产清单和攻击面草图,标注哪些资产属于范围内、哪些需要进一步确认。
3. 主动信息收集与枚举。在授权范围内对目标进行端口扫描、服务识别、目录枚举。以Nmap为例,一个兼顾效率和隐蔽性的示例参数是:
nmap -sS -sV -T3 -p- --min-rate 500 -oA scan_full 10.0.0.0/24
其中-sS为SYN半开扫描,-sV做服务版本识别,-T3控制速率,-p-扫描全端口,-oA输出三种格式便于后续处理。结果要观察的是:开放端口分布、服务版本是否含已知漏洞、是否存在非预期暴露的管理端口。交付物是端口与服务清单。
4. 威胁建模与漏洞分析。结合前两步结果,判断哪些资产最可能被攻击、攻击路径是什么。例如发现对外暴露的Jenkins未授权访问,就应把它列为高优先级。此阶段可用漏洞扫描器辅助,但面试中要说明:扫描器结果必须人工验证,否则误报会污染报告。交付物是漏洞列表(含初步定级)。
5. 渗透攻击与验证。对确认的漏洞进行利用,获取实际访问权限。关键原则是最小化影响:能读一个文件证明权限,就不要拖库;能弹一个计算器证明RCE,就不要植入持久化。每步操作要记录时间、命令、结果截图。交付物是攻击路径记录和证据包。
6. 后渗透与影响评估。在获得初始权限后,评估能走多远:能否提权、能否横向移动到核心数据库、能否访问敏感数据。这一步决定漏洞的最终风险等级。例如一个普通Web漏洞,如果能横向到域控,风险就从“中”升到“严重”。交付物是攻击链图和影响范围说明。
7. 报告输出。报告是最终产品,通常包含执行摘要、测试范围与方法、风险统计、漏洞详情、修复建议、附录证据。漏洞详情要写清:漏洞名称、风险等级、影响资产、复现步骤、请求/响应或命令、证据截图、修复建议。修复建议要具体,例如“升级Log4j至2.17.1以上”而不是“建议修复”。
三、面试中如何把流程讲成“故事”
面试官常问“讲一次你印象最深的渗透测试”。这时不要按阶段流水账,而要用“目标—发现—验证—影响—修复”的叙事线。示例表述:
“目标是一个对外门户。被动收集时通过证书透明度日志发现一个未在清单中的测试子域,主动扫描发现它开放了8080端口的Jenkins且未授权。我通过脚本命令行执行验证了RCE,但只执行了whoami和hostname证明权限,没有进一步操作。后渗透评估发现该主机可访问内网数据库网段,风险定为严重。报告中建议立即下线该测试环境并限制Jenkins访问来源,同时把该攻击路径映射到ATT&CK的T1190(利用公开应用漏洞)和T1078(有效账户),帮助客户对照检测规则。”
这段表述同时展示了流程完整性、框架运用、操作克制和交付意识,比单纯说“我用了PTES七个阶段”有说服力得多。
四、关键交付物速查
| 阶段 | 关键交付物 | 面试可强调的点 |
|---|---|---|
| 前期交互 | 授权书、范围说明书 | 合规意识、边界确认 |
| 信息收集 | 资产清单、攻击面草图 | 被动优先、减少暴露 |
| 漏洞分析 | 漏洞列表(含定级) | 人工验证、去误报 |
| 渗透攻击 | 攻击路径记录、证据包 | 最小影响、可复现 |
| 后渗透 | 攻击链图、影响范围 | 风险升级依据 |
| 报告输出 | 正式报告、修复建议 | 可执行、可追溯 |
最后提醒一点:面试中谈方法论,框架是语言,流程是骨架,交付物是证据。能把这三者串起来讲,比背熟任何定义都更能体现你的实战成熟度。