Skip to content
プロジェクト

AaronCaiii/AgenticPentest has 47 GitHub stars and 15 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 11:43 UTC. Last push 2026-11-13.

この数値の測り方

できること

  • Workspaces and teams - Local login and first-admin setup; administrator/operator/viewer roles, invitations, welcome messages and password management; isolated personal data and shared team workspaces.
  • Dashboard - Asset, task, Agent and finding statistics; P0–P4 severity groups, candidate/confirmed states and filtered links into the corresponding records.
  • Asset management - CSV/TXT/JSON import templates, source uploads, canonical target grouping and deduplication; network, identity/credential, data, channel and personnel categories with task/evidence references.
  • Asset mapping - Saved ports, services, addresses and findings; mind-map, tree and star layouts, drag/zoom, minimap, fullscreen directory and collapse controls; persisted layout and color preferences.

計測したスター増加

24時間
0
7日間
履歴を収集中
15日間
履歴を収集中
1か月
履歴を収集中

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

概要

Agent-powered red team testing workbench with asset mapping, threat modeling, multi-agent workflows, cloud assessment, reports and MCP.

セキュリティ

docs/i18n/README.ja.md

オリジナル

AgenticPenTest

🛡️ AgenticPenTest

English | 简体中文 | 繁體中文 | Русский | Français | 日本語 | Deutsch

プラットフォーム紹介

個人とローカルチーム向けの、LLM 駆動レッドチームテストワークベンチ。

🎬 英語の操作動画 · 43 秒 · MP4

https://github.com/user-attachments/assets/ffd3d60d-03da-4cb7-bdf0-cfb291d09975

合成データを使った実際の画面操作です。資産の追加、関連資産の選択、計画の保存を示します。タスク結果は事前に用意した例であり、その場で実施した侵入テストではありません。

v1.0.4: バックグラウンド導入、自動動作確認、プラットフォーム別取得。ホスト登録後は管理者が画面からバックアップ、更新、再起動、失敗時の復元を実行できます。

v1.0.3 — v1.0.2 の追加改善: カタログから対応ツールを直接取得・インストールでき、実行環境とダウンロード操作の表示を改善しました。

🚀 デプロイ方法

🐳 1. Docker イメージを取得して起動

v1.0.4 イメージは Debian 12(bookworm)をベースに、linux/amd64 と linux/arm64 のネイティブ版を提供します。Docker が適切なアーキテクチャを自動選択し、ホスト側の Node.js や Python は不要です。

ホスト環境 コンテナのアーキテクチャ 検証状況
Linux x86-64 · Docker Engine linux/amd64 Ubuntu で検証済み
Linux ARM64 · Docker Engine linux/arm64 イメージは検証済み。ネイティブ Linux ARM64 ホストは未検証
macOS · Apple Silicon · Docker Desktop linux/arm64 初期化と主要ツール五つのバージョン起動を検証済み
macOS · Intel · Docker Desktop linux/amd64 対応するイメージあり。Intel Mac での実機検証は未実施
Windows 11 x64 · Docker Desktop / WSL 2 linux/amd64 Linux コンテナを使用。Windows ホストでの実機検証は未実施

これらは Linux イメージであり、Windows や macOS のネイティブイメージではありません。ツールの互換性はブラウザーの OS ではなく、コンテナまたは実行サーバーで決まります。完全なツール実行には対応するランタイムと Linux 隔離環境が必要で、Docker Desktop は本プロジェクトのホストネットワークガードを提供しません。各ツールの互換性を確認し、可用性検査は手動で開始してください。

Docker のインストール:Windows / WSL 2 · macOS。

docker pull docker.io/johncoke/agenticpentest:latest
docker run -d --name agenticpentest --restart unless-stopped \
  --cap-drop ALL --security-opt no-new-privileges:true \
  -p 127.0.0.1:8765:8765 \
  -e PUBLIC_ORIGIN=http://127.0.0.1:8765 \
  -v agenticpentest-data:/var/lib/agenticpentest \
  -v agenticpentest-tools:/opt/agenticpentest-tools \
  docker.io/johncoke/agenticpentest:latest

http://127.0.0.1:8765 · Docker

🧩 2. Docker Compose でデプロイ

公開済みイメージと永続ボリュームを使用し、ローカルビルドは行いません。現在、Compose ファイルの取得には Git リポジトリへのアクセス権が必要です。

git clone https://github.com/AaronCaiii/AgenticPentest.git AgenticPenTest
cd AgenticPenTest
docker compose up -d --pull always --no-build

🛠️ 3. ソースコードからインストール

Linux amd64、Git、Python 3 が必要です。スクリプトで配置先(既定は /opt 配下)、ポート、LAN アクセス、ツール構成を選択します。対応する Node.js を再利用し、なければチェックサムを検証して専用ランタイムを導入します。

git clone https://github.com/AaronCaiii/AgenticPentest.git AgenticPenTest
cd AgenticPenTest
python3 scripts/install-source.py

初期化後に表示された URL を開き、最初の管理者を作成してください。既定のアカウントやパスワードはありません。AgenticPenTestでは先に認可に関する通知が表示されます。 インストール設定・プロキシ・起動方法.

🔄 v1.0.1 から v1.0.4 へ、その後は画面から更新

初回は手動アップグレード、以後は画面から更新します。 v1.0.1 の更新確認画面では、この機能をインストールできません。該当する手順で更新してから、ホストチャネルを一度登録してください。タスク、ツールのインストール、SSH 接続を停止し、データベースと対応する鍵、設定、ポート、環境変数、ツールを保持します。docker compose down -v や既存環境への空データベースの初期化は禁止です。以下は Linux/macOS の Bash 用です。Windows Docker のホスト操作には、適切な WSL 2 Linux 環境が必要です。

🐳 Docker / Docker Compose:初回の手動更新

Docker ホストの元のデプロイ先で実行し、AP_CONTAINER を実際の名前に変更します。Compose の例は agenticpentest-workbench-1 です。イメージのリポジトリは既存コンテナから取得します。先にダウンロードし、停止後にデータをコピーします。バックアップは認証情報を含むため非公開で保管し、ツール分の容量も確保してください。独自のコンテナ内パスは docker inspect に合わせます。

AP_CONTAINER=agenticpentest
AP_BACKUP="$HOME/AgenticPenTest-backups/v1.0.4-$(date +%Y%m%d-%H%M%S)"
umask 077
mkdir -p "$AP_BACKUP"
docker inspect "$AP_CONTAINER" > "$AP_BACKUP/container.json"
AP_OLD_IMAGE="$(docker inspect --format '{{.Image}}' "$AP_CONTAINER")"
AP_IMAGE="$(docker exec "$AP_CONTAINER" node -p "require('./config/distribution.json').image")"
docker tag "$AP_OLD_IMAGE" "$AP_IMAGE:rollback-before-v1.0.4"
docker pull "$AP_IMAGE:v1.0.4"
AP_TOOLKIT="$(docker exec "$AP_CONTAINER" node -p "process.env.TOOLKIT_ROOT || '/opt/agenticpentest-tools'")"
docker stop "$AP_CONTAINER"
docker cp "$AP_CONTAINER:/var/lib/agenticpentest/." "$AP_BACKUP/data"
docker cp "$AP_CONTAINER:$AP_TOOLKIT/." "$AP_BACKUP/tools"

Compose: 元の Compose ファイル、env の絶対パス、プロジェクト名を設定します。すべての -f オーバーライドを両コマンドに残します。env をバックアップし、AP_IMAGE だけを変更してボリューム名は維持します。今後の更新のためホスト上のファイルを保持してください。

AP_COMPOSE="$PWD/compose.yaml"
AP_ENV="$PWD/.env"
AP_PROJECT=agenticpentest
touch "$AP_ENV"
cp -p "$AP_ENV" "$AP_BACKUP/runtime.env"
python3 - "$AP_ENV" "$AP_IMAGE:v1.0.4" <<'PY'
from pathlib import Path
import re, sys
p = Path(sys.argv[1])
text = p.read_text()
line = 'AP_IMAGE=' + sys.argv[2]
text = re.sub(r'^AP_IMAGE=.*$', line, text, flags=re.M) if re.search(r'^AP_IMAGE=', text, re.M) else text.rstrip() + '\n' + line + '\n'
p.write_text(text)
PY
docker compose -f "$AP_COMPOSE" --env-file "$AP_ENV" -p "$AP_PROJECT" pull workbench
docker compose -f "$AP_COMPOSE" --env-file "$AP_ENV" -p "$AP_PROJECT" up -d --no-build workbench

単独 Docker: 以下の再作成例は、下記クイックスタートを変更せず使った場合専用です。独自構成は保存した container.json から元のポート、環境、ボリューム/バインド、ネットワーク、安全設定を再現し、既定ボリュームに置き換えないでください。管理更新には --cap-drop ALL --security-opt no-new-privileges:true を維持します。確認中は停止した旧コンテナを残します。

docker rename "$AP_CONTAINER" "$AP_CONTAINER-before-v1.0.4"
docker run -d --name "$AP_CONTAINER" --restart unless-stopped \
  --cap-drop ALL --security-opt no-new-privileges:true \
  -p 127.0.0.1:8765:8765 \
  -e PUBLIC_ORIGIN=http://127.0.0.1:8765 \
  -v agenticpentest-data:/var/lib/agenticpentest \
  -v agenticpentest-tools:/opt/agenticpentest-tools \
  "$AP_IMAGE:v1.0.4"

healthy と 1.0.4 を確認し、元の URL・既存アカウントで資産、モデル、タスク、レポートを確認します。単独 Docker は確認後にのみ docker rm "$AP_CONTAINER-before-v1.0.4" で旧コンテナを削除します。-v は付けず、バックアップと復元用イメージは保持します。起動失敗時はデータ/鍵と元のイメージ・設定を戻してから再試行してください。

docker inspect --format '{{.State.Health.Status}}' "$AP_CONTAINER"
docker exec "$AP_CONTAINER" node -p "require('./package.json').version"
🛠️ ソース:初回の手動更新

この管理手順は Linux 用です。元のソースディレクトリで、root ではない既存サービス所有者として実行します。AP_DATA、AP_UNIT、AP_ORIGIN を実際の絶対データパス、サービス名、ブラウザ URL に変更してください。前景プロセスはコピー前に Ctrl+C で停止します。外部ツールの場所は保持し別途バックアップします。新規インストーラや npm run init を既存環境で再実行しないでください。

AP_SOURCE="$PWD"
AP_DATA="$AP_SOURCE/data"
AP_UNIT=agenticpentest.service
AP_ORIGIN=http://127.0.0.1:8765
AP_REPOSITORY="$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["repository"])' "$AP_SOURCE/config/distribution.json")"
AP_BACKUP="$HOME/AgenticPenTest-backups/source-v1.0.4-$(date +%Y%m%d-%H%M%S)"
umask 077
mkdir -p "$AP_BACKUP"
if systemctl is-active --quiet "$AP_UNIT"; then sudo systemctl stop "$AP_UNIT"; fi
tar -czf "$AP_BACKUP/data.tar.gz" -C "$AP_DATA" .
if [ -f "$AP_SOURCE/.env" ]; then cp -p "$AP_SOURCE/.env" "$AP_BACKUP/app.env"; fi

変更のない公式 Git チェックアウト: git status --short が空の場合だけ実行します。独自変更は先に保存し、変更や履歴分岐がある状態で強制リセットしないでください。将来の main ではなく、公開済み v1.0.4 タグを選びます。

cd "$AP_SOURCE"
git status --short
git rev-parse HEAD > "$AP_BACKUP/source-commit.txt"
git fetch origin main refs/tags/v1.0.4:refs/tags/v1.0.4
git merge --ff-only v1.0.4

ZIP、Git メタデータなし、履歴分岐: 直前の Git ブロックは実行せず、隣の新規ディレクトリを作ります。元のディレクトリを復元用に残し、env をコピーして、絶対 AP_DATA と対応する鍵を引き続き使います。新ディレクトリは未作成である必要があります。外部ツールの場所を保持し、サービスの WorkingDirectory/ExecStart/env のパスを調整してください。空の data で既存データを上書きしないでください。

AP_PREVIOUS_SOURCE="$AP_SOURCE"
AP_SOURCE="${AP_PREVIOUS_SOURCE}-v1.0.4"
git clone --branch v1.0.4 "$AP_REPOSITORY" "$AP_SOURCE"
if [ -f "$AP_PREVIOUS_SOURCE/.env" ]; then cp -p "$AP_PREVIOUS_SOURCE/.env" "$AP_SOURCE/.env"; fi
if [ -d "$AP_PREVIOUS_SOURCE/.runtime/node" ]; then
  mkdir -p "$AP_SOURCE/.runtime"
  cp -a "$AP_PREVIOUS_SOURCE/.runtime/node" "$AP_SOURCE/.runtime/node"
fi
cd "$AP_SOURCE"

両方のソース経路で実行: 選択したディレクトリで元の環境を維持してビルドします。独立 Node があれば再利用し、固定されたクラウド SDK を導入します。必要なら事前にプロキシ環境変数を設定してください。続いて下のサービス設定とチャネル登録を行います。ネイティブ Windows/macOS ソースは Git/npm で手動更新できますが、この Linux/systemd チャネルには対応しません。

cd "$AP_SOURCE"
export PATH="$AP_SOURCE/.runtime/node/bin:$PATH"
npm ci
npm run build
python3 scripts/setup-cloud-sdk.py --install
🔑 ホスト更新チャネルを初回登録

Docker 管理者またはソースサービスの所有者として、デプロイ先ホスト上で実行します。Web コンテナ内や root として登録しないでください。 Docker 権限または承認済みの非対話 sudo、もしくは対象サービスだけの権限が必要です。SSH と Git/Python 3 を用意します。下は Ubuntu/Debian 用です。macOS はリモートログインを有効にして Git/Python 3 を確認します。ローカル SSH 鍵認証を確認し、~/.ssh/authorized_keys がなければ作成します。既存鍵は置き換えないでください。

sudo apt-get update
sudo apt-get install -y openssh-server git python3
sudo systemctl enable --now ssh
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

他の Linux では対応する SSH パッケージとサービス名を使います。登録はホスト公開鍵を固定し、更新コマンド専用の鍵を作成します。Docker socket のマウントは不要です。

Docker: デプロイしたイメージに対応する v1.0.4 ソースを使います。既存ディレクトリへ cd するか、イメージに記録されたリポジトリを取得してください。AP_HOST_SOURCE が存在する場合は別の空ディレクトリを選びます。同じシェルで更新変数を保持し、AP_ENV はホストの絶対パスにします。

AP_REPOSITORY="$(docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.source" }}' "$AP_CONTAINER")"
AP_HOST_SOURCE="$HOME/AgenticPenTest-host"
git clone --branch v1.0.4 "$AP_REPOSITORY" "$AP_HOST_SOURCE"
cd "$AP_HOST_SOURCE"

Compose:プレビューを確認してから適用します:

python3 scripts/setup-platform-updater.py docker --container "$AP_CONTAINER" --env-file "$AP_ENV"
python3 scripts/setup-platform-updater.py docker --container "$AP_CONTAINER" --env-file "$AP_ENV" --apply

単独 Docker:env ファイル引数を省略します:

python3 scripts/setup-platform-updater.py docker --container "$AP_CONTAINER"
python3 scripts/setup-platform-updater.py docker --container "$AP_CONTAINER" --apply

ホストユーザーには対応イメージの取得権限が必要です。必要に応じホストで docker login を行います。イメージ取得は Docker daemon のプロキシ、システム設定のプロキシはアプリと更新メタデータ用です。macOS の SSH は host.docker.internal、Linux はループバックか Docker ゲートウェイが既定です。必要なら両方の登録コマンドに --host、--ssh-port、--host-key /absolute/path/to/ssh_host_ed25519_key.pub を追加します。公開メタデータにトークンは不要です。既存 network guard の統合と再登録権限は維持してください。

ソース: 既存 systemd ユニットと実行設定を維持します。systemctl show "$AP_UNIT" -p User -p WorkingDirectory -p ExecStart -p EnvironmentFiles で、このソースが登録ユーザーとして、元のデータ・URL で実行されることを確認します。パス変更は sudo systemctl edit --full "$AP_UNIT" で行ってください。ユニットがない場合に限り、前景プロセスを停止して下のテンプレートを使用します。AP_TOOLKIT を既存ツールの絶対パスに変更します。隣接ソース方式では旧ディレクトリのままでも構いません。既存ユニットをテンプレートで上書きしないでください。

AP_USER="$(id -un)"
AP_NODE="$(command -v node)"
AP_TOOLKIT="$AP_SOURCE/tools/toolkit"
if [ -x "$AP_SOURCE/.runtime/node/bin/node" ]; then AP_NODE="$AP_SOURCE/.runtime/node/bin/node"; fi
if ! systemctl cat "$AP_UNIT" >/dev/null 2>&1; then
sudo tee "/etc/systemd/system/$AP_UNIT" >/dev/null <<EOF
[Unit]
Description=AgenticPenTest
After=network.target
[Service]
Type=simple
User=$AP_USER
WorkingDirectory=$AP_SOURCE
EnvironmentFile=-"$AP_SOURCE/.env"
Environment="WORKBENCH_DATA=$AP_DATA" "PUBLIC_ORIGIN=$AP_ORIGIN" "TOOLKIT_ROOT=$AP_TOOLKIT"
ExecStart="$AP_NODE" "--env-file-if-exists=$AP_SOURCE/.env" "$AP_SOURCE/server.mjs"
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now "$AP_UNIT"
fi

既存の Linux ホスト network guard がある場合、初回の手動再起動後に新しい Node ホスト PID へ再登録し、元の制限値を保持してください。ソースチャネル登録前に行うと、更新器が guard を認識できます。既存の隔離手順に従い、socket マウントの削除やポリシー緩和で回避しないでください。

このサービスの start/stop だけを許可し、sudo 規則を検証して起動後、登録をプレビュー・適用します。規則ファイルが既にある場合は管理者が統合し、上書きしないでください。ホスト network guard には別途審査済みの再登録権限が必要で、下のサービス権限だけでは付与されません。

AP_USER="$(id -un)"
AP_SYSTEMCTL="$(command -v systemctl)"
AP_RULE="$(mktemp)"
printf '%s ALL=(root) NOPASSWD: %s start %s, %s stop %s\n' \
  "$AP_USER" "$AP_SYSTEMCTL" "$AP_UNIT" "$AP_SYSTEMCTL" "$AP_UNIT" > "$AP_RULE"
sudo visudo -cf "$AP_RULE"
if sudo test -e /etc/sudoers.d/agenticpentest-updater; then
  cat "$AP_RULE"
  sudo visudo -f /etc/sudoers.d/agenticpentest-updater
else
  sudo install -m 0440 "$AP_RULE" /etc/sudoers.d/agenticpentest-updater
fi
rm -- "$AP_RULE"
sudo systemctl start "$AP_UNIT"
systemctl is-active "$AP_UNIT"
curl -fsS "$AP_ORIGIN/api/auth"
cd "$AP_SOURCE"
python3 scripts/setup-platform-updater.py source --source-root "$AP_SOURCE" --unit "$AP_UNIT" --data-dir "$AP_DATA" --origin "$AP_ORIGIN"
python3 scripts/setup-platform-updater.py source --source-root "$AP_SOURCE" --unit "$AP_UNIT" --data-dir "$AP_DATA" --origin "$AP_ORIGIN" --apply

✅ 次回以降の画面更新と確認

  1. 実際のチーム管理者が システム設定 → バージョン更新 → 更新を確認 を開き、ホスト接続を確認します。個人ワークスペースに切り替えても管理者権限は得られません。
  2. プラットフォームを更新 を選び、管理者の現在のパスワードを入力して確認します。確認操作だけではインストールされません。確認済みの公式コミットと適切なアーキテクチャのイメージが選ばれます。
  3. ダウンロード、バックアップ、再起動、検証の進捗とログを確認します。ページ再読み込みやサービスの中断でも進捗を保持し、成功後は画面へ自動復帰します。失敗時はロールバックします。
  4. バージョン、コミット、既存記録を確認し、DB/鍵のバックアップと検証済み復元イメージを保持します。本プロジェクトの対象キャッシュ・旧イメージだけを整理し、実行中イメージと一つの検証済み復元イメージを残します。

自動更新は Linux Compose、Linux/macOS 単独 Docker、クリーンな Linux Git + systemd に対応します。Codespaces、アーカイブのみ、ネイティブ Windows/macOS ソースは手動です。接続不能時は SSH、固定ホスト鍵、権限、アドレスを確認し、未公開イメージは Actions 完了を待ちます。ボリュームは削除しないでください。更新前にツール導入を終了してください。導入タスクはサーバー再起動後に継続しません。

チャネル、復元、トラブルシューティングの詳細.

✨ 主な機能

Docker イメージは MCP に対応しています。クライアント設定と権限については MCP 接続ガイド を参照してください。

モジュール 実装済みの機能
ワークスペースとチーム ローカルログイン、初回管理者作成、管理者・操作員・閲覧者の権限、招待、参加時メッセージ、パスワード管理。個人データの分離とチーム共有スペース。
ダッシュボード 資産・タスク・Agent・検出事項の集計、P0–P4 優先度、候補/確認済みの状態、条件を適用した詳細画面への移動。
資産管理 CSV/TXT/JSON のインポートテンプレート、ネットワーク/ID・認証情報/データ/チャネル/人物の資産分類、同一対象の統合、タスクと証拠の関連付け、ソースコード登録、検索とページ切り替え。
資産マップ 既存結果からポート・サービス・アドレス・検出事項を表示。マインドマップ/ツリー/スター、ドラッグ、ズーム、ミニマップ、全画面、資産一覧、一括折りたたみ、ユーザーとスペース別の表示・配色設定保存。
計画とタスク Agent・ワークフロー選択、クイック/完全モード、適用チェックの判定、並列キュー、ツール選択理由、リアルタイムログ、手順詳細、結果保存。中断・再開、アーカイブ、ごみ箱。
Agent 管理 Leader 1 体と専門 Agent 11 体、独自 Agent、プロンプトの編集・既定値復元・LLM 翻訳、モデルの一括設定、ツールとワークフローの関連付け。
LLM 設定 OpenAI Chat Completions/Responses、Anthropic Messages、Gemini。カスタム Base URL、任意のユーザー認証付き HTTP(S) プロキシ、接続テスト、モデル取得・手動指定。SystemOne は判定テスト専用で、文章による計画生成には使用できません。
ツール管理 分類・検索・ページ切り替え、ファイル登録と ZIP 更新、出典・実行環境、引数編集とプレビュー。手動の可用性確認、実行アダプター、依存ホスト。必要な実行環境は別途準備します。
クラウドとハイブリッド資産 AWS/GCP/Azure と Alibaba Cloud 中国・国際サイト、公式リージョン選択、読み取り専用評価、ハイブリッド関連分析。公式資料に基づく分類と元のサービス・型・意味を保持し、検索・分類フィルター・件数変更(既定 10 件)に対応。実アカウントは未検証です。
脅威モデリング STRIDE の構成図とデータフローを編集し、資産・版履歴・リスクを管理。LLM の提案はユーザーによる明示的な採用が必要です。検証計画の下書き作成、JSON・Markdown・HTML 出力に対応。
C2 サーバー SSH/SFTP ホスト、プロキシ・踏み台、タブ付き端末、バックグラウンド接続の復元、接続・コマンド履歴、非公開/共有 Markdown ノート、グループ・タグ、ポートと IP 所在情報。
リスナーとセッション サーバー・OS・ポートの選択、開始・停止・キャンセル、リアルタイムの状態とログ、サービス一覧。設定済みアダプターに対応する逆接続プリセットと WebShell。
エンゲージメント 対象範囲、実施期間、許可/禁止技術、連絡先、中止条件。実行詳細付きタイムライン、結果フィルター、検出事項への変換。
実行制御 ポリシー、実行予算、検証カード、承認、証拠、ロールバック結果。完全チェーンには AP_CHAIN_EXECUTION=on、準備済みの実行ノード、エンゲージメントのルールが必要です。
PoC/Exploit と再検証 元の検出事項を必須で関連付け、モデル・言語を選択し、LLM で要件を改善。エディターで編集・保存・エクスポートし、独立した実行ノードで再検証します。AI 生成コードはレビューが必要で、そのまま動作する保証はありません。
検出事項とレポート 絞り込み、確認、再検証の追跡。ペネトレーション、セキュリティ評価、監査、ブラックボックス、ホワイトボックス、MITRE ATT&CK の 6 テンプレート、多言語 Markdown/HTML、プレビュー、30 日のアーカイブ、7 日のごみ箱、一括操作。
システム設定と表示 タスク・SSH・転送上限、認証付き HTTP(S) プロキシ、DB 出力と確認付き保守。登録済みホストチャネルから管理者が進捗・バックアップ・復元付きで更新。7 言語と深浅テーマ。
開発者 MCP stdio と Streamable HTTP、型付きツール 36 個、認証情報ごとの権限・スペース・有効期限・失効、OAuth PKCE、監査、冪等な更新、リソース参照、カーソル付きログ。

AgenticPenTestは認可確認と法的通知を表示します。管理者はシステム設定から通知を管理できます。

🚦 オープンソース機能比較

🟢 実装済み · 🔴 未実装 · — 公開文書で未確認。未確認は非対応という意味ではありません。

機能 AgenticPenTest ARTEX PentAGI PentestGPT Strix Faraday
LLM Agent 調整と実際のツール実行 🟢 🟢 🟢 🟢 🟢 —
Web 資産・検出事項管理 🟢 🟢 — — — 🟢
編集可能な STRIDE アーキテクチャ 🟢 — — — — —
AWS / GCP / Azure / Alibaba の読み取り専用資産収集 🟢 — — — — —
ワークスペース権限付き MCP サーバー:stdio + Streamable HTTP 🟢 — — — — —
Docker セルフホスト 🟢 🟢 🟢 🟢 🟢 🟢
管理者のドメイン/CIDR 範囲とカーネル通信分離 🟢 — — — — —
ベクトル・グラフによるタスク間意味検索メモリ 🔴 — 🟢 — — —
HTTP インターセプトプロキシ 🔴 — — — 🟢 —
HTTP トラフィック記録とリクエスト再実行 🔴 🟢 — — — —
ScopeSentry 資産同期 🔴 🟢 — — — —
外部スキャナーレポートの専用インポート連携 🔴 — — — — 🟢

MCP の行はワークスペース権限付きの開発者向けサーバーを指し、外部 MCP クライアントやコーディング Agent Skill だけの対応とは区別しています。

🖼️ 画面プレビュー

📸 静止画を表示
ダッシュボード 資産管理
ダッシュボード 資産管理
脅威モデリング タスクと証拠
脅威モデリング タスクと証拠

🧭 使い方

  1. 個人またはチームスペースを選び、LLM 接続を設定・テストして Agent にモデルを割り当てます。
  2. 必要なツールをインストールして手動で可用性を確認し、資産や対象のソースコードを追加・インポートします。
  3. 計画またはタスクを作成し、Agent、ワークフロー、クイック/完全モードを選んで実行します。選択したモードで必要なエンゲージメント設定とアクション承認を行います。
  4. 手順とログを確認し、検出事項と未検証項目をレビューします。必要に応じて中断・再開し、レポートを生成します。同じデータに MCP からもアクセスできます。

🔌 MCP 連携

MCP クライアントは Web UI と同じデータ、アクセス制御、永続タスクキューを使用します。36 個のツールで資産、観測、Agent、計画、タスク、ログ、検出事項、レポートを操作できます。

  1. システム設定 → 開発者と MCP で認証情報を作成し、権限、許可する個人/チームスペース、既定のスペースを選択します。有効期間は 1~90 日、既定は 30 日です。トークンは一度だけ表示されるため、保存してください。
  2. Streamable HTTP:現在の作業台の URL に /mcp を付け、Authorization: Bearer <developer-credential> を送信します。任意のヘッダー X-Workspace-Mode: personal または team で許可済みのスペースを選択できます。認可コードと S256 PKCE を使う OAuth にも対応します。
  3. stdio:クライアント側に Node.js ≥ 22.19 と、依存関係をインストール済み(npm ci)のソースディレクトリが必要です。ブリッジは既存の作業台に接続し、別のデータベースを作成しません。
⚙️ stdio クライアントの設定例
{
  "mcpServers": {
    "agenticpentest": {
      "command": "node",
      "args": [
        "<project-directory>/scripts/mcp-stdio.mjs"
      ],
      "env": {
        "AP_MCP_URL": "https://workbench.example/mcp",
        "AP_MCP_TOKEN": "<developer-credential>",
        "AP_MCP_WORKSPACE": "personal"
      }
    }
  }
}

例のパス、必要に応じて Node.js のコマンド、トークンを自分の環境に合わせて置き換えます。AP_MCP_URL は利用するインスタンス、AP_MCP_WORKSPACE はその認証情報で許可された personal または team を指定します。設定形式はクライアントによって異なります。

操作に必要な権限を付与してください。トークンの権限でアカウントの役割を昇格したり、許可されたスペースを広げたりすることはできません。

操作 必要な権限
資産・観測の参照 assets:read
資産のインポート・編集 assets:write
Agent・モデル・ツール一覧の参照 agents:read
Agent の変更 agents:write と管理者の役割
計画・タスク・進捗・ログの参照 tasks:read
Agent の起動・タスクの実行 tasks:execute とオペレーターまたは管理者の役割
検出事項・レポート・テンプレートの参照 reports:read
レポートの生成・アーカイブ reports:write

基本的な呼び出し順序:

  1. capabilities_list、agents_list、models_list、tools_list で利用可能な機能と設定を確認します。実行する Agent は有効化し、モデルと利用可能なツールを関連付けておく必要があります。
  2. assets_import で対象資産をインポートします。この操作だけではスキャンは始まりません。
  3. jobs_create は既定で下書きを作成します。設定を確認後に jobs_start を呼び出すか、作成時に明示的に startNow: true を指定します。
  4. jobs_get で進捗を確認します。jobs_logs は最初に after: 0 を渡し、返された nextCursor を次の after に指定します。findings_list、observations_list でタスクまたは資産別の結果を確認できます。
  5. reports_generate でレポートを保存し、reports_get で Markdown または HTML を取得します。

書き込みツールには idempotencyKey が必須です。同じ操作を再試行するときは同じキーと入力を使い、重複書き込みを防ぎます。別の操作には新しいキーを使用してください。クライアント切断後もタスクは継続するため、停止する場合は明示的に中断・キャンセルします。保存済みの結果は保持されます。

v1.0.1 以降、ライセンスは不要です。チーム管理者がシステム設定 → ネットワーク制限を開き、現在のパスワードで確認します。許可された CIDR とドメインを設定してください。0.0.0.0/0 は IPv4、::/0 は IPv6 の対象を許可します。特殊用途アドレスの除外は維持されます。*.example.com はすべての階層のサブドメインに一致しますが、example.com 自体は含みません。必要ならルートドメインを別途追加します。 ネットワーク範囲と実行環境のガイド

MCP 詳細ガイド:接続設定・権限・ツール引数・OAuth

🏗️ コード構成

%%{init: {'flowchart': {'wrappingWidth': 560}}}%%
flowchart TB
    FRONT["`フロントエンド<br/>ブラウザー UI · Vue / Element Plus / xterm.js<br/>開発者クライアント · MCP stdio ブリッジ`"]
    BACK["`バックエンド<br/>Node.js HTTP / Streamable HTTP MCP<br/>認証 / ワークスペース権限 / 業務サービス`"]
    AGENT["`Agent の調整<br/>プロセス内キュー · Leader + 専門 Agent<br/>割り当てた LLM · 計画 / 判断 / キャンセル`"]
    TOOLS["`ツール実行<br/>登録済みアダプター · HTTP / DNS / TLS / ネイティブ / アップロードツール<br/>管理者の対象範囲 + ホスト分離 · 読み取り専用クラウド SDK`"]
    DATA["`データ保存<br/>SQLite WAL · 空間別の資産 / 検出事項 / タスクログ<br/>暗号化した認証情報 · 証拠 / レポート / アップロード資料`"]
    FRONT --> BACK --> AGENT --> TOOLS --> DATA

🔄 既定 Agent のライフサイクル

既定 Agent はタスクの参加者であり、常駐プロセスではありません。必要かつ有効な専門 Agent のみが、割り当てられたモデルと役割プロンプトを使用します。判断は観測された証拠に基づき、完了状態はツールの終了コードだけでなく網羅性で決まります。

flowchart TB
    TASK["タスクと担当 Agent"]
    CHECK["範囲、入力、Agent の有効状態、モデル割り当てを確認"]
    QUEUE["同時実行上限に従って待機"]
    PLAN["Leader / 必要な専門 Agent が各自の LLM で計画"]
    SELECT["適用可能な登録済みツールを選択"]
    RUN["ポリシーを確認し、実行して証拠を保存"]
    MORE{"網羅性と予算の範囲内で続行?"}
    END["終了:完了 / 一部完了 / 失敗"]
    STOP["中断・キャンセル:既存の証拠を保持"]
    RESUME["再開:再確認し成功したチェックポイントを再利用"]
    TASK --> CHECK --> QUEUE --> PLAN --> SELECT --> RUN --> MORE
    MORE -->|はい| SELECT
    MORE -->|いいえ| END
    RUN -.-> STOP
    STOP -->|再開| RESUME --> CHECK
Dockerfile    コンテナーイメージのビルド
compose.yaml  公開済みイメージのデプロイ
src/          バックエンド、アダプター、MCP サービス
frontend/     コンポーネントのソース
public/       UI と生成済みファイル
i18n/         翻訳ソース
config/       Agent、ツール定義、互換性設定
scripts/      ビルド、インストール、stdio ブリッジ
tests/        機能テストと隔離環境
docs/         ガイド、多言語 README、画面例
deploy/       コンテナー実行用スクリプト

詳細アーキテクチャ.

🤝 ドキュメントと貢献

Git にデータベース、LLM/SSH キー、過去のテスト履歴は含まれません。初期化は既存データを保持します。SQLite と data/master.key を Git の外にバックアップしてください。

不具合・機能提案は Issue フォーム、コード変更は PR テンプレートを使用してください。再現手順、環境、検証結果を記載し、認証情報や対象の非公開情報を除いてください。

✉️ お問い合わせ

v1.0.1 以降、ライセンスは不要です。チーム管理者がシステム設定 → ネットワーク制限を開き、現在のパスワードで確認します。許可された CIDR とドメインを設定してください。0.0.0.0/0 は IPv4、::/0 は IPv6 の対象を許可します。特殊用途アドレスの除外は維持されます。*.example.com はすべての階層のサブドメインに一致しますが、example.com 自体は含みません。必要ならルートドメインを別途追加します。

  1. チーム管理者でログインし、システム設定 → ネットワーク制限 → テスト範囲を編集を開きます。個人空間のみの管理者権限では変更できません。
  2. 承認済み CIDR を 1 行ずつ入力します。例は 10.20.0.0/16 です。保存すると一覧が置き換わるため、必要な内部範囲を残してください。
  3. app.example.com または *.example.com のように、各行にドメインを入力します。URL や先頭以外のワイルドカードは拒否されます。すべての IPv4 対象が許可されている場合は CIDR 欄に 0.0.0.0/0 を入力できます。特殊用途アドレスの除外は維持されます。
  4. 現在の管理者パスワードを入力して保存します。現在の DNS アドレスをすべて確認します。検証に失敗しても元の範囲は変わりません。
  5. 範囲内の資産でタスクを開始し、進捗とログを確認します。範囲外のタスクや MCP は拒否されます。子プロセスには利用可能な Linux ホスト分離も必要です。
  6. 新しい DNS アドレスが範囲外になった場合は確認して再保存します。範囲変更でタスクが中断しても結果は保持されます。内部制限の復元で許可一覧を初期化します。

[email protected] — 24 時間以内に返信します。

ビジネス提携・スポンサー支援:[email protected] へお問い合わせください。継続的な開発・保守へのご支援を歓迎します。

WeChat 公式アカウント:Aaron与安全的那些事

⚖️ 利用とライセンス

テスト前に対象所有者の許可を取得し、その範囲と現地法令を守ってください。違法な利用は禁止し、利用に伴う結果は利用者が負います。AgenticPenTestには許可確認画面と法的通知が表示されます。

本プロジェクトのコードは MIT ライセンスです。サードパーティーツールには各自のライセンスが適用されます。

☁️ Codespaces で体験

GitHub Codespaces で開く

Codespace を作成し、環境確認・依存関係のインストール・初期化を待ち、ポート 8765 を開きます。承認に関する説明を読み、管理者を作成してください。既定の認証情報はありません。再起動してもデータとインストール ID は保持されます。

転送ポートは Private のままにしてください。開発体験用であり、常時ホスティングではありません。作者のネットワークには依存せず、ツールやクラウド SDK は自動取得しません。信頼できるホスト guard がなければ、隔離が必要なツールとリモート実行はライセンスがあってもブロックされます。画面、資産管理、手動の脅威モデリング、レポートを体験できます。LLM・クラウドは自身で設定してください。実際の GitHub Codespace で、自動インストール・ビルド・初期化、非公開 HTTPS 転送、10 秒の承認文書閲覧、管理者作成、資産インポート、再読み込み時の状態保持、タスクと MCP の公開宛先ブロック、ループバック HTTP、隔離サービスがない場合のツール実行拒否を検証済みです。初回はアプリの前に GitHub のポート信頼確認が表示される場合があります。実際のクラウドアカウントと外部 LLM サービスは未検証です。使用後は停止または削除してください。削除でローカルデータは失われ、GitHub の利用枠と料金が適用されます。

python3 .devcontainer/lifecycle.py setup
python3 .devcontainer/lifecycle.py start

既定の Codespace での実行対応

実行方法 状態
Agent 調整と組み込み HTTP / DNS / TLS 検査 到達可能な内部対象に対応。自身の LLM 設定が必要
Nmap・アップロードした実行ファイル 信頼できるホスト guard がないためブロック
リモートコマンド・SSH 端末・リスナー・WebShell 同等のリモート隔離がないためブロック

検証したコンテナには systemd システムマネージャーがなく、cgroup は読み取り専用で、名前空間の作成も拒否されます。systemd パッケージの追加だけでは guard を有効にできません。前提条件は reports/codespaces/environment.json、対応状況は システム設定 → ネットワーク制限 に表示します。内部とは Codespace から到達可能な範囲で、127.0.0.1 は Codespace 自体です。完全なツール実行には登録・カーネル検証済み guard を備えた Linux に導入してください。Docker socket の公開やポリシー無効化で代替しないでください。

⭐ Star の推移

💜 スポンサー

愛発電(Afdian)で AgenticPenTest の継続的な開発と保守をご支援いただけます。

💜 Afdian で支援する