本节摘要:渗透测试执行标准(PTES)把一次测试划为七个阶段。本节把每个阶段映射到具体的工作产物与 Kali 工具域,重点讲每个阶段的"完成标志"——完成标志不清是流程失控的头号原因。最后一节给出阶段间的两条纪律:不跳阶段、不囤阶段。
第五章开篇先立骨架。第四章给了六个功能域的"武器",本节给编制——武器在什么顺序、什么条件下出场。
先看一个反面复盘。某次演练,团队拿到授权后直接开始扫描——跳过了前期交互与威胁建模。第三天客户问"你们到底在测什么、测到什么程度了",团队答不上来:范围理解没对齐,扫描做到哪算完没有定义。第五天发现扫描积压了大量未验证的命中,因为漏洞分析阶段没有出口标准,"再扫一轮"成了拖延的借口。报告写作时,证据散落在各人目录里,组装花了测试本身两倍的时间。
这个案例里的每个症状,都对应一个阶段的完成标志缺失。标准的价值不是仪式感,而是给每个阶段定义"做完的判据"——有了判据,进度可管理、质量可检查、交接可复现。
阶段一:前期交互。 内容:与委托方对齐目标、范围、边界(1.2 节的六要素落纸)、时间窗口、联系人。产物:一份双方确认的测试计划。完成标志:计划文档获双方签认。工具域:几乎不用工具,用的是沟通。这个阶段最容易被轻视,也最容易在后期变成争议源头。
阶段二:情报收集。 内容:4.1 节的四层漏斗。产物:资产清单与暴露面画像。完成标志:清单与授权范围比对完毕,每项资产有归属结论(范围内 / 清单外待确认)。工具域:信息收集域全套。
阶段三:威胁建模。 内容:基于情报推断"这个环境里什么样的威胁最有意义",确定测试重点与优先级。产物:威胁假设列表与测试路径规划。完成标志:假设列表经过内部评审,每条假设标注了验证所需的证据类型。这个阶段是"想"多于"做"的阶段,新手最容易跳过——跳过的后果是测试变成无重点的全面扫描,深度归零。
阶段四:漏洞分析。 内容:4.2 节的三态加工。产物:已确认风险清单 + 待验证清单 + 误报归档。完成标志:待验证清单清零(全部转为已确认或误报),无一悬置。
阶段五:验证与利用。 内容:在授权边界内验证风险的真实影响面(4.3、4.4 的重放与审计方法)。产物:每条已确认风险的验证记录。完成标志:每条风险有影响面结论与证据引用。判断标准是"影响说清楚了",不是"权限拿得越高越好"。
阶段六:后渗透阶段(结论固化)。 内容:把验证中的发现整理为业务影响评估,清理测试过程留下的临时痕迹与数据(按 1.2 的数据处理条款)。产物:影响评估与清理记录。完成标志:测试侧无残留,临时数据按约处置完毕。
阶段七:报告。 内容:组装证据链、写作、评审、交付,派生整改清单与复测安排。产物:报告与整改清单。完成标志:评审通过并交付,复测时间表确认。
| 阶段 | 主要工具域 | 关键产物 | 完成标志 |
|---|---|---|---|
| 前期交互 | 无(沟通) | 测试计划 | 双方签认 |
| 情报收集 | 信息收集域 | 资产清单 | 范围比对完毕 |
| 威胁建模 | 分析推理 | 假设列表 | 内部评审通过 |
| 漏洞分析 | 漏洞分析域 | 三态清单 | 待验证清零 |
| 验证与利用 | Web 与数据库域 | 验证记录 | 影响面明确 |
| 结论固化 | 全域清理 | 影响评估 | 无残留 |
| 报告 | 文档组装 | 报告与清单 | 评审交付 |
不跳阶段好理解,不囤阶段是更隐蔽的病:在情报阶段反复扩大收集范围,迟迟不进威胁建模;在漏洞分析阶段无限追新扫描器,不去做验证。囤积的根源是把"多收集一点"当成安全感的来源,实质是回避判断。每个阶段的完成标志就是给自己的截止线——到了标志,就进下一阶段,后补的成本远低于囤积的拖延。
💡 给每个阶段定"时间盒"是个有效的治理手段:比如一周的演练里,情报与建模合计不超过两天。时间盒逼着你在约束下做取舍,而取舍本身就是专业能力的训练场。
实践提示:把七阶段的完成标志做成一份 checklist 带进项目,每个阶段收尾时逐项打勾并落日期。这份 checklist 之后会附在报告附录里——它既是质量声明,也是下一次复盘的对照材料(第 2 节的复盘就用它当骨架)。
最后澄清一个常见误读:七阶段不是"七种工具的使用顺序",而是七种思考职责的接力。前期交互是契约职责、威胁建模是假设职责、报告是翻译职责——工具只是每种职责下的手。按职责理解流程的人换工具不慌,按工具理解流程的人换个环境就乱。
问:小项目也要走完七阶段吗? 阶段不可省,深度可以调。一次两天的内部自查,前期交互可能就是一页纸的对齐,威胁建模可能只是半小时的白板讨论——但这两步存在与否,决定后面的工作是有靶射击还是漫天扫射。流程的骨架按规模缩放,不能按心情裁剪。
问:阶段之间可以回退吗? 不仅可以,而且常见:验证环节(阶段五)发现的新信息,合理做法就是回到威胁建模(阶段三)更新假设,再重新进入分析。回退要显式——在记录里注明"因发现 X 回到建模阶段",让报告读者能理解测试路径的形状。隐式回退(自己默默又扫一轮)会让时间线混乱,复盘时无法解释。
问:时间不够时砍哪个阶段? 先砍广度,再砍深度,永远不砍记录。范围缩小到核心资产、每个资产的分析深度有限,这些都有辩护空间;记录缺失则是不可逆的损伤——没记下来的验证等于没做。这个优先级在 5.2 的复盘里会再次出现。
问:一个人也要分阶段吗? 分。单人测试最容易发生的就是阶段混行——边扫边验证边写报告,思路看似连贯,实则每个环节都在浅层打转。显式分阶段的单人价值更大:它强制你在"情报脑""分析脑""写作脑"之间切换,而不是用一种模式应付三种工作。实操上,给每个阶段设一个物化节点(清单文件、假设表、验证表、报告草稿),节点没到就不进入下一模式——物理产物是阶段的护栏。## 本节要点回顾