アップデート一覧に戻る
New releaseJul 28, 2026

toolbox v0.2.0

CLIとMCPを介した人間とエージェント間の協調的アプリケーションセキュリティテスト

共有
go-appsec/toolbox

license Build Status Vibe-Scale 1.0(V2|U0|T0): Significant AI, fully reviewed

コーディングエージェント向けのMCPベースのアプリケーションセキュリティテストツール。

スキャナーではなく、協調的なワークベンチです。エージェントはUIやステートフルなAPIが苦手ですが、あなたはどちらも得意です。Sectoolを使えば、プロキシを通じてアプリケーションを探索しながら、エージェントがあなたが生成したのと同じ認証済みトラフィックを分析・操作できます。

あなたが認証とUI操作を担当し、エージェントがフローを照会し、リクエストを改変し、リフレクションを見つけ、アウトオブバンド通信を監視し、その他の順列を試みます。両者の能力を組み合わせることで、定型作業が容易になり、隠れた指標を見逃しにくくなり、複雑なテストがより徹底されます。

はじめに

1. sectoolのインストール

go install github.com/go-appsec/toolbox/sectool@latest

Goがない場合 最新リリースからお使いのプラットフォーム(Linux、macOS、Windows — amd64およびarm64)用のバイナリをダウンロードしてください。

2. MCP(Model Context Protocol)サーバーの起動

sectool mcp

これにより、ポート9119でMCPサーバーが起動し、ポート8080で組み込みHTTPプロキシが起動します。

3. ブラウザの設定

ブラウザのプロキシ設定を127.0.0.1:8080(または--proxy-portで指定したポート)に設定してください。

HTTPS傍受には、~/.sectool/ca.pemからCA証明書をインストールしてください(初回実行時に自動生成されます)。ほとんどのブラウザは証明書設定から受け入れます。macOSではシステムキーチェーンに追加することもできます。

Burpを使用する場合 代わりにBurpのプロキシ設定に従い、sectool mcp --burpでsectoolを起動してください。

4. エージェントの接続

Claude Code:

claude mcp add --transport http sectool http://127.0.0.1:9119/mcp

Codex (~/.codex/config.toml):

[mcp_servers.sectool]
url = "http://127.0.0.1:9119/mcp"

5. 協調作業

エージェントと協力してテスト計画を立て、一緒に実行しましょう。エージェントはプロキシ履歴の照会、改変したリクエストのリプレイ、エンドポイントのクロール、アウトオブバンド通信のテストを行い、あなたは認証やUIの操作・確認といったブラウザベースの操作を担当します。

サーバーオプション

プロキシバックエンド

ネイティブ: ワイヤーフィデリティとHTTP/1.1、HTTP/2、WebSocketをサポートする組み込みプロキシ。MITMテストにおいてBurpと同等の能力を持つよう設計されています。単一のバイナリでMCPサーバー、プロキシ、CLIを提供し、完全に自己完結型でヘッドレス環境でも使用できます。

Burp(オプション): エージェントの操作を確認するGUIを好む場合や、すでにBurpを実行している場合は、BApp StoreからMCP拡張機能をインストールし、MCPサーバーがhttp://127.0.0.1:9876/で実行されていることを確認してください。

オプション説明
(デフォルト)自動検出: まずBurp MCPを試し、利用できなければネイティブプロキシにフォールバック
--proxy-port 8080指定したポートでネイティブプロキシを強制
--burpBurp MCPを強制(利用できない場合は失敗)

セッションオプション

ワークフロー

Sectoolは、セッション開始時にエージェントがworkflowツールを呼び出すと、適切なワークフローを自動的に決定します。ワークフローを事前に指定することで、このステップを省略しトークンを節約できます:

sectool mcp                        # デフォルト: エージェントがworkflowツールでタスクタイプを選択
sectool mcp --workflow explore     # 探索モードを事前設定
sectool mcp --workflow test-report # 検証モードを事前設定
sectool mcp --workflow none        # ワークフロー指示なし
sectool mcp --workflow multi       # 複数のエージェントがサーバーを共有
モード説明
(デフォルト)エージェントがworkflowツールを呼び出してタスクタイプを選択し、協調作業の指示を受け取る
explore探索的セキュリティテスト。すべてのツールが利用可能
test-report特定の脆弱性レポートの検証。クロールツールは除外される
noneワークフロー指示なし。すべてのツールが即座に利用可能
multi複数のユーザーやエージェントがサーバーを共有する場合。あるエージェントが別のエージェントを混乱させる可能性のある機能を非表示にする

ワークフロー指示は、エージェントがすべてを自律的に行おうとしたり、価値を加えずにプロセスを案内したりするのではなく、協調的なテストへと導きます。エージェントの協調を改善するアイデアがあれば、issueを開いてください。

ノート

--notesフラグは、フローにリンクされた観察を保存するためのnotes_saveおよびnotes_listツールを有効にします。短いセッションでのコンテキスト使用量を最小限に抑えるため、デフォルトでは無効になっています。複数の発見や会話の圧縮が予想される場合に有効にしてください。

MCPトランスポート

サーバーは2つのエンドポイントを公開します:

  • /mcp - Streamable HTTP(推奨)
  • /sse - SSE(レガシー、古いクライアント向け)

CLI使用例

CLIはエージェントと状態を共有し、確認、リプレイ、スクリプト作成のための人間に優しいインターフェースを提供します。すべてのCLIコマンドはMCPツールに対応しているため、エージェントは同じ状態を共有します。

# Review what the proxy captured while you browsed
sectool proxy summary
sectool proxy list --host example.com
sectool proxy cookies --name session_id

# Crawl an app to discover endpoints and forms
sectool crawl create --url https://example.com
sectool crawl summary <session_id>

# Replay a captured request with modifications
sectool replay send --flow <flow_id> --set-header "X-Test: value"

# Set up out-of-band interaction testing and check for callbacks
sectool oast create
sectool oast poll <oast_id>
sectool oast get <event_id>

# Compare two flows, detect reflections, inspect JWTs
sectool diff <flow_a> <flow_b> --scope response
sectool reflected <flow_id>
sectool jwt <token>

# Export a flow, edit it offline, and resend
sectool proxy export <flow_id>
# ... edit ./sectool-requests/<flow_id>/request.http ...
sectool replay send --bundle <flow_id>

詳細なオプションについてはsectool <command> --helpを使用してください。

主な機能

  • ワイヤーフィデリティプロキシ - ヘッダーの順序、大文字小文字、プロトコルの異常を保持するHTTP/1.1およびHTTP/2 MITM
  • リプレイと改変 - マッチ/置換ルールによるライブトラフィックの書き換え、またはエージェント最適化APIを通じた改変付きキャプチャリクエストの再送信
  • フローの差分 - 2つのフローの構造化されたコンテンツタイプ対応の比較(JSONパスレベル、統合テキスト、バイナリサイズ)による迅速なレポート検証
  • JSサーフェス分析 - JavaScript/HTMLバンドルからエンドポイント、ルート、シークレットを抽出し、任意の呼び出し箇所を利用可能なリクエストに展開
  • リフレクション検出 - 複数のエンコーディングバリアントにわたってレスポンスに反映されたリクエストパラメータ値を検出し、インジェクションポイントを明らかにする
  • OAST - Interactshによるアウトオブバンド通信テスト。ドメインを作成し、DNS/HTTP/SMTPコールバックをポーリング
  • リダイレクトプロービング - OASTセッションが307リダイレクトを返し、ターゲットがリダイレクトに従うかどうかを検出。SSRFチェーンや検証バイパスに有用
  • クローリング - エンドポイント、フォーム、アプリケーション構造を発見。プロキシ履歴またはURLからシード
  • WebSocketサポート - WebSocketメッセージのフレームレベルの傍受、プロキシ、マッチ/置換
  • ワークフローモード - タスク固有のエージェントガイダンス(explore、test-report)による協調品質の向上とトークンの無駄の削減
  • エンコーディングユーティリティ - URL、Base64、HTMLのエンコード/デコード、ハッシュ(MD5/SHA/HMAC)、JWT検査
  • Burp Suite統合 - Burp MCP拡張機能によるオプションのGUIフロントエンド、またはネイティブプロキシによる完全なヘッドレス実行

自動スキャン

sectoolをsidenucleiと組み合わせてください。これは、あなたが触れるすべてのエンドポイントに対してNucleiを実行するファーストパーティのサイドカーです。--notesを付けてsectoolを起動し、セッションと並行してsidenucleiをアタッチすると、実際にキャプチャされたリクエストを使用して各エンドポイントをスキャンするため、実際のパラメータ、Cookie、認証済みセッションでテストが実行されます。発見は、それを引き起こしたフローにリンクされたfindingノートとして記録され、あなたとエージェントが手動テストに集中する間、追加のカバレッジを提供します。

カスタムプロトコルサポート

HTTPとWebSocketに加えて、sectoolはサイドカーアダプタモデルを通じてカスタムおよびバイナリプロトコル(一般にリクエスト/レスポンス)をサポートします。サイドカーAPIを使用して接続・通信するアダプタを作成してください。サイドカーのトラフィックは同じ統合フロータイムラインに記録されるため、flow_get、diff_flow、replay_send、その他のツールが変更なしで機能します。アダプタはJSON-RPC 2.0 API上で任意の言語で作成でき、登録、ルールキャッシュ、フロー出力を処理するSDKクライアントを使用してGoでも作成できます。サイドカーSDKとプロトコルに両方が記載されています。

カテゴリ