PentesterFlow/agent
Agentic offensive-security in your terminal
PentesterFlow – ペネトレーションテストのための Human‑in‑the‑Loop エージェント型 AI CLI
概要 – セキュリティアナリストが LLM 駆動の「エージェント」をペネトレーションテストの業務を通じて操作できる、オープンソースのターミナルベースの助手です。エージェントは計画を立て、実際のセキュリティツール(curl, shell, Burp, ファイルユーティリティなど)を呼び出し、破壊的なアクションを実行する前にアナリストの承認を求めます。すべてのインタラクションはログに記録され、証拠が保存され、セッションを後で再開できます。
重要性 – 汎用的な AI エージェントは、しばしば発見事項のハルシネーション(幻覚)を起こしたり、長期的な業務においてコンテキストを失ったり、実際に行っていることを隠したりします。PentesterFlow は、以下の方法でこれらの問題に対処します:
- 権限ティアによって人間がコントロールを維持する(
ask,auto-safe,yolo)。 - すべてのツール呼び出し(例:正確な
curlコマンド)を表示し、リクエスト/レスポンスの証拠を保存する。 - セッションを越えて「メモリ」を保持することで、モデルが再学習を必要とせずにプロジェクト固有の事実を記憶する。
- セキュリティに特化した組み込みの スキル(recon, IDOR, SSRF, JWT, GraphQL など)を、構造化されたプレイブックとして提供する。
使用方法
- インストール – macOS, Linux, または Windows 用のワンライナー・インストール・スクリプト(またはビルド済みのバイナリ)を実行します。スクリプトは SHA‑256 チェックサムを検証します。
curl -fsSL https://raw.githubusercontent.com/PentesterFlow/agent/main/install.sh | sh - CLI の起動 –
pentesterflowを実行すると、OpenTUI チャットインターフェースが起動します。 - モデルの設定 –
/providerを使用するか、--backend/--modelフラグを渡します。Ollama/LM Studio を介したローカルモデル、およびホスト型 API(OpenAI‑compatible, Anthropic, Gemini, Groq, Kimi, DeepSeek, など)と連携できます。 - ターゲットの設定 –
/target https://app.example.com。 - 目的の設定 – 例:
test the orders API for broken access control。エージェントは以下の動作を行います:- 一連の手順を計画する。
- ツールを呼び出す(HTTP リクエスト, shell コマンド, Burp インジェスト, ファイル編集)。
- 「機密性の高い」アクションに対して、あなたの承認を待機する。
- 証拠を記録し、発見事項が確定した際に
./findings/に Markdown レポートを書き出す。
- 後で再開する –
pentesterflow --resume <session‑id>を実行すると、保存された JSON セッションを読み込み、概要を表示し、中断したところから再開します。
主な機能
| 機能 | 内容 |
|---|---|
| Agent loop | 計画 → 実行 → 観察 → 検証 → レポート → 学習、オプションで自動継続が可能。 |
| Model flexibility | Ollama, LM Studio, Kimi, Groq, OpenRouter, DeepSeek, Gemini, Anthropic, およびすべての OpenAI‑compatible エンドポイントをサポート。 |
| Tool suite | Shell/Bash, HTTP client, file read/write, grep/glob, web fetch/search, Burp bridge, browser capture, coverage tracking, background jobs, および拡張可能なプラグイン。 |
| Skills (playbooks) | recon, web vulns, SSRF, SSTI, JWT, GraphQL, race conditions, など、準備された Markdown ベースのメソドロジーを搭載。メインのコンテキストを軽量に保つため、子エージェントにフォーク(分岐)させることも可能。 |
| Permission tiers | ask (各リスクのある呼び出しの前にプロンプトを表示), auto-safe (安全な呼び出しを自動承認), yolo (すべてを自動承認 – ラボ環境のみ推奨)。 |
| Transparent execution | すべてのコマンドは表示され、コピー&ペースト可能で、JSON-lines 形式でログに記録されます。 |
| Continuous learning | 各ターンごとに、システムは有用な事実、成功したワークフロー、およびミスを失敗として ./.pentesterflow/intelligence/ (プロジェクト) および ~/.pentesterflow/intelligence/ (個人) に静かに保存します。これらは将来のセッションにおける隠しコンテキストとして注入されます。 |
| Session memory & resume | 会話の全内容、圧縮されたメモリ、ターゲットの状態、および定期的なスアップショットを ~/.pentesterflow/sessions/ に保存。 |
| Reporting | 確定した発見事項は、PoC, impact, remediation, および添付されたリクエスト/レスポンスの証拠とともに、Markdown (./findings/<slug>.md) として書き出されます。/report を介して SARIF 形式でエクスポートポート。 |
| Burp integration | コンパニオン・ブリッジを使用することで、選択した Burp リクエストを CLI に送り、確定した発見事項を CLI から取り戻すことができます。 |
| Browser capture / MCP | キャプチャされたブラウザのトラフィックを構造化データとして取り込み、エージェントが照会可能にします。 |
セキュリティモデル – このツールは任意の shell コマンドを実行し、ファイルを編集できますが、リスクのある yolo モードを有効にしない限り、ユーザーの明示的な同意なしにそれを行うことはありません。機密情報は、永続的なメモリファイルに書き込まれる前に、Redacted(伏せ字)処理されます。README では、ソフトウェアを明示的に許可されたシステム上でのみ使用することを強調しています。
典型的なワークフローの例
$ pentesterflow
> /target https://app.example.com
> test the orders API for broken access control
[Agent] plans: enumerate /orders endpoints → try IDOR → confirm finding
[Tool] http GET https://app.example.com/api/v1/orders/1043
[Tool] shell curl ... (awaiting approval)
> approve
[Agent] confirms high‑severity IDOR, writes ./findings/idor-orders.md
Ready – qwen3:14b – app.example.com
対象ユーザー – セキュリティエンジニア、バグバウンティ・ハンター、または、監査可能性とコントロールを完全に維持しながら LLM の支援を受けたいレッドチーム・メンバー。
上記の情報はリポジトリの README から直接引用されています。追加の機能については推測していません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト