
BoxPwnr v0.4.0
HackTheBox、TryHackMe、PortSwigger Labs、Cybench、picoCTFなどのセキュリティチャレンジにおけるLLMとエージェント型戦略をベンチマークするためのモジュラーフレームワーク。
BoxPwnr
大規模言語モデル(LLM)がCTFチャレンジやセキュリティラボを単独でどこまで解けるかを試す、楽しい実験です。当初は HackTheBox から始まり、現在では多くのプラットフォームとエージェント型ソルバーに対応しています。
BoxPwnr は、さまざまなエージェント型アーキテクチャの性能をテストするために使用できるプラグアンドプレイシステムを提供します: --solver [claude_code, codex, cursor-cli, grok, kiro_cli, external, single_loop_xmltag, single_loop, single_loop_compactation, hacksynth]。
対応プラットフォーム: --platform [htb, htb_ctf, htb_challenges, portswigger, ctfd, local, xbow, hackbench, cybench, cybergym, exploitbench, picoctf, tryhackme, levelupctf, argus]
対応する各プラットフォームの詳細なドキュメントについては、プラットフォーム実装 を参照してください。
トレース & ベンチマーク
すべての解答トレースは BoxPwnr トレース & ベンチマーク で公開されています。各トレースには、LLMの推論、実行されたコマンド、受け取った出力を示す完全な会話ログが含まれています。任意のトレースをインタラクティブなWebビューアで再生し、マシンがステップバイステップでどのように解決されたかを正確に確認できます。
| Platform | Solved | Completion | Traces |
|---|---|---|---|
| HTB Starting Point | 25/25 | 770 | |
| HTB Labs | 268/526 | 783 | |
| HTB Challenges | 324/818 | 732 | |
| PortSwigger Labs | 163/270 | 377 | |
| XBOW | 102/104 | 525 | |
| Cybench | 40/40 | 2165 | |
| CyberGym | 476/1507 | 977 | |
| picoCTF | 502/503 | 1215 | |
| TryHackMe | 213/477 | 905 | |
| HackBench | 11/16 | 27 | |
| ExploitBench | 2/42 | 58 | |
| LevelUpCTF | 50/254 | 146 | |
| Argus | 47/60 | 1026 | |
| BSidesSF CTF 2026 | 43/51 | 76 | |
| Cloud Village CTF 2026 | 12/20 | 30 | |
| Neurogrid CTF: The ultimate AI security showdown | 17/36 | 197 |
仕組み
BoxPwnr は、LLM(または Claude Code、Codex、Grok、Cursor などのCLIエージェント)を使用して、CTF / ラボのターゲットを反復プロセスを通じて自律的に解決します:
- 環境: デフォルトでは、コマンドは Kali Linux の Docker コンテナ内で実行されます(
--executor docker)
- 初回実行時にコンテナが自動的にビルドされます(約10分かかります)
- プラットフォームが必要とする場合、VPN接続が自動的に確立されます
- 実行ループ(デフォルトの
single_loop_*ソルバー):
- LLM は、そのタスクと制約を定義する詳細な システムプロンプト を受け取ります
- LLM は以前の出力に基づいて次のコマンドを提案します
- コマンドは選択されたエグゼキュータで実行されます
- 出力は分析のために LLM にフィードバックされます
- フラグ(またはプラットフォームの成功条件)が満たされるまでプロセスを繰り返します
- CLIベースのソルバー(
claude_code、codex、grok、cursor-cli、kiro_cli)は独自のエージェントループを実行し、結果を BoxPwnr にストリーミングで返します
- コマンド自動化:
- エージェントは手動操作なしで完全に自動化されたコマンドを提供するよう指示されます
- コマンドには適切なタイムアウトを含め、サービスの遅延を処理する必要があります
- 結果:
- 会話とコマンドは、分析 / 再生用のトレースとして保存されます
- フラグが見つかったときにサマリーを生成できます
- 使用統計(トークン、コスト、ターン数)が記録されます
使用法
前提条件
-
サブモジュールを含めてリポジトリをクローンします ```bash git clone --recurse-submodules https://github.com/0ca/BoxPwnr cd BoxPwnr
Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
Sync dependencies (creates .venv)
uv sync
2. Docker
- BoxPwnr を使用するには、Docker がインストールされ、実行されている必要があります。
- インストール手順はこちら: [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)
### BoxPwnr を実行する```bash
uv run boxpwnr --platform htb --target meow [options]
初回実行時には、必要なAPIキーの入力を求められます。キーは将来の使用に備えて.envに保存されます。CLIソルバー(Claude Code、Codex、Grok、Cursor、Kiro)は、APIキーの代わりに(または追加で)独自のサブスクリプション認証を使用します。
コマンドラインオプション
コアオプション
--platform:使用するプラットフォーム(htb、htb_ctf、htb_challenges、portswigger、ctfd、local、xbow、hackbench、cybench、cybergym、exploitbench、picoctf、tryhackme、levelupctf、argus)--target:ターゲット名(例:HTBマシンの場合はmeow、PortSwiggerラボの場合は"SQL injection UNION attack"、XBOWベンチマークの場合はXBEN-060-24)--debug:冗長なロギングを有効にします(ツール名と説明を表示)--debug-langchain:LangChainデバッグモードを有効にします(ツールスキーマ、LangChainトレース、生のAPIペイロードを含む完全なHTTPリクエストを表示 - 非常に冗長)--max-turns:停止するまでの最大ターン数(例:--max-turns 10)--max-cost:停止するまでの最大コスト(USD)(例:--max-cost 2.0)--max-time:試行あたりの最大時間(分)(例:--max-time 60)--attempts:ターゲットを解決するための試行回数(例:pass@5ベンチマークの場合は--attempts 5)--default-execution-timeout:コマンド実行のデフォルトタイムアウト(秒)(デフォルト:30)--max-execution-timeout:コマンド実行の最大タイムアウト(秒)(デフォルト:300)--custom-instructions:システムプロンプトに追加する追加のカスタム命令
プラットフォーム
--keep-target:完了後にターゲット(マシン/ラボ)を起動したままにします(手動でのフォローアップに便利)
分析とレポート
--analyze-attempt:完了後にTraceAnalyzerを使用して失敗した試行を分析します--generate-summary:完了後にソリューションの要約を生成します--generate-progress:失敗または中断された試行用の進捗引き継ぎファイル(progress.md)を生成します。このファイルは後で試行を再開するために使用できます。--resume-from:以前の試行のprogress.mdファイルへのパス。この内容は、以前の試行が中断したところから続行するためにシステムプロンプトに注入されます。--generate-report:既存のトレースディレクトリから新しいレポートを生成します