Proyecto HTB Agent について
Proyecto HTB Agentは、Hack The BoxのマシンやCTF向けのcline.bot用AIエージェントです。Kali LinuxのMCPサーバーを介してセキュリティテストを実行し、ワークフローを自然言語の文書で定義します。
主な機能
- 01自然言語によるワークフロー定義
- 02info.jsonからマシン情報を取得
- 03NmapやGobusterなどのワークフロー
- 04ツールの非同期実行
活用シーン
- 01マシン情報を基にHTBテストを開始
- 02サービスを列挙して脆弱性を調査
- 03長時間スキャンを実行し後で結果を取得
MCP 対応
アクセス可能なKali Linux MCPサーバーの設定が必要です。cline.botはMCPツールを使ってテストワークフローを実行します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
HTB エージェントプロジェクト
このプロジェクトの目的は、Kali Linux の MCP サーバーを利用して、Hack The Box(HTB)のマシンやセキュリティ CTF の攻略を支援する cline.bot 向けの AI エージェントを開発することです。
プロジェクトの理念
このプロジェクトでは、ワークフローを定義するために Python コードではなく、自然言語によるドキュメントを使用するアプローチを採用しています。これにより、追加の抽象化レイヤーを必要とせず、Kali MCP サーバーと直接やり取りできる cline.bot のネイティブ機能を活用できます。
AI エージェントは、以下を解釈します。
main_agent.pyで定義されたワークフロー全体の構造workflows.mdに記載された各ワークフローの詳細な実装info.jsonファイルに記載された各マシン固有の情報
プロジェクト構成
htb-agent/:エージェントの中核ロジックと設定が含まれています。workflows/:ツールとやり取りするためのワークフローを定義します。workflows.md:各ワークフローを自然言語で詳しく説明したドキュメントです。
rules/:AI の意思決定に必要なルールとヒューリスティクスを格納します。ctf_docs/:各 CTF マシンのドキュメントと入出力情報を保存します。[nombre_maquina]/:特定のマシン用のフォルダーです(例:titanic.htb/)。info.json:マシンの情報とエージェントの結果を格納するファイルです。
mcp_configs/:Kali MCP サーバーの設定です。agent_scripts/:エージェントの構造を実装する主要なスクリプトです。main_agent.py:ワークフロー全体の構造を定義します。
demo_executor.py:エージェントの実行をシミュレートするデモ用スクリプトです。
エージェントの使い方
cline.bot のエージェントに HTB マシンの作業を開始させるには、次の手順に従います。
-
マシン用フォルダーを準備します:
- マシン名を付けた新しいフォルダーを
htb-agent/ctf_docs/内に作成します(例:htb-agent/ctf_docs/titanic.htb/)。 - このフォルダー内に、最低限必要な情報を記載した
info.jsonファイルを作成します。
- マシン名を付けた新しいフォルダーを
-
info.jsonに必要な最低限の情報:info.jsonファイルには、少なくとも次のフィールドを含める必要があります。{ "target_ip": "DIRECCION_IP_DE_LA_MAQUINA", "hostname": "NOMBRE_DE_HOST_DE_LA_MAQUINA", "os": "SISTEMA_OPERATIVO_DE_LA_MAQUINA", "initial_scan_results": [], "known_vulnerabilities": [], "credentials": {}, "notes": "" }target_ip:対象マシンの IP アドレス(例:「10.10.11.55」)。hostname:マシンのホスト名(例:「titanic.htb」)。os:マシンのオペレーティングシステム(例:「Linux」、「Windows」)。- その他のフィールド(
initial_scan_results、known_vulnerabilities、credentials、notes)は、エージェントの作業の進行に応じて更新されます。
-
エージェントを起動します:
info.jsonの準備ができたら、次のような指示を出してエージェントを起動できます。Cline, inicia el agente para la máquina '[nombre_maquina]'(例:「Cline, inicia el agente para la máquina 'titanic.htb'」)
エージェントである私は
info.jsonを読み込み、main_agent.pyで定義されたワークフロー全体の構造を解釈し、workflows.mdに記載された詳細な実装を参照して、ネイティブ機能use_mcp_toolを通じて必要なツールを直接実行します。
Kali MCP サーバー
このプロジェクトでは、Kali Linux の MCP サーバーを設定し、アクセス可能な状態にしておく必要があります。接続設定は htb-agent/mcp_configs/kali_mcp_config.py にあります。
現在の Kali MCP サーバー設定:
- サーバー名:
kali-mcp - URL:
http://10.196.1.68:5000
Kali 仮想マシンが起動していること、MCP サーバーが実行中でアクセス可能なこと、そして VSCode の MCP サーバー設定で有効になっていることを確認してください。
実装済みのワークフロー
実装済みのワークフローについては htb-agent/workflows/workflows.md で詳しく説明しており、以下が含まれます。
- HTB VPN への接続
- Hosts ファイルの設定
- Nmap による初期スキャン
- Gobuster による Web 列挙
- Nikto による Web 分析
- SQLMap による SQL 脆弱性の検索
- Hydra による総当たり攻撃
- ツールの非同期実行
ワークフロー #8(ツールの非同期実行)は、Gobuster や Nikto など、実行に時間がかかるツールで特に便利です。このパターンではツールをバックグラウンドで実行し、後から結果を取得できるため、タイムアウトを回避し、ワークフローの効率を高められます。
非同期実行の例
# 1. Ejecutar herramientas en segundo plano
mkdir -p /home/kali/scan_results/machine_name && nohup gobuster dir -u http://machine_name.htb -w /usr/share/wordlists/dirb/common.txt -o /home/kali/scan_results/machine_name/gobuster_dirs.txt > /dev/null 2>&1 &
# 2. Verificar estado de herramientas
ps aux | grep -E 'gobuster|nikto' | grep -v grep
# 3. Recuperar resultados cuando estén disponibles
cat /home/kali/scan_results/machine_name/gobuster_dirs.txt
各ワークフローの実装の詳細については、workflows.md を参照してください。
解決プロセスのフェーズ
エージェントは、HTB マシンを攻略するため、以下のような構造化されたプロセスに従います。
- 環境の準備:VPN 接続、Hosts の設定
- 初期偵察:サービスを検出するための Nmap スキャン
- サービスの列挙:検出された各サービスの詳細な分析
- 初期侵入:脆弱性を利用した初期アクセスの獲得
- 侵入後の活動と権限昇格:アクセスの確立と権限の昇格
これらのフェーズは htb-agent/agent_scripts/main_agent.py で定義されていますが、エージェントは各マシンの固有の特徴に応じて調整できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。