文章总结: Provena是一款证据驱动的红队渗透测试智能体CLI工具,可在无人工干预下自主完成DVWA靶场测试,覆盖SQL注入、XSS、命令注入等11类漏洞。其核心特性包括将决策过程外置为可回放的FGS图、每条结论附带可复现证据、允许自我修正并留档,且能将孤立发现串联成完整攻击链。工具支持超时中断机制,适合授权范围内的自动化渗透测试场景。
综合评分: 85
文章分类: 红队,渗透测试,AI安全,安全工具
Provena红队Agent开源! 证据驱动的安全渗透测试智能体
原创
chobits02
chobits02
C4安全
2026年9月17日 10:29
江苏
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
GRAPHITE MINIMAL · ARTICLE
QUOTE
Provena是从Code4Hack智能体中,抽离出来的轻量版本cli,没有交互界面。
此处测试过程中,我们使用了一台自建的 DVWA 靶机(公网 IP 已隐去),整个过程中都由AI接管,无任何人工干预。
01
SECTION 01
一、测试数据
| 项目 | 数值 |
| — | — |
| 目标 | DVWA v1.10 Development / Apache 2.4.25 (Debian) / MariaDB 10.1.26 |
| 形态 | cli命令行(provena run),无浏览器、无 Web 界面 |
| 模型活动轮数 | 6 |
| 耗时 | 约 30 分钟(完整流程) |
| 图事件 | 56 条 |
| 图节点 | 32 个 |
| 事实(Fact) | 18 条 |
| 智能体主动标记的发现 | 1 条 |
| 结构化漏洞记录 | 3 条 |
本次完整测试消耗 30 分钟、6 轮模型调用,完整将 DVWA 靶场的页面都跑了一遍:SQL 注入(含盲注)、XSS(反射 / 存储 / DOM)、命令注入、文件包含、文件上传、CSRF、弱会话 ID、爆破、不安全验证码、JavaScript 攻击、CSP。
以下是Provena测试的几个角度解析。
02
SECTION 02
二、角度一:把”过程”变成可回放的FGS图
Provena实测DVWA靶场,渗透测试前只提供了一个网址、用户名、密码,后续测试都由他自己完成,中间无中断。
这次运行产生 32 个FGS节点,分五类:
origin —— 1 个,起点
goal —— 1 个,本次目标
step —— 10 个,每一步动作
sub_goal —— 1 个,临时拆出的子目标
fact —— 18 个,客观观察
finding —— 1 个,值得追的线索
完整的 10 个 step 连接起来,就是这次测试的真实决策路径:
CODE
端口扫描发现服务
→ 登录 DVWA 并设置安全级别
→ SQL Injection 测试
→ XSS 测试
→ File Upload / CSRF / Weak Session IDs 等测试
→ Insecure CAPTCHA 与 JavaScript Security
→ 破解 SQLi 提取的密码哈希
→ 验证破解凭据可实际登录
→ 命令注入 + 配置文件提取 + MySQL 直连的数据窃取链验证
→ Medium 安全级别绕过验证
注意第 6 步那个 sub_goal:智能体在测 CAPTCHA 模块时,临时拆出一个”CSP Bypass 测试”的子目标,测完才回到主线。这是AI运行时自己决定的。
整张图是只追加的——56 条事件,没有任何一条修改过前面的节点。这意味着你可以把任意一次运行原样回放出来,能够完整看到AI的思考过程。
03
SECTION 03
三、角度二:每条结论都要有证据依据,而且它会推翻自己的结论
最终生成的报告里有 18 条事实,每一条都带可复现证据——包含完整请求、响应片段、命令回显、前后对比。
随便挑几条看一下:
目标主机可达性 —— 目标主机可达(Ping 36ms)。但 8080 端口连接超时,80 端口开放且是 Apache/2.4.6 (CentOS),显示的是默认 Apache 测试页,不是 DVWA。
DVWA 实际运行端口 —— DVWA v1.10 实际在 8080,Apache/2.4.25 (Debian)。80 端口那个是完全无关的另一台服务。
这条很值得说一下:工具没有”假设 80 就是目标”,而是先证伪再确认。
更关键的是下面这条:
「LFI+php://filter 读取 PHP 源码(源代码泄露) —— ……此前结论”allow_url_include 未启用,因此 php:// 伪协议不可用”已修正——php://filter 不依赖 allow_url_include,通过 base64 编码读取源码成功。」
它在报告里公开写下了自己前面的认知错误在哪里。
一个会自我否定、并且把否定过程留档的工具,比一个永远”我很确定”的工具可信得多。
04
SECTION 04
四、角度三:单点发现如何被串成攻击链
整个测试流程共发现 11 个模块有漏洞。
工具真正体现能力的是把孤立的事实串成链。这次跑出了两条完整的链:
链路 A:从注入到身份接管
CODE
SQL 注入导出 users 表全部凭据
→ 拿到 5 个 MD5 哈希
→ 离线字典破解,5 个全部还原为明文
→ 用其中的普通用户凭据实际登录成功
→ 页面确认 “You have logged in as ‘gordonb'”
链路 B:从命令注入到数据库直连
CODE
命令注入
→ cat 配置文件拿到数据库账号密码
→ 用该凭据直连 MySQL 查询
另外还验证了 Medium 安全级别的绕过:SQL 注入绕过(数字型注入不受转义影响)、命令注入用管道符绕过黑名单、以及反射型 XSS 的绕过——同样是读源码 + 实测双重确认。
05
SECTION 05
五、角度四:超时任务失败
流程中控制运行的状态参数是 max\_activities——如果它达到了活动轮数上限,还没有”跑完”的话,就会中断。
一次测试必须可预期地结束,不能无限烧 token。真实项目里可以把这个上限调大即可,但默认值下它就是会被中断。
∞
THE END
写在最后
Provena的工作流程:
1
把状态外置成图——模型的每一轮决策都写进一个只追加的结构里
2
让结论必须挂证据——没有请求/响应/回显的结论,进不了事实列表
3
允许它认错——修正留痕,而不是悄悄覆盖
项目地址:
https://github.com/youki992/Provena
发布包:
Releases 页面的 provena-v0.1.0-windows-amd64.zip 、provena-v0.1.0-linux-amd64.tar.gz
「⚠️ 合规声明
Provena 仅可用于你拥有或已获得明确书面授权的系统。本文所有测试均在一台自建的 DVWA 靶机上、在授权范围内完成。请勿将任何工具用于未授权的目标——这既违法,也违背这个工具存在的意义。」
END
我是墨格,专注于让文章更清晰地抵达读者。
如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。
官网:https://moyufang.cn
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:C4安全 chobits02
chobits02《Provena红队Agent开源! 证据驱动的安全渗透测试智能体》