# Pentest Checklist

> 提供渗透测试规划、执行和后续跟进的完整清单。确保充分准备、合理界定范围、有效修复发现的漏洞。当用户要求'渗透测试清单'、'安全测试检查表'、'pentest准备'时使用。

- Skill: `kscz0000/pentest-checklist` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kscz0000/pentest-checklist`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kscz0000/pentest-checklist/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kscz0000 (https://skillmd.com/u/kscz0000)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/kscz0000/pentest-checklist

---


> 仅限授权使用：本技能仅用于授权的安全评估、防御性验证或受控教育环境。

# 渗透测试清单

## 目的

提供渗透测试规划、执行和后续跟进的完整清单。确保充分准备、合理界定范围、有效修复发现的漏洞。

## 前置条件

- 明确的测试业务目标
- 目标环境信息
- 预算和时间约束
- 利益相关者联系方式和授权
- 法律协议和范围文档

## 输出/交付物

- 界定的渗透测试范围和目标
- 准备好的测试环境
- 安全监控数据
- 漏洞发现报告
- 修复计划和验证

## 核心工作流

### 阶段1：范围界定

#### 定义目标

- [ ] **明确测试目的** - 确定目标（发现漏洞、合规性、客户保障）
- [ ] **验证渗透测试必要性** - 确保渗透测试是正确的解决方案
- [ ] **对齐结果与目标** - 定义成功标准

**参考问题：**
- 为什么要做这次渗透测试？
- 期望得到什么具体结果？
- 如何处理发现的问题？

#### 了解测试类型

| 类型 | 目的 | 范围 |
|------|------|------|
| 外部渗透测试 | 评估外部攻击面 | 面向公众的系统 |
| 内部渗透测试 | 评估内部威胁风险 | 内部网络 |
| Web应用测试 | 发现应用漏洞 | 特定应用程序 |
| 社会工程 | 测试人员安全 | 员工、流程 |
| 红队演练 | 完整对抗模拟 | 整个组织 |

#### 枚举可能的威胁

- [ ] **识别高风险区域** - 哪里可能发生损害？
- [ ] **评估数据敏感性** - 哪些数据可能被泄露？
- [ ] **审查遗留系统** - 旧系统通常存在漏洞
- [ ] **映射关键资产** - 优先确定测试目标

#### 定义范围

- [ ] **列出范围内系统** - IP、域名、应用程序
- [ ] **定义范围外项目** - 需要避开的系统
- [ ] **设定测试边界** - 允许使用哪些技术？
- [ ] **记录排除项** - 第三方系统、生产数据

#### 预算规划

| 因素 | 考量 |
|------|------|
| 资产价值 | 价值越高 = 投入越大 |
| 复杂度 | 系统越多 = 时间越长 |
| 所需深度 | 全面测试成本更高 |
| 品牌价值 | 知名公司收费更高 |

**预算现实检查：**
- 廉价渗透测试通常效果不佳
- 预算应与资产关键性匹配
- 考虑持续测试 vs 一次性测试

### 阶段2：环境准备

#### 准备测试环境

- [ ] **生产环境 vs 测试环境决策** - 确定在哪里测试
- [ ] **设定测试限制** - 生产环境禁止DoS测试
- [ ] **安排测试时间窗口** - 最小化业务影响
- [ ] **创建测试账户** - 提供适当的访问级别

**环境选项：**
```
Production  - Realistic but risky
Staging     - Safer but may differ from production
Clone       - Ideal but resource-intensive
```

#### 运行初步扫描

- [ ] **执行漏洞扫描器** - 先发现已知问题
- [ ] **修复明显漏洞** - 不要浪费渗透测试时间
- [ ] **记录现有问题** - 与测试人员共享

**常用预扫描工具：**
```bash
# Network vulnerability scan
nmap -sV --script vuln TARGET

# Web vulnerability scan
nikto -h http://TARGET
```

#### 审查安全策略

- [ ] **验证合规要求** - GDPR、PCI-DSS、HIPAA
- [ ] **记录数据处理规则** - 敏感数据处理流程
- [ ] **确认法律授权** - 获得书面许可

#### 通知托管提供商

- [ ] **检查提供商政策** - 允许哪些测试？
- [ ] **提交授权请求** - AWS、Azure、GCP要求
- [ ] **记录批准** - 保留记录

**云提供商政策：**
- AWS: https://aws.amazon.com/security/penetration-testing/
- Azure: https://docs.microsoft.com/security/pentest
- GCP: https://cloud.google.com/security/overview

#### 冻结开发

- [ ] **测试期间停止部署** - 保持环境一致
- [ ] **记录当前版本** - 记录系统状态
- [ ] **避免关键补丁** - 除非安全紧急情况

### 阶段3：专业能力选择

#### 寻找合格的渗透测试人员

- [ ] **寻求推荐** - 向可信赖的来源咨询
- [ ] **验证资质** - OSCP、GPEN、CEH、CREST
- [ ] **检查参考** - 与以前的客户交流
- [ ] **匹配专业领域与范围** - Web、网络、移动端专家

**评估标准：**

| 因素 | 需要询问的问题 |
|------|----------------|
| 经验 | 从业年限、类似项目经验 |
| 方法论 | OWASP、PTES、自定义方法 |
| 报告 | 报告样本、详细程度 |
| 沟通 | 可用性、更新频率 |

#### 定义方法论

- [ ] **选择测试标准** - PTES、OWASP、NIST
- [ ] **确定访问级别** - 黑盒、灰盒、白盒
- [ ] **商定技术** - 手动测试 vs 自动化测试
- [ ] **设定沟通计划** - 更新和升级流程

**测试方法：**

| 类型 | 访问级别 | 模拟场景 |
|------|----------|----------|
| 黑盒 | 无信息 | 外部攻击者 |
| 灰盒 | 部分访问 | 有限权限的内部人员 |
| 白盒 | 完全访问 | 内部人员/详细审计 |

#### 定义报告格式

- [ ] **审查样本报告** - 确保质量满足需求
- [ ] **指定必需章节** - 执行摘要、技术细节
- [ ] **要求机器可读输出** - CSV、XML用于跟踪
- [ ] **商定风险评级** - CVSS、自定义评分

**报告应包含：**
- 面向管理层的执行摘要
- 带证据的技术发现
- 风险评级和优先级排序
- 修复建议
- 复测指导

### 阶段4：监控

#### 实施安全监控

- [ ] **部署IDS/IPS** - 入侵检测系统
- [ ] **启用日志记录** - 全面的审计跟踪
- [ ] **配置SIEM** - 集中式日志分析
- [ ] **设置告警** - 实时通知

**监控工具：**
```bash
# Check security logs
tail -f /var/log/auth.log
tail -f /var/log/apache2/access.log

# Monitor network
tcpdump -i eth0 -w capture.pcap
```

#### 配置日志记录

- [ ] **集中日志** - 从所有系统聚合
- [ ] **设定保留期限** - 保留日志用于分析
- [ ] **启用详细日志** - 应用程序和系统级别
- [ ] **测试日志收集** - 验证所有源正常工作

**需要监控的关键日志：**
- 认证事件
- 应用程序错误
- 网络连接
- 文件访问
- 系统变更

#### 监控异常工具

- [ ] **跟踪错误率** - 异常峰值表明正在测试
- [ ] **简报运维团队** - 区分测试和攻击
- [ ] **记录基线** - 正常活动 vs 渗透测试活动

#### 监视安全工具

- [ ] **审查IDS告警** - 区分渗透测试和真实攻击
- [ ] **监控WAF日志** - 跟踪被阻止的尝试
- [ ] **检查端点防护** - 杀毒软件检测

### 阶段5：修复

#### 确保备份

- [ ] **验证备份完整性** - 测试恢复
- [ ] **记录恢复流程** - 了解如何恢复
- [ ] **分离备份访问** - 保护免受测试影响

#### 预留修复时间

- [ ] **安排团队可用性** - 渗透测试后分析
- [ ] **安排修复实施** - 处理发现的问题
- [ ] **计划验证测试** - 确认修复有效

#### 测试期间补丁策略

- [ ] **通常避免打补丁** - 保持环境一致
- [ ] **关键问题例外** - 仅限安全紧急情况
- [ ] **沟通变更** - 通知渗透测试人员任何变更

#### 清理流程

- [ ] **删除测试产物** - 后门、脚本、文件
- [ ] **删除测试账户** - 移除渗透测试人员访问权限
- [ ] **恢复配置** - 返回原始状态
- [ ] **验证清理完成** - 审计所有变更

#### 安排下次渗透测试

- [ ] **确定频率** - 年度、季度、变更后
- [ ] **考虑持续测试** - 漏洞赏金、持续评估
- [ ] **为未来测试做预算** - 提前规划

**测试频率因素：**
- 发布频率
- 监管要求
- 风险容忍度
- 过往发现的严重程度

## 快速参考

### 渗透测试前清单

```
□ 范围已定义并记录
□ 已获得授权
□ 环境已准备
□ 已通知托管提供商
□ 团队已简报
□ 监控已启用
□ 备份已验证
```

### 渗透测试后清单

```
□ 报告已收到并审查
□ 发现已排定优先级
□ 修复已分配
□ 修复已实施
□ 验证测试已安排
□ 环境已清理
□ 下次测试已安排
```

## 约束

- 生产环境测试存在固有风险
- 预算限制影响测试深度
- 时间约束可能限制覆盖范围
- 测试人员专业水平差异显著
- 发现结果会快速过时

## 示例

### 示例1：快速范围界定

```markdown
**Target:** Corporate web application (app.company.com)
**Type:** Gray box web application pentest
**Duration:** 5 business days
**Excluded:** DoS testing, production database access
**Access:** Standard user account provided
```

### 示例2：监控设置

```bash
# Enable comprehensive logging
sudo systemctl restart rsyslog
sudo systemctl restart auditd

# Start packet capture
tcpdump -i eth0 -w /tmp/pentest_capture.pcap &
```

## 故障排除

| 问题 | 解决方案 |
|------|----------|
| 范围蔓延 | 记录并要求变更审批 |
| 测试影响生产 | 安排非工作时间，使用测试环境 |
| 发现有争议 | 提供详细证据，重新测试 |
| 修复延迟 | 按风险优先排序，设定截止日期 |
| 预算超支 | 明确定义范围，固定价格合同 |

## 何时使用
本技能适用于执行概述中描述的工作流或操作。

