---
name: pentest-flow
description: 渗透测试全流程编排 — 从信息收集到报告生成
routing:
  task_types: [pentest]
  role: fallback
---

# 渗透测试全流程 Skill

你当前正在执行渗透测试全流程。严格按照以下阶段顺序推进，每个阶段完成后向用户汇报发现并确认是否继续。

## 阶段一：被动信息收集

1. **目标画像构建**
   - 通过 fetch 工具访问目标首页，收集 HTTP 响应头信息
   - 识别 Web 服务器类型和版本（如 nginx/1.24.0, Apache/2.4.x）
   - 检测 WAF 指纹（分析响应头中的 WAF 标识）
   - 记录所有发现到目标画像

2. **技术栈识别**
   - 分析 HTML 源码中的框架标识（meta generator、JS 库、CSS 框架）
   - 检测 CMS 类型（WordPress、Joomla、自定义等）
   - 记录前端技术栈

3. **输出**
   - 目标画像文件（服务器、WAF、技术栈、开放面）

## 阶段二：主动信息收集

1. **端口与服务扫描**
   - 使用 fetch 工具探测常见端口（80, 443, 8080, 8443, 3000, 5000 等）
   - 分析 HTTP 响应判断服务类型
   - 记录所有可访问的 Web 端口

2. **目录与路径枚举**
   - 通过 fetch 请求常见路径（/admin, /api, /login, /robots.txt, /sitemap.xml）
   - 检查 /.git, /.env, /backup, /debug 等敏感路径
   - 记录所有发现的端点和路径

3. **API 端点发现**
   - 通过 js-reverse 工具分析 JS 文件中的 API 端点
   - 检查 /api/, /v1/, /v2/, /swagger, /docs 等路径
   - 记录所有发现的 API 端点

4. **输出**
   - 攻击面地图（开放端口、目录结构、API 端点）

## 阶段三：漏洞发现

1. **已知 CVE 匹配**
   - 基于已识别的服务版本，搜索已知 CVE
   - 优先关注 Critical 和 High 级别的 CVE
   - 记录匹配的 CVE 列表

2. **Web 漏洞检测**
   - SQL 注入：在参数中测试 `' OR 1=1--` 等基础 payload
   - XSS：在输入点测试 `<script>alert(1)</script>` 等基础 payload
   - LFI/RFI：测试 `../../../etc/passwd` 等路径穿越
   - SSRF：测试内部地址请求
   - 命令注入：测试 `;id` `|id` 等基础 payload

3. **配置缺陷检测**
   - 默认凭据：测试 admin/admin, root/root 等常见组合
   - 信息泄露：检查调试端点、错误信息、源码泄露
   - 未授权访问：测试无需认证的敏感接口

4. **输出**
   - 漏洞列表（含类型、严重等级、验证方法）

## 阶段四：漏洞利用

1. **PoC 构造**
   - 根据发现的漏洞类型构造验证 payload
   - 确保 payload 仅用于验证，不产生破坏性影响
   - 优先使用 WAF 绕过技巧（参考 waf-bypass Skill）

2. **漏洞验证**
   - 执行 PoC，记录请求和响应
   - 验证漏洞确实存在（基于响应特征判断）
   - 记录完整的验证步骤

3. **输出**
   - 利用证据（请求、响应、回显）
   - Python PoC 脚本（使用 requests 库）

## 阶段五：后渗透（可选）

1. **内网信息收集**
   - 收集内网网段、主机信息
   - 检测容器环境（Docker/K8s）
   - 收集数据库连接配置

2. **输出**
   - 内网拓扑信息
   - 后渗透报告

## 阶段六：报告生成

1. **结构化报告**
   - 项目概述（目标、时间、范围）
   - 执行摘要（高危发现、风险分布）
   - 详细发现（每个漏洞的验证步骤和证据）
   - 攻击路径（完整利用链）
   - 修复建议

2. **PoC 打包**
   - 每个 PoC 独立成文件
   - 包含使用说明
   - 参数化目标地址

3. **输出**
   - Markdown 渗透报告
   - Python PoC 脚本
