capetron/penetration-testing-checklist
GitHub: capetron/penetration-testing-checklist
一份结构化的渗透测试检查清单,解决评估过程不一致与遗漏攻击面的问题。
Stars: 0 | Forks: 0
# 渗透测试检查清单
一份面向安全专业人士和 IT 团队的结构化渗透测试清单。该清单覆盖从范围界定和规则约定到侦察、攻击、后利用以及报告的全生命周期。与 PTES(渗透测试执行标准)、OWASP 测试指南以及 NIST SP 800-115 保持一致,为网络、Web 应用、无线、云和社会工程评估提供可操作的检查项。
## 为何使用渗透测试检查清单
缺乏结构化方法的渗透测试会导致结果不一致、遗漏攻击面,并产生无法推动修复的报告。无论你是内部红队、咨询公司,还是负责管理第三方渗透测试的 IT 团队,可重复的检查清单都能确保全面覆盖并交付专业质量的成果。
本清单按评估类型和攻击阶段组织。可将其作为起始框架,并根据你的环境与参与范围进行调整。
## 目录
1. [预交互](#1-pre-engagement)
2. [侦察](#2-reconnaissance)
3. [网络渗透测试](#3-network-penetration-testing)
4. [Web 应用测试](#4-web-application-testing)
5. [无线网络测试](#5-wireless-network-testing)
6. [云安全测试](#6-cloud-security-testing)
7. [社会工程测试](#7-social-engineering-testing)
8. [Active Directory / 身份测试](#8-active-directory--identity-testing)
9. [后利用](#9-post-exploitation)
10. [报告](#10-reporting)
11. [工具参考](#11-tool-reference)
12. [合规要求](#12-compliance-requirements)
## 1. 预交互
### 范围界定
- [ ] 定义测试类型:黑盒、灰盒或白盒
- [ ] 定义范围:IP 范围、域名、应用、云账户
- [ ] 记录明确排除在范围之外的系统
- [ ] 识别测试类型:外部、内部、Web 应用、无线、社会工程、物理
- [ ] 确定测试窗口(日期、时间、维护窗口)
- [ ] 识别需要特殊处理的敏感/脆弱系统
- [ ] 确认是否允许拒绝服务测试
- [ ] 确认社会工程是否在范围内
### 规则约定(ROE)
- [ ] 获取系统所有者的书面授权(签署的参与函)
- [ ] 定义可接受的测试技术与工具
- [ ] 建立应急联系程序(若测试引发问题)
- [ ] 定义数据处理要求(发现如何存储、传输、销毁)
- [ ] 约定通信渠道(加密邮件、安全门户)
- [ ] 定义第三方托管系统的规则(云提供商可能需要通知)
- [ ] 确认 AWS/Azure/GCP 渗透测试通知要求(如适用)
### 凭证与访问(灰盒/白盒)
- [ ] 获取测试账户(标准用户、特权用户(如适用))
- [ ] 获取 VPN 访问或跳转盒凭证(用于内部测试)
- [ ] 获取网络拓扑与架构文档(白盒)
- [ ] 获取应用源代码或 API 文档(白盒)
- [ ] 验证所有提供的凭证在测试窗口开启前均有效
## 2. 侦察
### 被动侦察(OSINT)
- [ ] DNS 枚举(A、AAAA、MX、TXT、NS、SOA、SRV 记录)
- [ ] 子域名发现(subfinder、amass、crt.sh 证书透明度日志)
- [ ] WHOIS 与注册信息
- [ ] Google dorking(site:target.com filetype:pdf、inurl:admin 等)
- [ ] Shodan / Censys / BinaryEdge 搜索暴露的服务
- [ ] GitHub / GitLab 搜索泄露的凭证、API 密钥、内部文档
- [ ] LinkedIn 员工枚举(用于社会工程范围)
- [ ] Wayback Machine 获取历史内容与已删除页面
- [ ] 招聘信息(揭示技术栈)
- [ ] 已泄露凭证数据库(使用 Have I Been Pwned API 查询域名)
- [ ] SSL/TLS 证书分析(主题备用名称揭示子域名)
- [ ] ASN 与 IP 范围识别
### 主动侦察
- [ ] 端口扫描(Nmap:TCP SYN 扫描、Top 1000 端口,如获许可则全端口扫描)
- [ ] 服务版本探测(Nmap -sV)
- [ ] 操作系统指纹识别(Nmap -O)
- [ ] 横幅抓取(Netcat、curl)
- [ ] Web 技术指纹识别(Wappalyzer、WhatWeb、BuiltWith)
- [ ] 虚拟主机发现(Host 头枚举)
- [ ] Web 目录与文件暴力破解(ffuf、gobuster、dirsearch)
- [ ] API 端点发现(检查 /swagger、/api-docs、/graphql)
- [ ] 邮件收集(theHarvester、Hunter.io)
## 3. 网络渗透测试
### 外网网络
- [ ] 识别所有面向互联网的服务
- [ ] 测试所有发现服务的默认凭据
- [ ] 检查识别出的服务版本是否存在已知 CVE
- [ ] 测试 SSL/TLS 配置(testssl.sh、sslyze)
- [ ] 已过期或自签名证书
- [ ] 弱加密套件
- [ ] 支持 TLS 1.0/1.1
- [ ] 缺少 HSTS 头部
- [ ] 测试 VPN 端点是否存在已知漏洞
- [ ] 测试邮件服务器配置(开放中继、SPF/DKIM/DMARC)
- [ ] 测试 DNS 是否允许区域传输(dig axfr @ns.target.com target.com)
- [ ] 检查是否存在暴露的管理界面(管理面板、控制台)
- [ ] 测试 SNMP 是否使用默认团体字符串
### 内网网络
- [ ] 网络发现(Nmap、Responder 用于被动 LLMNR/NBT-NS)
- [ ] LLMNR/NBT-NS/mDNS 中毒(Responder)
- [ ] ARP 欺骗 / 中间人攻击(如在范围内)
- [ ] SMB 枚举(CrackMapExec、enum4linux-ng)
- [ ] 空会话访问
- [ ] 访客会话访问
- [ ] 共享枚举与访问
- [ ] SMB 签名状态
- [ ] SNMP 枚举(使用常见团体字符串的 snmpwalk)
- [ ] 网络共享数据挖掘(Snaffler)
- [ ] 密码喷洒(针对已识别服务,受控进行并注意账户锁定)
- [ ] Kerberoasting(GetUserSPNs、Rubeus)
- [ ] AS-REP Roasting(GetNPUsers)
- [ ] NTLM 中继攻击(ntlmrelayx,若 SMB 签名被禁用)
- [ ] IPv6 攻击(mitm6,若 IPv6 已启用但未受管)
- [ ] 仅在批准并在受控环境下利用已识别的 CVE
## 4. Web 应用测试
与 OWASP 测试指南 v4.2 及 OWASP Top 10(2021)对齐。
### 信息收集
- [ ] 识别 Web 服务器(Apache、Nginx、IIS 版本)
- [ ] 识别 Web 应用框架(Django、.NET、Spring、Express)
- [ ] 绘制应用结构(站点图、爬行)
- [ ] 识别所有入口点(表单、参数、API、文件上传)
- [ ] 检查 robots.txt 与 sitemap.xml
- [ ] 检查 HTTP 头部与错误消息中的信息泄露
### 身份认证测试
- [ ] 测试默认凭据
- [ ] 测试用户名枚举(对有效与无效用户返回不同响应)
- [ ] 测试密码复杂度要求
- [ ] 测试账户锁定机制
- [ ] 测试暴力破解防护(速率限制、CAPTCHA)
- [ ] 测试密码重置功能(令牌可预测性、邮箱验证)
- [ ] 测试 MFA 实现(绕过技术、缺失 enforcement)
- [ ] 测试会话管理(会话固定、会话 ID 随机性)
- [ ] 测试凭据填充防护
- [ ] 检查 URL 参数或 JavaScript 源码中的凭据
### 授权测试
- [ ] 测试水平权限提升(访问其他用户数据)
- [ ] 测试垂直权限提升(普通用户访问管理员功能)
- [ ] 测试 IDOR(不安全的直接对象引用)
- [ ] 测试 API 授权(端点缺少认证、令牌验证不当)
- [ ] 测试路径遍历(../../../etc/passwd)
- [ ] 测试强制浏览(访问 /admin、/backup、/debug)
### 输入验证测试
- [ ] SQL 注入(SQLMap、手动载荷)
- 错误型
- 联合型
- 盲型(布尔型、时间型)
- 二阶型
- [ ] 测试跨站脚本(XSS)
- 反射型 XSS
- 存储型 XSS
- DOM 型 XSS
- [ ] 测试跨站请求伪造(CSRF)
- [ ] 测试服务器端请求伪造(SSRF)
- [ ] 测试 XML 外部实体(XXE)注入
- [ ] 测试服务器端模板注入(SSTI)
- [ ] 测试命令注入(OS 命令、LDAP、XPATH)
- [ ] 测试反序列化漏洞
- [ ] 测试文件上传功能
- 允许的文件类型(绕过扩展名过滤)
- 文件内容校验(魔数)
- 上传路径(能否上传至 Web 可访问目录)
- 文件名规范化(路径遍历在文件名中)
### 业务逻辑测试
- [ ] 测试速率限制绕过
- [ ] 测试价格篡改(请求中修改价格)
- [ ] 测试数量篡改(负数、溢出)
- [ ] 测试流程绕过(跳过多步骤流程中的步骤)
- [ ] 测试竞态条件(并发请求)
- [ ] 测试优惠券/促销码滥用
### API 专项测试
- [ ] 测试 API 身份认证(缺少认证、令牌验证不当)
- [ ] 测试过度数据暴露(API 返回超出必要的数据)
- [ ] 测试批量赋值(发送未预期参数)
- [ ] 测试所有端点的速率限制
- [ ] 测试 BOLA(破损的对象级别授权)——OWASP API Top 10 #1
- [ ] 检查 API 文档是否暴露(/swagger、GraphQL 自省)
## 5. 无线网络测试
- [ ] 识别所有 SSID(包括隐藏网络)
- [ ] 确定加密类型(WPA3、WPA2、WPA、WEP、开放)
- [ ] 测试 WPA2 握手捕获与离线破解
- [ ] 测试 WPS PIN 暴力破解(Reaver/Bully)
- [ ] 测试邪恶双子/伪造 AP 攻击
- [ ] 测试访客网络隔离(访客能否访问内部资源)
- [ ] 测试 802.1X EAP 降级攻击
- [ ] 测试 KARMA/已知信标对客户端设备的攻击
- [ ] 验证无线 IDS/IPS 检测能力
- [ ] 检查无线网络的管理界面访问
## 6. 云安全测试
### AWS
- [ ] 测试 IAM 策略误配置(权限过大)
- [ ] 测试公共 S3 存储桶(列出、读取、写入)
- [ ] 测试应用程序对 EC2 元数据服务的访问(SSRF 至 169.254.169.254)
- [ ] 测试安全组规则(权限过大的入站规则)
- [ ] 测试暴露的 RDS / Elasticsearch 等托管服务
- [ ] 测试 Lambda 函数权限与环境变量
- [ ] 检查 CloudTrail 日志(是否启用、是否被监控)
- [ ] 检查代码中是否存在访问密钥
### Azure
- [ ] 测试 Entra ID(Azure AD)配置
- [ ] 测试 Azure RBAC 角色是否过于宽松
- [ ] 测试暴露的存储账户(Blob、Table、Queue)
- [ ] 测试 NSG 规则是否过于宽松
- [ ] 测试 Azure Key Vault 访问策略
- [ ] 检查 Azure Activity Log 监控
- [ ] 测试托管身份权限
### GCP
- [ ] 测试 IAM 策略绑定
- [ ] 测试公共 Cloud Storage 存储桶
- [ ] 测试防火墙规则
- [ ] 测试暴露的 BigQuery 数据集
- [ ] 检查审计日志配置
- [ ] 测试服务账户密钥管理
### 通用云
- [ ] 测试跨账户/跨租户访问
- [ ] 测试无服务器函数配置是否不安全
- [ ] 检查容器注册表是否公开访问
- [ ] 测试 Kubernetes/EKS/AKS/GKE 的 RBAC 与 Pod 安全策略
## 7. 社会工程测试
### 钓鱼活动
- [ ] 制定与参与范围一致的钓鱼话术
- [ ] 注册相似域名(如在范围内)
- [ ] 设置钓鱼基础设施(GoPhish 或类似工具)
- [ ] 创建着陆页(凭据收集或载荷投递)
- [ ] 向目标列表发送钓鱼邮件
- [ ] 跟踪:投递率、打开率、点击率、凭据提交率
- [ ] 记录时间线与结果
### 语音钓鱼(Vishing)
- [ ] 制定话术与脚本
- [ ] 确定目标(前台、帮助台、高管)
- [ ] 进行通话(如法律允许且已获批准则录音)
- [ ] 跟踪:拨打电话次数、披露的信息、获得的访问权限
- [ ] 记录发现与意识差距
### 物理(如在范围内)
- [ ] 尝试尾随/蹭门进入
- [ ] 测试门禁卡控制
- [ ] 测试未锁的工作站
- [ ] 投放 U 盘(USB Rubber Ducky / HID 攻击,如已批准)
- [ ] 检查公共区域是否遗留敏感文件
- [ ] 测试是否可进行垃圾搜寻(如已批准)
- [ ] 用照片记录所有物理安全发现
## 8. Active Directory / 身份测试
- [ ] 枚举域用户、组与计算机(BloodHound、PowerView)
- [ ] 识别通往域管理员的攻击路径(BloodHound)
- [ ] Kerberoasting(请求服务账户的 TGS 票据,离线破解)
- [ ] AS-REP Roasting(查找未启用预认证的账户)
- [ ] 密码喷洒(同一密码对所有用户,尊重锁定策略)
- [ ] 检查不受约束的委派
- [ ] 检查约束委派滥用
- [ ] 测试 DCSync 权限(非 DA 账户是否具备复制权限)
- [ ] 检查 LAPS 部署与访问控制
- [ ] 检查 GPP(组策略首选项)密码
- [ ] 检查证书配置错误(AD CS — ESC1 至 ESC8)
- [ ] 测试 Silver Ticket / Golden Ticket 可行性
- [ ] 检查存在但已禁用的账户是否仍具权限
- [ ] 审查密码策略强度
## 9. 后利用
获得访问权限后,在范围与 ROE 内展示业务影响。
- [ ] 确定当前用户上下文与权限
- [ ] 尝试提权至本地管理员 / root
- [ ] 尝试横向移动到其他系统
- [ ] 尝试域权限提升(至域管理员)
- [ ] 访问敏感数据(PII、PHI、财务数据、CUI——在 ROE 范围内)
- [ ] 模拟数据 exfiltration(演练,不实际外传真实数据)
- [ ] 建立持久化(记录方法,并在清理时移除)
- [ ] 跳转到隔离网络(演示分段绕过)
- [ ] 记录从初始访问到目标的完整攻击链
### 清理检查清单
- [ ] 移除上传到目标系统的所有工具
- [ ] 移除创建的所有测试账户
- [ ] 移除所有持久化机制
- [ ] 移除所有后门、反向 Shell 与 Web Shell
- [ ] 恢复任何被修改的配置
- [ ] 向客户提供测试期间所做的所有更改清单
- [ ] 从目标系统删除所有测试数据
## 10. 报告
### 报告结构
一份专业的渗透测试报告应包含以下部分:
1. **执行摘要** — 业务层面概述、风险评级、关键发现(1–2 页)
2. **范围与方法** — 测试内容、方法、规则约定
3. **发现摘要** — 按严重性分类的汇总表/图表
4. **详细发现** — 每个发现的描述、证据、影响与修复建议
5. **攻击叙事** — 从侦察到目标的完整攻击链(这使渗透测试的价值超越漏洞扫描)
6. **修复路线图** — 按优先级排序的修复计划,包含快速修复与战略改进
7. **附录** — 原始扫描输出、工具日志、支撑证据
### 发现严重性评级
| 等级 | 定义 | 业务影响 |
|------|------|----------|
| **严重** | 可被立即利用,影响严重 | 完全系统沦陷、大量数据泄露、业务中断 |
| **高** | 可被利用,影响显著 | 单点系统沦陷、敏感数据暴露 |
| **中** | 可被利用,影响中等或需串联 | 有限数据暴露额外步骤才能完全利用 |
| **低** | 小问题或信息提示 | 最佳实践违规,直接影响小 |
| **信息** | 观察项,不可直接利用 | 安全改进机会 |
### 发现模板
```
FINDING: [Title]
=================
Severity: [Critical / High / Medium / Low]
CVSS Score: [If applicable]
Affected Systems: [List]
CWE: [CWE-XXX if applicable]
Description:
[Technical description of the vulnerability]
Steps to Reproduce:
1. [Step-by-step reproduction instructions]
2.
3.
Evidence:
[Screenshots, terminal output, proof of exploitation]
Impact:
[Business impact -- what could an attacker achieve?]
Remediation:
[Specific remediation steps]
References:
[CVEs, OWASP references, vendor advisories]
```
## 11. 工具参考
### 侦察
| 工具 | 用途 | 链接 |
|------|------|------|
| Nmap | 端口扫描、服务识别 | nmap.org |
| Amass | 子域名枚举 | github.com/owasp-amass/amass |
| Subfinder | 快速子域名发现 | github.com/projectdiscovery/subfinder |
| theHarvester | 邮箱与子域名收集 | github.com/laramies/theHarvester |
| Shodan | 互联网设备搜索 | shodan.io |
### 攻击利用
| 工具 | 用途 | 链接 |
|------|------|------|
| Metasploit | 攻击框架 | metasploit.com |
| CrackMapExec | Windows/AD 攻击套件 | github.com/byt3bl33d3r/CrackMapExec |
| Impacket | 网络协议攻击 | github.com/fortra/impacket |
| SQLMap | SQL 注入自动化 | sqlmap.org |
| Burp Suite | Web 应用测试 | portswigger.net |
### Active Directory
| 工具 | 用途 | 链接 |
|------|------|------|
| BloodHound | AD 攻击路径分析 | github.com/BloodHoundAD/BloodHound |
| Rubeus | Kerberos 滥用 | github.com/GhostPack/Rubeus |
| Certipy | AD CS 攻击 | github.com/ly4k/Certipy |
| PowerView | AD 枚举 | github.com/PowerShellMafia/PowerSploit |
| Mimikatz | 凭据提取 | github.com/gentilkiwi/mimikatz |
### 无线
| 工具 | 用途 | 链接 |
|------|------|------|
| Aircrack-ng | 无线审计套件 | aircrack-ng.org |
| Bettercap | 网络攻击、WiFi | bettercap.org |
| Reaver | WPS 暴力破解 | github.com/t6x/reaver-wps-fork-t6x |
| EAPHammer | WPA2-Enterprise 攻击 | github.com/s0lst1c3/eaphammer |
### 报告
| 工具 | 用途 | 链接 |
|------|------|------|
| Ghostwriter | 渗透测试报告平台 | github.com/GhostManager/Ghostwriter |
| Dradis | 协作式报告 | dradis.com |
| PlexTrac | 渗透测试管理与报告 | plextrac.com |
| SysReptor | 安全报告生成 | github.com/Syslifters/sysreptor |
## 12. 合规要求
### 各框架的渗透测试要求
| 框架 | 要求 | 频率 | 关键细节 |
|------|------|------|----------|
| **PCI DSS 4.0** | 要求 11.4:外部与内部渗透测试 | 年度 + 重大变更后 | 必须遵循行业认可的方法(PTES、OWASP、NIST) |
| **CMMC Level 2** | CA.L2-3.12.1:定期安全评估 | 定期(建议年度) | 必须评估所有 CUI 系统 |
| **HIPAA** | 164.308(a)(8):技术评估 | 环境变更后 | 渗透测试为最佳实践,非强制 |
| **SOC 2** | CC4.1/CC7.1:控制测试 | 年度 | 审计师通常期望 |
| **ISO 27001** | A.18.2.3:技术合规审查 | 按风险处置计划定义 | 渗透测试是常见实现方式 |
| **FedRAMP** | RA-5(5):特权访问分析 | 年度 | 需第三方评估者 |
| **NIST CSF** | DE.CM-8:执行漏洞扫描 | 按定义 | 渗透测试扩展了漏洞扫描 |
| **GDPR** | 第 32(1)(d) 条:定期测试安全性 | 定期 | 渗透测试证明“测试、评估与评审” |
## 关于
由 [Petronella Technology Group](https://petronellatech.com) 创建,总部位于北卡罗来纳州罗利市,是一家专注于网络安全与托管 IT 服务的公司。我们提供渗透测试、漏洞评估和红队演练服务,服务于医疗、国防、金融与专业服务等行业。
CMMC-RP 认证 | 自 2003 年起 BBB A+ 评级 | 23 年以上网络安全经验
联系:**(919) 348-4912** | [petronellatech.com/contact-us](https://petronellatech.com/contact-us/)
### 相关资源
- [CMMC 合规指南](https://petronellatech.com/compliance/cmmc-compliance-guide/)
- [网络安全服务](https://petronellatech.com/cyber-security/)
- [虚拟 CISO](https://petronellatech.com/solutions/vciso/)
- [紧急 IT 支持](https://petronellatech.com/contact-us/emergency-room/)
- [免费安全评估](https://petronellatech.com/contact-us/)
## 专业合规服务
如需渗透测试或安全评估支持,**Petronella Technology Group** 提供全面的网络安全服务:
- [网络安全服务](https://petronellatech.com/cybersecurity/) — 托管安全与评估
- [CMMC 合规指南](https://petronellatech.com/compliance/cmmc-compliance-guide/) — 完整的 CMMC Level 2 准备
- [HIPAA 合规服务](https://petronellatech.com/compliance/hipaa-compliance/) — 医疗安全评估
- [AI 驱动的安全](https://petronellatech.com/ai/ai-services/) — 具备内置合规功能的 AI 基础设施
**Petronella Technology Group** 是 CMMC-RP 认证的网络安全公司,总部位于北卡罗来纳州罗利市。整个团队均持有 CMMC 注册从业者资质。[联系我们](https://petronellatech.com/contact-us/) 或致电 (919) 348-4912。
## 许可证
MIT 许可证 — 详见 [LICENSE](LICENSE)。
标签:ESC8, NIST SP 800-115, PTES, 反取证, 安全合规, 安全评估, 应用层测试, 报告框架, 数据展示, 社会工程学, 红队, 结构化检查表, 网络代理, 网络安全, 网络渗透测试, 隐私保护