プランナー/ワーカーエージェント、資産グラフと探索グラフ、MITMトラフィック記録、脆弱性の再テストを備えたLLMマルチエージェント自律ペネトレーションテストプラットフォーム。
AI自律型ペネトレーションテストシステム(Goバックエンド + Next.jsフロントエンド)
Autumn-27によるARTEXのフォーク · 中国語ソースの英語翻訳 · AGPL-3.0の下で公開メンテナンス
| ダッシュボード(概要 / トークン使用量 / アクティビティストリーム) | タスク一覧 |
|---|---|
![]() | ![]() |
| タスク · 実行(セッション / ツール呼び出し) | 探索グラフ |
|---|---|
![]() | ![]() |
| 検出結果 | アセット |
|---|---|
![]() | ![]() |
| アセットカバレッジグラフ(力指向レイアウト · テスト済みハイライト · ノードの折りたたみ/展開) |
|---|
![]() |
| トラフィック記録 | ヒューマン・イン・ザ・ループチャット |
|---|---|
![]() | ![]() |
| エージェント管理 | LLM設定 |
|---|---|
![]() | ![]() |
| インターセプト承認 | バックエンドログ |
|---|---|
![]() | ![]() |
グローバルの「承認記録」、タスク内の「インターセプト承認」、および会話内の承認カードは、いずれも展開して詳細を表示できます。表示構造は AegisHook承認詳細コンポーネントを参考にし、ARTEXのコンポーネントとテーマを再利用しています:
同梱のブラウザ拡張機能(extension/)は、あなた自身のブラウジングをエージェントが参照できる証拠に変えます:認証済みのターゲットに一度ログインすれば(CAPTCHA、メール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
直接
./artexを実行するのではなく、start.sh/start.batから起動してください。これはデーモンスクリプトであり、プロセスがクラッシュした場合、バックオフ後に再起動します。 バックグラウンドで実行し続けるには: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、オペレーターの 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とデータベースをバックアップすることを推奨します。