【每日精选】ARTEX:AI 自动做渗透测试
一句话总结
ARTEX 是一个用大模型多智能体(多个 AI 分工合作)驱动的自主渗透测试系统,后端用 Go 写,前端用 Next.js 写,数据存在 PostgreSQL 里。
它是干什么的(大白话)
你可以把它理解成一支「AI 安全测试小队」。你告诉它要测哪些域名、IP、站点,它里面的几种 AI 角色会分工:
- goals(目标分解):把你的大目标拆成小目标,圈出测试范围;
- planner(规划者):读官方说明,它是唯一负责「想下一步干什么」的角色;
- worker(执行者,可以同时开多个,默认 3 个):真正动手去跑工具;
- mainagent(人在环路):一个可以让你中途插话的对话入口。
它自带流量录制代理(把你测试过程中发出的网络请求记下来),带工具审批门(危险操作要先通过审批才执行),还能把 DNS、HTTP 这类信息异步补全。界面上有仪表盘、任务列表、执行过程、探索链路图、资产覆盖图、发现列表、流量录制、Agent 管理、LLM 配置、拦截审批、后端日志这些页面。
官方还给了在线 Demo,不想装也能先点开看看长什么样。
它解决什么问题(举个例子)
假设你手上有一家公司的资产:一批域名、一批子域名、一批 IP 和端口。传统做法是人挨个手工测,重复劳动多,记录还容易丢。
ARTEX 的做法是:你可以从 ScopeSentry 这类资产收集工具里,按「项目」或「任务」维度把资产同步进来,选你要的类型(域名 / 子域 / IP / 端口 / 站点 / 端点),一键导入后自动归并到资产图里,然后让 AI 去探索。
测出漏洞之后还有一件事:复测。漏洞修没修好,传统做法要重新跑一遍扫描任务。ARTEX 里可以在漏洞列表点「复测」,或者在漏洞详情里点「发起复测」,填上修复版本、测试条件这些可选信息,系统会单独开一个复测 Agent 会话,不用重跑原扫描任务。结论分三种:「仍可复现」「已修复」「无法确认」。如果复测结论是「已修复」,系统会自动把漏洞状态改成「已修复」。
小白怎么用起来(照抄就行)
先看最简单的一条路:直接打开在线 Demo https://artex-demo.vercel.app/,不用装任何东西。
想自己装,官方推荐一键脚本:
git clone https://github.com/Autumn-27/ARTEX.git
cd ARTEX
./install.sh
脚本会自动检测 / 安装 Docker,然后让你选「① 全部 Docker」或「② 本地编译运行」。
- 选 ①:填一个 Postgres 密码(可以直接回车随机生成),脚本自动写
.env,然后docker compose up -d。 - 选 ②:选数据库(连已有的,或者用 Docker 起一个),生成
config.json,再用 Go 编译出一个内嵌前端的单文件程序并启动。
装好后浏览器打开 http://localhost:8787,第一次进去是 /setup,设置管理员密码。
如果你想自己手动来(Docker Compose):
git clone https://github.com/Autumn-27/ARTEX.git
cd ARTEX
cp .env.example .env
docker compose up -d
把 .env 里的 POSTGRES_PASSWORD 填上,可选填 ANTHROPIC_API_KEY。完事还是访问 http://localhost:8787。
配置 AI 模型(必须,不然它没法思考):
export ANTHROPIC_API_KEY=sk-...
或者换成 OPENAI_API_KEY。也可以不设环境变量,直接到界面的「LLM 配置」页里填。
重要提醒:README 开头明确写了「该仓库为 ARTEX 最后一个版本纯源码备份,docker 部署源失效自行让 AI 本地构建即可」。也就是说 Docker 镜像可能拉不下来。真遇到了就走源码编译这条路:
cd web && npm ci && npm run build:static && cd ..
cp -r web/out server/webui/dist
CGO_ENABLED=0 go build -tags embedui -o artex ./cmd/artex
./start.sh
启动方式有个坑要注意:官方说请用 start.sh(Windows 是 start.bat)启动,不要直接跑 ./artex。因为这个脚本是守护脚本,程序退出后会按退出码决定要不要重新拉起来,页面上的「一键更新」功能靠它完成换装。想让它后台常驻:
nohup ./start.sh >artex.log 2>&1 &
你需要什么基础
- 要不要会编程:装和用不需要。上面所有命令直接复制粘贴到终端就行。但如果你想改代码、加功能,那就得看得懂 Go 和前端代码了。
- 要不要买服务器:不一定。可以在自己电脑上跑,访问
localhost:8787。如果要让同事一起用、或者放到公网,就需要一台机器。README 给了 Nginx 反代的 HTTPS 配置示例,公网只开 443、把 8787 留在内网即可。 - 大概多久能跑起来:文档里没写清楚具体耗时。这取决于你的网络能不能拉 Docker 镜像、能不能下载依赖(Go 模块、npm 包)。如果镜像源失效要自己编译,时间会更长。文档里没给出预估时间。
- 必备前置:数据库必须是 PostgreSQL;必须配一个 LLM 的 Key,否则探索跑不起来。
适合谁 / 不适合谁
适合:
- 做安全测试、渗透测试的人,想要一个能自动跑、能看过程、能留证据的工具;
- 手上资产多、重复劳动多,希望用 AI 帮忙规划和执行的团队;
- 已经在用 ScopeSentry 收资产的人,可以直接同步过来省一遍事;
- 喜欢看执行过程的人:它有会话、工具调用、探索链路图、资产覆盖图这些可视化页面。
不适合:
- 只想点几下鼠标、完全不碰命令行的人(虽然有一键脚本,但还是要在终端里操作);
- 完全不懂安全测试是什么的人,界面上的概念会比较陌生;
- 想开箱即用、不用配任何 Key 的人,LLM 和数据库这两样跑不掉;
- 在意许可证限制的商业用户要注意:项目用的是 AGPL-3.0。
另外有一点文档里没写清楚:项目信息里的仓库名是 mhtsec/ARTEX,但 README 里所有 git clone 命令写的都是 Autumn-27/ARTEX。照着 README 敲命令时,用的就是后者这个地址。
⚠️ 以上信息整理自项目官方仓库,使用前请自行确认许可证与安全风险。