前面 17 篇都是”招式”,但真实渗透测试是一场有标准、有边界、有交付的项目,不是上来就开扫。这一篇把规范化流程讲清,让你知道每一步该干什么、用什么工具。
渗透测试必须在客户书面授权范围内进行,明确目标、时间、手段边界。无授权的任何测试均属违法。
常见标准参考
业内常用框架给流程定调:
- PTES(渗透测试执行标准):分阶段定义测试方法论;
- OWASP WSTG:Web 应用安全测试指南,Web 专项的权威清单;
- NIST SP 800-115:技术安全测试指南;
- OSSTMM:关注”运营安全测试”。
不必背标准编号,但要知道:正规测试有章法,不是野路子。本篇流程综合这些框架,给你一套可落地的步骤。
阶段一:前期交互(明确边界)
和客户确认:
- 目标范围:哪些域名/IP/APP,单目标还是多目标;
- 测试手段:是否允许社工、是否允许拒绝服务类测试(通常禁止);
- 时间窗口:何时能测、何时必须停;
- 授权书:书面签字,这是合法性的唯一依据;
- 对接人:出问题找谁、是否允许碰生产数据。
这一步没做好,后面全是风险。
阶段二:情报收集(对应第 2 篇)
被动+主动收集:whois、子域、端口、目录、指纹、Google Hacking、FOFA。产出”目标档案”。
阶段三:威胁建模
根据收集到的技术栈,列出”可能适用的攻击面”:
- 有登录 → 测认证(弱口令、JWT、逻辑越权);
- 有上传 → 测文件上传/包含;
- 有 API 收 XML → 测 XXE;
- 用 Java 老框架 → 查对应 CVE。
这步把”招式”对症分配到”目标”。
阶段四:漏洞扫描(自动化)
用漏扫工具先跑一轮,快速定位明显问题:
- AWVS(Acunetix):Web 漏扫商用标杆,能扫 SQLi/XSS 等;
- AppScan:IBM 的 Web 漏扫;
- Xray:长亭的被动/主动扫描,配合 Burp 被动代理很强;
- Nessus / OpenVAS:系统/网络层漏扫,扫出缺失补丁、开放服务;
- SQLMap:专攻 SQL 注入的利用与拖库(授权用);
- Nmap + NSE:端口与服务漏洞脚本。
注意:自动化只能发现”已知模式”的洞,逻辑漏洞、授权问题它扫不出,必须人工。
阶段五:漏洞验证与利用(人工)
对扫描结果逐个人工验证(排除误报),再谨慎利用:
- 验证 SQLi 能否真读数据;
- 验证 XSS 是否可执行;
- 尝试越权、改逻辑;
- 拿到 shell 后只做必要验证,不破坏、不碰真实用户数据。
利用要”最小必要”——证明能进就行,别下载整库、别改配置。
阶段六:后渗透(授权范围内)
若授权允许进一步,做:
- 权限提升(提权到 root/administrator);
- 内网横向(借 SSRF/凭据移动);
- 权限维持(留检测不到的后门——仅授权演练);
- 清理(测试后移除自己放的临时文件/后门)。
未授权或客户不允许的,一律不做。
阶段七:报告与交付(对应第 19 篇)
整理发现,写报告,协助修复。这是价值的落点。
单目标 vs 多目标
- 单目标(一个站点/一个 APP):按上面七步线性推进,深度优先;
- 多目标(一个公司的多个系统):先资产梳理(第 2 篇的 FOFA/子域),按”暴露面大、价值高”排序,逐个击破,注意资产间的关联(旁站、C 段、统一登录)。
漏扫工具使用要点
- 先授权再扫:没授权扫别人=违法;
- 控制速率:别把客户系统打挂,
-T限速、避开业务高峰; - 排除误报:扫描结果要人工验证,AWVS 常有误报;
- 被动+主动结合:Xray 挂 Burp 被动跑,边手工测边自动发现;
- 结果留证:截图、请求响应留档,写报告用。
红队 vs 渗透测试
- 渗透测试:给定范围,找漏洞,出报告;
- 红队演练:模拟真实攻击者,目标可能是”拿到某核心数据”,不限手段(含社工、物理),更贴近实战,但同样需授权。
初学者从规范渗透测试做起,理解”授权、边界、交付”三原则。
更多实战案例:从拿到范围到交报告的全流程
正规渗透测试第一步是明确范围与授权:和甲方确认测哪些域名、哪些系统、哪些时段、能否用社工/拒绝服务类手段,并签署书面授权书——没有授权的测试在法律上可能构成”非法侵入计算机信息系统”。第二步信息收集摸清资产与组件。第三步漏洞发现用工具加手工找弱点。第四步漏洞验证与利用确认能真实利用、评估影响,但绝不做删库、拖走大量真实用户数据、搞瘫业务等超出约定的破坏。第五步权限维持与横向(在授权范围内)看能走多远。第六步整理成报告。
更多实战案例:测试中的边界感
授权测试最忌”上头”。比如发现一个 SQL 注入,验证它能读表名即可,不要真把整库拖走;发现能上传,验证能解析执行即可,不要种持久后门影响业务;发现逻辑漏洞,验证能越权读到一条他人数据即可,不要批量爬取。每一步都要想着”这是为了证明风险存在,而不是真的搞破坏”。同时做好测试记录:时间、操作、请求包、现象,方便复盘和写报告。
更多实战案例:不同类型测试的侧重点
黑盒只给域名,像真实外部攻击者,考验信息收集与突破边界能力;白盒给源码和账号,重点在代码审计与逻辑;灰盒介于之间。还有红蓝对抗:红队模拟真实攻击链(钓鱼、近源、供应链),蓝队防守检测;以及专项测试如 APP 安全、物联网、云安全。明确类型才能用对方法、定对交付标准。
常见坑
- 没书面授权就开测:法律风险极高,必须先签授权。
- 验证变破坏:超出约定做删库拖库,违背合规。
- 只扫工具不出手工:工具漏掉的越权、逻辑漏洞要靠人。
- 过程无记录:写报告时回忆不起复现步骤。
进阶:把过程变成可交付
用 checklist 管理每一步,用截图和请求包留证,用时间线串起攻击链。好的过程管理让报告有说服力,也让甲方能照着复现和修复。养成”先授权、再收敛、留证据、守边界”的职业习惯,比技术本身更值钱。
小测验
- 问题1:渗透前必须有什么?答案:书面授权书,明确范围与边界,否则违法。
- 问题2:验证漏洞时要避免什么?答案:避免超出约定的破坏,如删库、拖走真实数据。
- 问题3:黑盒和白盒区别?答案:黑盒只给目标像外部攻击,白盒给源码账号做代码审计。
更多实战案例:测试中的证据留存
每一步操作都要留证:截图(含 URL、参数、响应)、请求包原文(用代理导出)、现象描述、时间。证据不仅是写报告用,也是和甲方沟通的依据——当你说”这里有越权”,对方开发要能照着复现。建议边测边记到表格:资产、入口、参数、payload、现象、严重程度。这样收尾写报告时直接整理,不漏项。
常见坑(终补)
- 没书面授权就开测:法律风险极高,必须先签授权。
- 验证变破坏:超出约定做删库拖库,违背合规。
- 只扫工具不出手工:工具漏掉越权、逻辑漏洞要靠人。
- 过程无记录:写报告时回忆不起复现步骤。
进阶(终补):把过程变可交付
用 checklist 管理每一步,用截图和请求包留证,用时间线串起攻击链。好的过程管理让报告有说服力,也让甲方能照着复现和修复。养成”先授权、再收敛、留证据、守边界”的职业习惯,比技术本身更值钱。
小测验(终补)
- 问题1:渗透前必须有什么?答案:书面授权书,明确范围与边界,否则违法。
- 问题2:验证漏洞时要避免什么?答案:避免超出约定的破坏,如删库、拖走真实数据。
- 问题3:黑盒和白盒区别?答案:黑盒只给目标像外部攻击,白盒给源码账号做代码审计。
实战要点:把测试做成可复现的工程
把每次测试当工程:建一个项目目录,按资产、入口、漏洞、证据分文件夹;用代理的会话功能保存流量;用笔记记录每个发现的复现步骤和请求包;用时间线把多个漏洞串成一条攻击链(比如”用信息收集找到后台→用弱口令进后台→用文件上传拿 shell→读配置文件拿数据库”)。这样交付的报告有血有肉,甲方也能照着重现和修复。
易错提醒
新手常犯的错:没授权就开测(法律风险)、验证时顺手删库拖库(超出约定)、只跑工具不出手工(漏掉越权逻辑)、过程不记录(写报告抓瞎)。职业渗透的核心是”守边界、留证据、出价值”。技术再强,不合规也一文不值,甚至惹祸上身。
自测
- 渗透前必须有什么?答:书面授权书,明确范围与边界,否则违法。
- 验证漏洞时要避免什么?答:避免超出约定的破坏,如删库、拖走真实数据。
- 黑盒和白盒区别?答:黑盒只给目标像外部攻击,白盒给源码账号做代码审计。
延伸思考:渗透与合规的关系
很多行业(金融、医疗、政务)有等保、ISO27001 等合规要求,渗透测试是合规的必选项。但合规是”最低线”,不是”安全线”——过了等保不代表没漏洞。真正的安全是持续的过程:定期测、及时修、建流程、做演练。把渗透当”应付检查”就本末倒置了;当”发现问题的眼睛”才有价值。
一句话自测
- 为什么说合规是底线不是安全线?答:过了等保也可能有漏洞,安全是持续过程。
- 验证漏洞时最该守住的边界?答:不超出授权范围做破坏(删库拖库)。
这一篇你该记住的
正规渗透测试七阶段:前期交互(拿书面授权、定边界)→ 情报收集 → 威胁建模(对症分配攻击面)→ 漏洞扫描(AWVS/Xray/Nessus/SQLMap)→ 人工验证利用(最小必要)→ 后渗透(授权内提权/横向)→ 报告交付。自动化扫已知模式,逻辑/授权类必须人工。单目标深度优先、多目标先梳理资产再排序。无授权不扫、控速率、排误报、留证据。
流程讲完,最后一步是报告——再漂亮的利用,写不清”哪有洞、多严重、怎么修”,客户和开发都无从下手。下一篇讲渗透测试报告怎么写。