
PhantomReconは、AI(Agent Development Kit - ADKを介したGoogleのGemini)を活用した自律的な攻撃的セキュリティワークフローを実証するために設計された、CLIベースのモジュール式エージェント駆動型レッドチーム自動化ツールです。
PhantomRecon は、CLI ベースのモジュール式・エージェント駆動型レッドチーム自動化ツールであり、AI(Agent Development Kit - ADK を介した Google の Gemini)を活用した自律型オフェンシブセキュリティワークフローを実証するために設計されています。
python -m phantomrecon
python -m phantomrecon --target example.com --auto \
--nmap-timeout 30 --nmap-top-ports 100 --nmap-args "-sV -Pn"
--target <domain|ip>: 評価対象のターゲット--auto: recon → plan → route → report を実行--nmap-timeout <seconds>: NMAP_TIMEOUT を上書き--nmap-top-ports <N>: NMAP_TOP_PORTS を上書き--nmap-args "...": Nmap 引数(NMAP_ARGS)に追記--nmap-disable: Nmap を無効化(NMAP_DISABLE=1 を設定)環境変数も直接サポートされています: NMAP_TIMEOUT、NMAP_TOP_PORTS、NMAP_ARGS、NMAP_DISABLE。
.gitignore は reports/* を除外しますが、reports/sample_report.md は除外しません。reports/ 配下にのみ置かれます。概念実証として構築されており、ターゲットの識別、広範な偵察(Nmap、DNS、Web 検索)の実行、LLM を使用した攻撃戦略の計画、条件付きでのシミュレートされたエクスプロイトの実行、レポートの生成をシミュレートします。
phantomrecon/
├── phantomrecon/ # Main package (exported orchestrator agent)
│ ├── __init__.py
│ ├── __main__.py # CLI entrypoint (interactive and non-interactive)
│ └── agent/ # Agent graph and tools
├── agents/ # Python modules containing agent/tool logic
│ ├── recon_logic.py # Nmap, DNS (dig), seeded web analysis; ADK search enabled
│ ├── routing_logic.py # Logic for the Exploit Router agent
│ ├── exploit_web_logic.py # Functions for web exploits (currently simulated)
│ ├── exploit_sql_logic.py # Functions for SQL exploits (currently simulated)
│ └── report_logic.py # Functions for report generation using session state
├── configs/
│ └── targets.json # (Optional) Target configuration
├── data/
│ └── dummy_scan_output.json # Example Nmap data if no target specified
├── demos/
│ └── walkthrough.md # Demo steps
├── prompts/ # Prompt templates for LLM agents
├── reports/
│ └── sample_report.md # Example output report
├── requirements.txt # Python dependencies (includes google-adk)
├── .gitignore # Files excluded from version control
└── LICENSE # MIT License
recon_workflow - 並列エージェント):
nmap_tool)を実行しますdns_tool)を実行しますweb_search_tool)をシミュレートしますaggregation_tool):
aggregated_recon_data をセッション状態に書き込みます。planning_agent - LlmAgent):
attack_planner_prompt.txt を使用して JSON 攻撃計画を生成します。attack_plan をセッション状態に書き込みます。exploit_router - RouterAgent):
attack_plan を読み取ります。python3、pip、nmap、dig、whois、sqlmap、wapiti、wpscan、searchsploit。python3 -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt
.env.example を .env にコピーするか(サンプルが存在する場合)、.env を編集します。このツールは、許可されたセキュリティテストおよび教育目的のみに使用してください。明示的な許可なくシステムに対して使用しないでください。
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
sudo apt install nmap または brew install nmap)sudo apt install dnsutils または brew install bind)sudo apt install whois または brew install whois)sudo apt install sqlmap または brew install sqlmap)sudo apt install wapiti または brew install wapiti)sudo apt install ruby-full の後に gem install wpscan、または brew install wpscan)adk web インターフェースを使用して、ユーザーにターゲット IP/ドメインを尋ねます。dig、nslookup、dig +trace、AXFR 試行、whois)sqlmap 経由)、Wapiti スキャン(解析結果)、WPScan(解析結果、条件付き)、基本的な反射型 XSS、基本的なコマンドインジェクション -(実実行チェック)searchsploit 経由)、認証後列挙(sqlmap ダイレクト接続経由) -(実実行チェック)searchsploit 経由)、設定監査(ssh-audit 経由、解析結果) -(実実行チェック)PhantomRecon は、Google の Agent Development Kit(ADK)を基盤とする完全自律型マルチエージェントアーキテクチャを使用します。
シニアオーケストレーターエージェント(gemini-1.5-pro-latest)
専門セキュリティエージェント
オーケストレーターは、シニアペネトレーションテスターのように動作します:
主な特徴:
context.session.state(ADK セッション)による状態管理executor_fix.py)CLI で実行(推奨):
python -m phantomrecon --target <domain|ip> --auto
対話型コンソール:
python -m phantomrecon
オプションの ADK ランナー:
adk run phantomrecon -- --target <domain|ip> --auto
web_exploit_tool、sql_exploit_tool)を条件付きで実行します。exploit_results リストに追加します。report_tool):
GOOGLE_API_KEY 変数用に Google API キー(AI Studio または Vertex AI セットアップから)を追加します。GOOGLE_GENAI_USE_VERTEXAI を True または False に設定し、関連する変数(GOOGLE_CLOUD_PROJECT、GOOGLE_CLOUD_LOCATION)を構成します。python -m phantomreconpython -m phantomrecon --target <target> --autoadk run phantomreconsudo apt install exploitdb または brew install exploitdb)requirements.txt に記載されている Python ライブラリ(pip install -r requirements.txt でインストール)ToolContext を使用して、エージェント/ツール間でデータを渡します。