基于LLM的多智能体自主渗透测试平台,具备规划器/执行器智能体、资产与探索图谱、MITM流量记录以及漏洞复测功能。
| 仪表盘(概览 / Token 用量 / 活动流) | 任务列表 |
|---|---|
![]() | ![]() |
| 任务 · 执行(会话 / 工具调用) | 探索图 |
|---|---|
![]() | ![]() |
| 发现 | 资产 |
|---|---|
![]() | ![]() |
| 资产覆盖图(力导向布局 · 已测试高亮 · 节点折叠/展开) |
|---|
![]() |
| 流量记录 | 人在回路对话 |
|---|---|
![]() | ![]() |
| 智能体管理 | LLM 配置 |
|---|---|
![]() | ![]() |
| 拦截审批 | 后端日志 |
|---|---|
![]() | ![]() |
全局的“审批记录”、任务内的“拦截审批”以及对话中的审批卡片均支持展开查看详情。展示结构参考了 AegisHook 审批详情组件,并复用了 ARTEX 的组件与主题:
内置的浏览器扩展(extension/)可将你自己的浏览行为转化为智能体可见的证据:登录一次需要认证的目标站点(包括验证码、邮箱 OTP 和 2FA),捕获的请求/响应就会像代理记录的流量一样进入 ARTEX 的流量存储,可供搜索并绑定到发现:
extension/ 加载未打包的扩展(Chrome/Edge,开发者模式 → 加载已解压的扩展程序);POST /api/traffic/ingest(需认证)。二进制正文(图片、字体)会被跳过,正文截断至 256 KiB,每批最多 50 条;直接从 ScopeSentry 同步资产数据,避免重复收集:
需要 PostgreSQL 数据库;探索需要 LLM(
ANTHROPIC_API_KEY或OPENAI_API_KEY,也可在 UI 中配置)。
git clone https://github.com/BaaRai/ARTEX.git
cd ARTEX
./install.sh
脚本将:检测 / 自动安装 Docker → 然后让你选择 ① 全 Docker 或 ② 本地构建并运行:
.env → docker compose up -d。config.json → go 构建嵌入式单二进制文件 → 启动。安装完成后,打开 **http://localhost:8787**(首次进入时,`/setup` 会设置管理员密码)。
git clone https://github.com/BaaRai/ARTEX.git
cd ARTEX
cp .env.example .env # set POSTGRES_PASSWORD, optionally ANTHROPIC_API_KEY
docker compose up -d # pulls the autumn27/artex image + postgres
# → http://localhost:8787
该镜像已包含常用工具(ripgrep/curl/vim/npm/nmap…);./skills 和 ./data 通过绑定挂载持久化。
对于远程 MCP,你可以在系统设置中选择 http(Streamable HTTP)或 sse(旧版 SSE)。
旧版 SSE 服务器通常通过 GET /sse 建立事件流,然后通过服务器返回的
/message?sessionId=... 接收 JSON-RPC 请求;配置时,将 URL 设置为 /sse,并将请求头设置为
Authorization=Bearer <token>。
从 Releases 下载适用于你平台的 zip 包;解压后你将得到 artex + start.sh(Windows 上为 start.bat)+ skills/ + config.example.json:
cp config.example.json config.json # fill in the database connection
./start.sh # → http://localhost:8787
请从
start.sh/start.bat启动,而不是直接运行./artex。这是一个守护进程脚本:如果进程崩溃,它会在退避后重新启动。 要使其在后台持续运行:nohup ./start.sh >artex.log 2>&1 &。
# 1) frontend static export
cd web && npm ci && npm run build:static && cd ..
# 2) copy into the embed directory
cp -r web/out server/webui/dist
# 3) build (only -tags embedui embeds the frontend)
CGO_ENABLED=0 go build -tags embedui -o artex ./cmd/artex
./start.sh
build.sh 首先构建并嵌入前端,然后通过 Go 链接器剥离调试信息,并将发布文件压缩为 zip 包。发布模式默认会为 Linux amd64/arm64、macOS amd64/arm64 和 Windows amd64 生成 zip 包:
./build.sh --release
# output: dist/artex-0.3.3-*.zip
UPX 自解压二进制文件可能与某些 Linux 内核、虚拟化环境或安全策略不兼容,因此默认禁用。使用 ARTEX_TARGETS 自定义目标;在确认目标运行时兼容后,显式传入 --upx 以进一步缩小二进制文件:
ARTEX_TARGETS=linux/amd64,windows/amd64 ./build.sh --release
./build.sh --target linux/amd64 --upx
scripts/backup.sh 会导出 Postgres 数据库(以及可选的数据目录),输出带时间戳并支持轮转:
scripts/backup.sh --with-data # db dump + data/ archive, keep 14
scripts/backup.sh --keep 7 # db only, keep 7
将转储恢复到正在运行的栈中:
gunzip -c backups/artex-db-<timestamp>.sql.gz | docker compose exec -T postgres \
psql -U "$POSTGRES_USER" -d "$POSTGRES_DB"
每日 cron 示例(03:20,operator 的 crontab):
20 3 * * * cd /path/to/ARTEX && scripts/backup.sh --with-data >> backups/backup.log 2>&1
升级仅替换程序,绝不会触碰数据:Postgres 卷
pgdata、./data(jwt.key / SQLite 等)以及./skills均会保留。无需手动迁移数据库:artex在每次启动时都会幂等地重新执行schema.sql(使用ADD COLUMN/CREATE INDEX IF NOT EXISTS),即“重启即迁移”。仍建议在升级前备份./data和数据库。
cd ARTEX
./update.sh
脚本会先可选地执行 git pull 拉取最新代码,然后让你选择 ① Docker 更新 或 ② 本地构建更新(与 install.sh 一致):
.env 中的 ARTEX_TAG,默认为 latest)→ docker compose pull → docker compose up -d(使用新镜像重启时会自动迁移)。./artex(重启进程后生效)。cd ARTEX
git pull # update compose / scripts (optional)
# pin a version: set ARTEX_TAG=v0.2.0 in .env; otherwise latest is used
docker compose pull artex
docker compose up -d artex # restart with the new image → schema migrates automatically
docker image prune -f # clean up old images (optional)
从 Releases 下载新版本的 zip,停止旧进程,然后覆盖 artex 和 skills/(保留你的 config.json 和 data/),并重新启动: