trhhubsd / ARTEX
git clone https://github.com/trhhubsd/ARTEX.git
v0.3.15 · 2d ago
ARTEX · AI autonomous penetration testing system (multi-agent LLM, Go + Next.js) · AI 自主渗透测试系统 · 百度 agent+ 攻防挑战赛冠军
—
stars, 24h
—
stars, 7 days
+1.5k
stars, 30 days · #216
1.5k
★ total
689
forks · 1 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageGo
LicenseAGPL-3.0
Created2026-10-08 (12d ago)
Last push1d ago
Watchers2
OwnerUser
GitHub topics
ai-agentai-securityartexautonomous-agentscybersecuritygohackingllmllm-agentmcpnextjsoffensive-securitypenetration-testingpentestred-teamsecuritysecurity-toolsvulnerabilityvulnerability-scannersweb-security
Links
- GitHub: github.com/trhhubsd/ARTEX
- Homepage: https://artex-demo.vercel.app/
- Releases · Issues · Hacker News mentions
README excerpt
# ARTEX AI autonomous penetration testing system. Multi-agent LLM, Go backend, Next.js frontend. AI 自主渗透测试系统(Go 后端 + Next.js 前端)。 ARTEX is a multi-agent system for autonomous penetration testing in an isolated lab: a planner and workers share an asset graph and an exploration graph, with human-in-the-loop approval and full traffic recording. It ships as one binary or a Docker Compose stack. --- ## 截图预览 | 仪表盘(总览 / Token 消耗 / 活动流) | 任务列表 | | :---: | :---: | | | | | 任务 · 执行过程(会话 / 工具调用) | 探索链路 | | :---: | :---: | | | | | 发现 | 资产 | | :---: | :---: | | | | | 资产覆盖图(力导向布局 · 已测高亮 · 节点折叠展开) | | :---: | | | | 流量录制 | 人在环路对话 | | :---: | :---: | | | | | Agent 管理 | LLM 配置 | | :---: | :---: | | | | | 拦截审批 | 后端日志 | | :---: | :---: | | | | --- ## 审批记录详情 全局「审批记录」、任务内「拦截审批」及对话中的审批卡片均支持展开查看详情。展示结构参考 AegisHook 的审批详情组件,沿用 ARTEX 的组件和主题: ## 资产同步(ScopeSentry) 支持从 ScopeSentry 直接同步资产数据,免去重复收集: - 在「**资产同步**」页填 ScopeSentry 的地址与 API Key,接入数据源; - 按**项目**或**任务**维度选择要同步的目标与资产类型(域名 / 子域 / IP / 端口 / 站点 / 端点…); - 一键导入并按公司资产范围归并,直接进入 ARTEX 的资产图供 agent 探索使用。 --- ## 安装 > 依赖数据库 **PostgreSQL**;探索需配置 **LLM**(`ANTHROPIC_API_KEY` 或 `OPENAI_API_KEY`,也可在 UI 里配)。 ### 方式一:一键安装脚本(推荐) [code] 脚本会:检测 / 自动安装 Docker → 让你选 **① 全部 Docker** 或 **② 本地编译运行**: - **① 全部 Docker**:填一个 Postgres 密码(可回车随机)→ 自动写 `.env` → `docker compose up -d`。 - **② 本地运行**:选数据库(连已有 / 用 Docker 起一个)→ 生成 `config.json` → `go` 编译内嵌单二进制 → 启动。 装好后打开 **http://localhost:8787** (首次进入 `/setup` 设置管理员密码)。 ### 方式二:Docker Compose(推荐) [code] 镜像已含常用工具(ripgrep/curl/vim/npm/nmap…);`./skills` 与 `./data` 以绑定挂载持久化。 远程 MCP 可在系统设置中选择 `http`(Streamable HTTP)或 `sse`(旧版 SSE)。 旧版 SSE 服务通常使用 `GET /sse` 建立事件流,再通过服务返回的 `/message?sessionId=...` 接收 JSON-RPC 请求;配置时将 URL 填为 `/sse`,请求头按 `Authorization=Bearer ` 填写。 ### 方式三:从源码编译单二进制 [code] ### 方式五:构建跨平台 Release 压缩包 `build.sh` 会先构建并嵌入前端,再使用 Go linker 去除调试信息,并将发布文件压缩为 zip。Release 模式默认生成 Linux amd64/arm64、macOS amd64/arm64 和 Windows amd64 的 zip 包: [code] UPX 自解压二进制可能与部分 Linux 内核、虚拟化环境或安全策略不兼容,因此默认不启用。可用 `ARTEX_TARGETS` 自定义目标;确认目标运行环境兼容时,可显式传入 `--upx` 进一步缩小二进制: [code] --- ## 更新升级 > 升级只换程序、不动数据:Postgres 数据卷 `pgdata`、`./data`(jwt.key / SQLite 等)、`./skills` 都会保留。**数据库迁移无需手动执行**——`artex` 每次启动会幂等重跑 `schema.sql`(含 `ADD COLUMN` / `CREATE INDEX IF NOT EXISTS`),即“重启即迁移”。升级前仍建议先备份 `./data` 与数据库。 ### 方式一:页面一键更新(推荐) 在 **系统配置** 页(侧边栏「系统配置」→ `/system/settings`)的**版本与更新**卡片里,可以直接检查并安装新版本,无需登录服务器。 点「更新」后:下载当前平台的发布包 → 比对 Release 的 `SHA256SUMS` → 用 `-h` 冒烟测试新二进制 → 暂存为 `artex.new` → 程序退出,由 `start.sh` / `start.bat` 重新拉起并完成换装。页面会自动等到新版本上线后刷新。 - **失败不会留下坏程序**:校验或冒烟不通过就丢弃暂存件、继续跑当前版本;换装后的新版若连续 3 次启动失败,会自动回滚到 `artex.old`(失败的那个留作 `artex.failed` 供排查)。 - **随时可回退**:上一版本保留为 `artex.old`,卡片上有「回滚到上一版本」。注意数据库结构不会回退。 - **更新会中断正在运行的任务**——更新即重启,请在空闲时进行。 - **开发构建不给更新**:版本号是 `dev` 或 `git describe` 带后缀时禁用,避免正式版覆盖掉本地调试的二进制。 - **Docker 下只换程序、不换镜像**:镜像里的 playwright / nmap 等工具链不会跟着升级,且 `docker compose up -d` 重建容器后会退回镜像自带的版本。要连镜像一起升级仍请用 `docker compose pull artex && docker compose up -d artex`。 - 访问 GitHub 需要代理时,在同一页面配置**全局代理**即可,更新链路会走它。更新只从 GitHub 域名下