给AI渗透助手装上”安全带”——不锁油门,只锁刹车|AIAgent在渗透测试场景下既能放手测试,又不会脱库、删库、留后门

admin 2026-06-23 06:06:59 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: PentestGuard项目为AI渗透测试助手设计Skill+Hook双层约束系统,允许正常扫描工具操作但拦截危险行为。系统提供strict/redteam/off三档模式,通过PAUSE机制和用户授权标记平衡测试效率与安全,精准区分探测型PoC与破坏性操作,并内置垃圾洞过滤功能提升漏洞报告质量。 综合评分: 89 文章分类: 渗透测试,红队,安全工具,安全运营,AI安全


cover_image

给 AI 渗透助手装上”安全带”——不锁油门,只锁刹车 | AI Agent 在渗透测试场景下既能放手测试,又不会脱库、删库、留后门

aalhea aalhea

夜组安全

2026年6月22日 07:30 青海

在小说阅读器读本章

去阅读

免责声明

由于传播、利用本公众号夜组安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号夜组安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!所有工具安全性自测!!!VX:NightCTI

朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把夜组安全设为星标”,否则可能就看不到了啦!

Skill介绍

给 AI 渗透助手装上”安全带”——不锁油门,只锁刹车

Skill + Hook 双层约束系统,让 Claude Code / AI Agent 在渗透测试场景下既能放手测试,又不会脱库、删库、留后门

📖 这个项目解决什么问题

🛡️ Pentest Guard让 AI 帮你做渗透测试时,你会遇到两类痛点:

| 痛点 | 表现 | 后果 | | — | — | — | | 😇 AI 太”乖” | “对不起,我不能帮你执行 sqlmap” | 正常测试都做不了 | | 😈 AI 太”野” | sqlmap --dump-all 直接拖库 / rm -rf 清日志 | 一个 token 进去踩缝纫机 |

Pentest Guard 的答案:只锁刹车,不锁油门

  • ✅ AI 可以放手做侦察、扫描、PoC、利用链构造——测试思路不被限制
  • ✅ 正常渗透工具(sqlmap、nmap、ffuf、nuclei)全放行
  • ✅ sqlmap --dump --start 1 --stop 3 合规取证放行
  • ✅ localhost / 测试表 / Docker 操作自动 bypass
  • 🛑 脱库、删库、留后门、横向 → 暂停 + 询问用户
  • 🛑 fork bomb、mkfs、dd 覆写 → 硬阻断
  • 🔓 用户拥有最终决定权:明确授权后 -- user-confirmed 一律放行

⏱️ 30 秒看懂

# 你说:测下这个接口
👤 你:帮我跑 sqlmap 测 https://target.com/api/search

# strict 模式:常规扫描放行
🤖 AI:sqlmap -u "https://target.com/api/search" --batch --level 3
       ✓ 发现 keyword 参数存在时间盲注

# 你说:拖 users 表
👤 你:那拖一下 users 表

# Hook 触发 PAUSE,AI 不会直接拖库
🤖 AI:⏸️ 红线提示:全量 dump 触发数据外带红线。
       合规替代:
         1. 加 --start 1 --stop 3 限 3 条样本
         2. 或仅取 version() 证明能拖
       你确认要全量 dump 吗?

# 你说:那就 3 条样本吧
👤 你:先取 3 条样本看看

🤖 AI:sqlmap -u "..." --dump -T users --start 1 --stop 3
       ✓ 取得 3 条样本(已脱敏),未尝试全量 dump

# 你说:必须全量(你拥有最终决定权)
👤 你:必须全量 dump,我授权

🤖 AI:sqlmap -u "..." --dump -T users -- user-confirmed
       ✓ Hook 放行(用户明确授权)

📚 术语速查(新手先看这里)

| 术语 | 含义 | | — | — | | Skill | Claude Code 的能力包,本质是一份 Markdown 规则文件,AI 加载后按规则行事 | | Hook | 在 AI 工具调用前/后执行的脚本,类似 Git hooks。本项目用 PreToolUse hook | | strict / redteam / off | 三档严格度,控制 hook 拦截范围 | | PAUSE | Hook 给 AI 的暂停信号(exit 2 + 提示),AI 看到后必须询问用户 | | HARD-BLOCKED | Hook 的硬阻断信号,仅用于 fork bomb / mkfs 等不可逆操作 | | bypass marker | 命令中的标记字符串(如 -- user-confirmed),命中即放行 | | 垃圾洞 | 误报率极高的低质量发现(CORS、安全头缺失等),默认不报 |


🏗️ 工作原理:三层防御架构

📌 若下图不显示:GitHub 主页原生支持 Mermaid,但 VS Code / Typora / 部分博客平台需插件。可下滑查看 ASCII 备份图。

三层各自负责什么

| 层 | 实现 | 角色 | 失效后果 | | — | — | — | — | | 🥇 Skill | SKILL.md 教 AI 行为 | 教育者:让 AI 自觉暂停 | AI 可能”忘记”规则 | | 🥈 Hook | pentest-guard-hook.py 执行层拦截 | 兜底者:AI 忘了也拦得住 | 安全网失效 | | 🥉 用户 | -- user-confirmed 标记 | 最终决定权 | 用户被剥夺授权能力 |

三层缺一不可:Skill 让 AI 大多数时候自觉暂停,Hook 在 AI 遗忘时兜底,用户始终掌握最终决定权。

模式对比

| 模式 | 适用场景 | 拦截范围 | | — | — | — | | 🔒 strict(默认) | SRC / 众测 / Bug bounty | 破坏性 SQL + 横向 + 持久化 + 高速扫描 | | ⚔️ redteam | 红队 / HVV / 已授权内测 | 仅破坏性 SQL + 拖库 + DoS + 生产钓鱼 | | 💤 off | 本地实验 / 自有靶机 | 完全关闭 |

📊 行为矩阵

一眼看懂什么放行、什么暂停、什么硬阻断。

| 操作 | 🔒 strict | ⚔️ redteam | + -- user-confirmed | | — | — | — | — | | sqlmap --batch --level 3 | ✅ | ✅ | ✅ | | sqlmap --dump --start 1 --stop 3 (合规取证) | ✅ | ✅ | ✅ | | sqlmap --dump (全量拖库) | ⏸️ | ⏸️ | ✅ | | nmap -sV target.com | ✅ | ✅ | ✅ | | nmap --top-ports 1000 (高速全段) | ⏸️ | ✅ | ✅ | | DROP TABLE users | ⏸️ | ⏸️ | ✅ | | mysqldump -A | ⏸️ | ⏸️ | ✅ | | crackmapexec smb 10.0.0.0/24 | ⏸️ | ✅ | ✅ | | mimikatz.exe | ⏸️ | ✅ | ✅ | | :(){ :|:& }; (fork bomb) | 🛑 | 🛑 | ✅ | | mkfs.ext4 /dev/sda | 🛑 | 🛑 | ✅ | | curl http://127.0.0.1:8080 | ✅ | ✅ | ✅ | | docker run alpine ... | ✅ | ✅ | ✅ |

图例:✅ 放行 · ⏸️ PAUSE 暂停询问 · 🛑 HARD-BLOCKED 硬阻断

🎯 精准边界(v2 新增:避免误伤正常渗透)

早期版本把 PoC 包数、Webshell 上传、弱口令爆破一刀切卡死,导致正常渗透都做不了。 v2 按”PoC 性质”而非”统一阈值”分级,更贴近实战。

PoC 包数分级

| PoC 类型 | 上限 | 例子 | | — | — | — | | 探测型 PoC | ≤ 20 包 | XSS 弹窗、SSRF DNSLog、未授权访问探测 | | 副作用取证 | ≤ 3 次 | RCE 执行 whoami、SQLi 取 version() | | 破坏型 PoC | 🚫 永远不做 | DROP / DELETE / 写文件 |

Webshell 上传规则

| 场景 | 是否允许 | | — | — | | 上传 <?php system($_GET['cmd']); ?> 验证文件上传漏洞 | ✅ | | 用完即删(验证完立刻删掉 webshell 文件) | ✅(推荐) | | 挂黑页 / 留攻击者标语 | 🚫 | | 改名隐藏作持久化(如 .config.php.swp) | 🚫 | | 写计划任务 / 反弹 shell / 自动加载 | 🚫 | | 混淆型后门(base64_decode + eval) | 🚫(Hook 硬拦) |

弱口令爆破规则

| 场景 | 是否允许 | | — | — | | 常见弱口令小字典(≤20 组,如 admin/admin、root/root) | ✅ | | 限速 ≤1 req/s(不触发 WAF / 锁定) | ✅ | | 仅针对自己控制或授权的账号 | ✅ | | 大字典(rockyou.txt 等) | 🚫 | | 多线程 / 高并发(hydra -t 64、burp intruder 50 threads) | 🚫(Hook 硬拦) | | 触发账号锁定后继续尝试 | 🚫 | | 爆破他人真实账号(非自演) | 🚫 |

🎯 使用方式

命令速查

| 命令 | 作用 | | — | — | | /pentest-guard | 加载完整规则 | | /pentest-guard status | 查看当前模式 + Hook 状态 | | /pentest-guard mode strict | 切换至 strict(SRC 默认) | | /pentest-guard mode redteam | 切换至 redteam(红队授权) | | /pentest-guard mode off | 完全关闭 | | /pentest-guard check | 对当前命令做红线自检 | | /pentest-guard report | 审查待提交 finding | | /pentest-guard refresh | 重读速查卡(长会话防遗忘) | | /pentest-guard confirm | 单次授权刚才被 PAUSE 的操作 |

用户授权标记(按强度递增)

| 标记 | 适用场景 | 强度 | | — | — | — | | -- sandbox-only | 本地测试环境 | ⭐ | | -- user-controlled test environment | 测试环境 | ⭐ | | -- local-test | localhost 操作 | ⭐ | | -- authorized-redteam | 红队授权场景 | ⭐⭐ | | -- user-confirmed | 用户明确授权的任何操作 | ⭐⭐⭐ |

-- user-confirmed 是最终逃生口:任何操作只要带这个标记都会放行,包括 fork bomb、DROP TABLE、sqlmap –dump。用户承担全部责任。

💬 真实对话示例

示例 1:众测项目,AI 主动暂停

👤 用户:帮我跑 sqlmap 拖这个站的 users 表

🤖 AI:
红线提示:全量 dump 触发数据外带红线。

合规替代方案:
&nbsp; 1. 加 --start 1 --stop 3 限 3 条样本取证
&nbsp; 2. 或仅取 version() / current_database() 证明能拖

你确认要全量 dump 吗?确认的话我加 -- user-confirmed 执行。

👤 用户:那就先取 3 条样本看看吧

🤖 AI:(合规取证直接放行)
sqlmap -u&nbsp;"https://target.com/api/search?keyword=test"&nbsp;\
&nbsp; --dump -T users --start 1 --stop 3

✓ 取得 3 条样本(已脱敏)
✓ 数据库版本:MySQL 5.7.34
✓ 表存在 admin 用户(用户名前缀 ad****)
未尝试全量 dump。

示例 2:红队 HVV,切换模式

👤 用户:切换到红队模式

🤖 AI:要求确认授权依据(合同 / HVV 项目 / safe-harbor 条款)。

👤 用户:合同号 HVV-2024-0823,已授权完整后渗透

🤖 AI:(写入模式文件 = redteam)
已切换。下列工具现在直接放行:
&nbsp; - crackmapexec / psexec / wmiexec(横向)
&nbsp; - mimikatz / secretsdump(凭据,非 -just-dc)
&nbsp; - masscan / nmap 高速扫描

但以下仍会 PAUSE:
&nbsp; - DROP / DELETE / TRUNCATE
&nbsp; - sqlmap --dump 无 --stop

👤 用户:拿 mimikatz 抓下本机凭据

🤖 AI:(redteam 模式直接放行,无需 user-confirmed)
mimikatz.exe&nbsp;"privilege::debug""sekurlsa::logonpasswords""exit"

示例 3:误报抑制

👤 用户:扫完了,看看有哪些漏洞

🤖 AI:(自动加载 /pentest-guard)
扫描结果按红线清单过滤:

❌ 不报(垃圾洞):
&nbsp; - CORS 配置宽松(无 PoC 数据外带证明)
&nbsp; - X-Frame-Options 缺失
&nbsp; - Server: nginx 版本号暴露

⚠️ 待验证:
&nbsp; - /admin 路径未授权访问(需 PoC 证明越权)
&nbsp; - search 接口时间盲注(需 3 包差分证明)

✓ 已证明(可写报告):
&nbsp; - /api/user/{id} IDOR(A 账号可读 B 账号订单,附 3 次复现)

更多示例见 examples/usage-scenarios.md

🚫 垃圾洞清单(误报抑制)

AI 会把所有”现象”都报成漏洞,让审核员淹没在低质量 finding 里。Pentest Guard 主动过滤。

以下类型绝对不报(除非附带完整 PoC + 已证明影响):

| 类型 | 为什么是垃圾洞 | | — | — | | CORS 配置 | 配置宽松 ≠ 实际可窃取数据 | | HTTP 安全头缺失 | 防御建议,不是漏洞 | | 版本号 / Server banner | 信息暴露 ≠ 可利用 | | Self-XSS | 只能弹自己,无影响 | | Sourcemap 泄露 | 调试信息,链不上具体危害 | | SSL/TLS 常规警告 | 配置问题,非漏洞 | | Rate limiting 缺失 | 防御建议 | | 开放重定向(无链式利用) | 单点无影响 |

工具获取

点击关注下方名片进入公众号

回复关键字【260622】获取下载链接

往期精彩

[Burp Suite 验证码 DOS 漏洞检测插件 | 利用验证码图片的隐藏尺寸参数进行DDos攻击

2026-06-18

](https://mp.weixin.qq.com/s?_biz=Mzk0ODM0NDIxNQ==&mid=2247497092&idx=1&sn=743fa6c182c96e780344513bdb5192b3&scene=21#wechatredirect)[以一烛之光,照见隐秘  | 主动指纹嗅探、威胁情报检索、编解码加解密、JS加密绕过Web爆破

2026-06-17

](https://mp.weixin.qq.com/s?_biz=Mzk0ODM0NDIxNQ==&mid=2247497078&idx=1&sn=73061cd0c05b3c8b40cb2c81a78c553e&scene=21#wechatredirect)[牛逼!AI 驱动的后渗透综合管理平台,深度集成 LLM Agent,175 个工具 + 21 个技能,开箱即用。

2026-06-16

](https://mp.weixin.qq.com/s?_biz=Mzk0ODM0NDIxNQ==&mid=2247497040&idx=1&sn=bb0d6936f648c2ffe72f92009c3035be&scene=21#wechatredirect)[实用!跨平台进程内存扫描工具 | 应急响应与安全分析 快速定位可疑连接、进程

2026-06-15

](https://mp.weixin.qq.com/s?_biz=Mzk0ODM0NDIxNQ==&mid=2247497032&idx=1&sn=208d754e7fc71b572f6176ec32899c7a&scene=21#wechatredirect)[看着很吊!QQ/微信小程序反编译逆向/红队攻击面分析/快速漏洞/检查/筛查

2026-06-12

](https://mp.weixin.qq.com/s?_biz=Mzk0ODM0NDIxNQ==&mid=2247497026&idx=1&sn=2f30112be8c0a864073b4cfe89bd422b&scene=21#wechatredirect)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:夜组安全 aalhea aalhea《给 AI 渗透助手装上”安全带”——不锁油门,只锁刹车 | AI Agent 在渗透测试场景下既能放手测试,又不会脱库、删库、留后门》

评论:0   参与:  0