渗透测试执行标准(PTES)是业界广泛认可的专业框架,旨在规范渗透测试流程,确保测试的系统性和有效性。其核心流程分为七个阶段,每个阶段包含关键任务和技术要点,具体如下:
1、前期交互
核心任务:与客户明确测试范围、目标、限制条件及法律授权。
关键活动:
- 确定渗透边界(如IP段、Web应用或内网系统)。
- 商定测试方法(黑盒、白盒或灰盒测试),其中黑盒模拟外部攻击者,白盒基于完整内部信息,灰盒结合两者优势。
- 制定测试计划与时间表,签署授权协议(法律合规性是前提)。
2、情报收集阶段
核心任务:尽可能多的收集渗透对象的信息(网络拓扑、系统配置、安全防御措施等),在此阶段收集的信息越多,后续阶段可使用的攻击矢量就越多。因为情报搜集可以确定目标环境的各种入口点(物理、网络、人),每多发现一个入口点,都能提高渗透成功的几率。
技术方法:
- 被动情报:通过Shodan/Censys搜索暴露资产、Google Hacking挖掘敏感文件、历史快照分析(如Wayback Machine)。
- 主动扫描:使用Nmap探测端口,Sublist3r搜集子域名,DNS枚举获取网络拓扑。
- 社会工程学:针对人员信息进行钓鱼或伪装攻击(需客户明确授权)。
3、威胁建模阶段
核心任务:分析情报,定位高价值目标并规划攻击路径。
关键活动:
- 绘制攻击面地图(如OWASP Threat Dragon),识别高危组件(如未鉴权的Kibana、暴露的Jenkins)。
- 评估漏洞可利用性及潜在影响(如业务中断、数据泄露)。
- 优先级排序:聚焦可能造成最大业务损失的漏洞。
4、漏洞分析阶段
核心任务:验证漏洞存在性及可利用程度。
技术方法:
- 自动化扫描:结合Burp Suite(Web漏洞)和Nessus(系统漏洞)进行批量检测。
- 手工验证:针对业务逻辑漏洞(如越权访问、ID遍历)和自动化工具的误报(假阳性)。
- 未知漏洞挖掘:对关键服务(如数据库、API)进行深度代码审计或Fuzzing测试。
5、渗透攻击阶段
核心任务:利用漏洞获取系统控制权。
技术要点:
- 武器化漏洞:使用Metasploit开发定制化攻击载荷,或通过Cobalt Strike投递恶意代码。
- 绕过防御:针对WAF采用分块传输(Transfer-Encoding: chunked)、注释混淆(如SEL/**/ECT)。
- 权限提升:利用内核漏洞(如Linux提权EXP)或配置缺陷(SUID程序)。
- 黑盒测试重点:需规避检测机制(如EDR、SIEM)。
6、后渗透攻击阶段
核心任务:在已控系统内横向移动,达成业务影响目标。
关键活动:
- 横向移动:通过Mimikatz抓取凭证、PsExec/WMI远程执行命令,BloodHound分析域控路径。
- 数据窃取:定位敏感资产(如数据库、源码库),加密传输至外部存储(如Rclone)。
- 权限维持:创建隐藏服务、计划任务或影子账户。
- 痕迹清理:移除日志和临时文件避免触发告警。
7、报告阶段
核心任务:总结测试结果并提供可落地的修复方案。
报告内容:
- 漏洞详情:PoC(含录屏)、风险等级(DREAD模型量化)。
- 业务影响分析:说明漏洞对客户核心业务的潜在威胁(如数据泄露导致合规风险)。
- 修复建议:针对性方案(如预编译语句防SQL注入)、加固措施(如启用CSP策略防XSS)。
- 复测验收:验证修复有效性(如WAF规则是否可绕过)。
