
HackTheBox、TryHackMe、PortSwigger Labs、Cybench、picoCTFなどのセキュリティチャレンジにおけるLLMとエージェント型戦略をベンチマークするためのモジュラーフレームワーク。
大規模言語モデル(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ビューアで再生し、マシンがステップバイステップでどのように解決されたかを正確に確認できます。
BoxPwnr は、LLM(または Claude Code、Codex、Grok、Cursor などのCLIエージェント)を使用して、CTF / ラボのターゲットを反復プロセスを通じて自律的に解決します:
--executor docker)single_loop_* ソルバー):claude_code、codex、grok、cursor-cli、kiro_cli)は独自のエージェントループを実行し、結果を BoxPwnr にストリーミングで返しますサブモジュールを含めてリポジトリをクローンします ```bash git clone --recurse-submodules https://github.com/0ca/BoxPwnr cd BoxPwnr
curl -LsSf https://astral.sh/uv/install.sh | sh
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)--keep-target:完了後にターゲット(マシン/ラボ)を起動したままにします(手動でのフォローアップに便利)--analyze-attempt:完了後にTraceAnalyzerを使用して失敗した試行を分析します--generate-summary:完了後にソリューションの要約を生成します--generate-progress:失敗または中断された試行用の進捗引き継ぎファイル(progress.md)を生成します。このファイルは後で試行を再開するために使用できます。--resume-from:以前の試行のprogress.mdファイルへのパス。この内容は、以前の試行が中断したところから続行するためにシステムプロンプトに注入されます。--generate-report:既存のトレースディレクトリから新しいレポートを生成します--solver:使用するLLMソルバー(claude_code、codex、cursor-cli、grok、kiro_cli、external、single_loop_xmltag、single_loop、single_loop_compactation、hacksynth)--model:使用するAIモデル(デフォルト:openrouter/openai/gpt-oss-120b)。サポートされているモデルは以下のとおりです:
claude-sonnet-4-0、claude-opus-4-0、)externalソルバーを使用すると、BoxPwnrは任意の外部ツール(Claude Code、Aider、カスタムスクリプトなど)に処理を委任できます:
--external-timeout:外部ソルバーのサブプロセスのタイムアウト(秒)(デフォルト:3600)--の後のコマンド:実行する外部コマンド(例:-- claude -p "$BOXPWNR_PROMPT")外部ツールで使用できる環境変数:
BOXPWNR_PROMPT:ターゲット情報を含む完全なシステムプロンプトBOXPWNR_TARGET_IP:ターゲットの接続情報(IP/ホスト名)BOXPWNR_CONTAINER:Dockerコンテナ名(VPNシナリオで便利)BoxPwnrは、--executorを使用してコマンドを実行するためのさまざまな環境をサポートしています:
docker(デフォルト):BoxPwnrが自動的にビルドおよび管理する分離されたKali Linux Dockerコンテナ内でコマンドを実行します。これは、ほとんどのプラットフォームとユースケースで推奨されるオプションです。ssh:SSH経由でリモートホスト上でコマンドを実行します。カスタムネットワーク設定や自前のインフラストラクチャで実行する場合に便利です。--ssh-hostが必要です(オプションで--ssh-username、--ssh-key-path、--ssh-port)。platform:プラットフォーム独自のアタックボックス/ターミナル(WebSocket)経由でコマンドをルーティングします。これは--platform levelupctfを使用する場合に必須です。関連オプション:
--keep-container:完了後にDockerコンテナを起動したままにします(後続の試行を高速化します)。--architecture:特定のコンテナアーキテクチャを強制します(Apple Siliconではamd64が便利です)。--image:組み込みのKaliイメージの代わりにカスタムDockerイメージを使用します。--ctf-id:CTFイベントのID(--platform htb_ctfを使用する場合に必須)--ctfd-url:CTFdインスタンスのURL(--platform ctfdを使用する場合に必須)--exploitbench-config:ベンチマーク設定名(デフォルト:v8)--exploitbench-success-cap:成功としてカウントされるケイパビリティ(デフォルト:ace)--exploitbench-seed:エピソードシード(デフォルト:1)uv run boxpwnr --platform htb --target meow --debug
uv run boxpwnr --platform htb --target meow --debug --keep-container
uv run boxpwnr --platform htb --target meow --architecture amd64
uv run boxpwnr --platform htb --target meow --max-turns 10
uv run boxpwnr --platform htb --target meow --max-cost 1.5
uv run boxpwnr --platform htb --target meow --attempts 5
uv run boxpwnr --platform htb --target meow --model claude-sonnet-4-0
uv run boxpwnr --platform htb --target meow --model claude-haiku-4-5-20251001 --max-cost 0.5
uv run boxpwnr --platform htb --target meow --model gpt-5-mini --max-cost 1.0
uv run boxpwnr --platform htb --target meow --model grok-4 --max-cost 2.0
uv run boxpwnr --platform htb --target meow --model openrouter/openrouter/free --max-cost 0.5
uv run boxpwnr --platform htb --target meow --model openrouter/openai/gpt-oss-120b --max-cost 1.0
uv run boxpwnr --platform htb --target meow --model openrouter/moonshotai/kimi-k2.5 --max-cost 1.0
uv run boxpwnr --platform htb --target meow --model cline/minimax/minimax-m2.5
uv run boxpwnr --platform htb --target meow --model z-ai/glm-5 --max-cost 1.0
uv run boxpwnr --platform htb --target meow --model kilo/z-ai/glm-5
uv run boxpwnr --platform htb --target meow --model kimi/kimi-k2.5 --max-cost 1.0
uv run boxpwnr --platform htb --target meow --model opencode/big-pickle --max-cost 0.5
uv run boxpwnr --platform htb --target meow --solver claude_code --model claude-sonnet-4-0 --max-cost 2.0
uv run boxpwnr --platform htb --target meow --solver codex --model gpt-5.3-codex --max-time 60
uv run boxpwnr --platform cybench --target "[Very Easy] Dynastic" --solver grok --max-time 60
uv run boxpwnr --platform htb --target meow --solver cursor-cli --model composer-2.5 --max-time 60
uv run boxpwnr --platform htb --target meow --solver kiro_cli --max-time 60
uv run boxpwnr --platform htb --target meow --solver hacksynth --model gpt-5 --max-cost 1.0
uv run boxpwnr --platform htb --target meow --solver single_loop_compactation --model gpt-5 --max-turns 100
uv run boxpwnr --platform htb --target meow --solver single_loop_compactation --compaction-threshold 0.70 --preserve-last-turns 15
uv run boxpwnr --platform htb --target meow --model nvidia/moonshotai/kimi-k2.6 --max-cost 1.0 uv run boxpwnr --platform htb --target meow --model nvidia-web/moonshotai/kimi-k2.6 --max-time 60
uv run boxpwnr --generate-report machines/meow/traces/20250129_180409
uv run boxpwnr --platform htb_challenges --target "Flag Command"
uv run boxpwnr --platform htb_ctf --ctf-id 1234 --target "Web Challenge"
uv run boxpwnr --platform ctfd --ctfd-url https://ctf.example.com --target "Crypto 101"
uv run boxpwnr --platform htb --target meow --custom-instructions "Focus on privilege escalation techniques and explain your steps in detail"
uv run boxpwnr --platform htb --target meow --generate-progress --max-turns 20
uv run boxpwnr --platform htb --target meow --resume-from targets/htb/meow/traces/20250127_120000/progress.md --max-turns 30
uv run boxpwnr --platform xbow --target XBEN-060-24 --model gpt-5 --max-turns 30
uv run boxpwnr --platform xbow --list
uv run boxpwnr --platform cybench --target "[Very Easy] Dynastic" --model gpt-5 --max-cost 2.0
uv run boxpwnr --platform cybench --target "benchmark/hackthebox/cyber-apocalypse-2024/crypto/[Very Easy] Dynastic" --model gpt-5 --max-cost 2.0
uv run boxpwnr --platform cybench --list
uv run boxpwnr --platform exploitbench --target sample-stack-bof --solver grok --exploitbench-success-cap ace --max-time 60 uv run boxpwnr --platform exploitbench --list
uv run boxpwnr --platform argus --list uv run boxpwnr --platform argus --target APEX-001 --model gpt-5 --max-cost 1.0
uv run boxpwnr --platform cybergym --list uv run boxpwnr --platform cybergym --target arvo:10013 --model gpt-5 --max-cost 2.0
uv run boxpwnr --platform htb --target meow --solver external -- bash -c 'claude --dangerously-skip-permissions -p "$BOXPWNR_PROMPT"'
uv run boxpwnr --platform htb --target meow --solver external -- bash -c 'codex --yolo "$BOXPWNR_PROMPT"'
uv run boxpwnr --platform htb --target meow --solver external --external-timeout 7200 -- bash -c 'claude --dangerously-skip-permissions -p "$BOXPWNR_PROMPT"'
uv run boxpwnr --platform htb --target meow --solver external --
bash -c 'docker exec -e IS_SANDBOX=1 -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" "$BOXPWNR_CONTAINER" claude --dangerously-skip-permissions -p "$BOXPWNR_PROMPT"'
## Why HackTheBox?
HackTheBoxのマシンは、AIシステムを評価するための優れたエンドツーエンドのテスト環境を提供します。なぜなら、以下が必要だからです:
- 複雑な推論能力
- 創造的な「型にはまらない」思考
- さまざまなセキュリティ概念の理解
- 複数のステップを連鎖させる能力
- 動的な問題解決スキル
## Why Now? *(2025年1月26日執筆)*
LLM技術の最近の進歩により:
- モデルの推論能力はますます洗練されている
- これらのモデルを実行するコストは低下している(DeepSeek R1 Zeroを参照)
- コードを理解・生成する能力は向上している
- コンテキストを維持し、多段階問題を解決する能力も向上している
私は、今後数年以内にLLMがほとんどのHTBマシンを自律的に解決できるようになり、AIセキュリティテストと問題解決能力における重要なマイルストーンになると考えています。
## Development
### Testing
BoxPwnrは、GitHubにプッシュする前に正確なCI環境をシミュレートする `[act](https://github.com/nektos/act)` を使用して、GitHub Actionsワークフローをローカルで実行することをサポートしています:```bash
# Install act (macOS)
brew install act
# Run CI workflows locally
make ci-test # Run main test workflow
make ci-integration # Run integration tests (slow - downloads Python each time)
make ci-docker # Run docker build test
make ci-all # Run all workflows
このプロジェクトは研究および教育目的にのみ使用されるものです。このツールを使用する際は、常に各プラットフォームの利用規約および倫理ガイドラインを遵守してください。
| 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 |
--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:システムプロンプトに追加する追加のカスタム命令claude-haiku-4-5-20251001gpt-5、gpt-5-nano、gpt-5-minideepseek-reasoner、grok-4、gemini-3-flash-previewopenrouter/company/model(例:openrouter/openrouter/free、openrouter/openai/gpt-oss-120b、openrouter/x-ai/grok-4-fast、openrouter/moonshotai/kimi-k2.5)integrate.api.nvidia.com経由のnvidia/company/model(例:nvidia/moonshotai/kimi-k2.6)nvidia-web/company/model(例:nvidia-web/moonshotai/kimi-k2.6)z-ai/model-name(例:z-ai/glm-5、z-ai/glm-5.2)kilo/model-name(例:kilo/z-ai/glm-5)kimi/model-name(例:kimi/kimi-k2.5、kimi/kimi-k2.7)cline/minimax/minimax-m2.5、cline/moonshotai/kimi-k2.5(cline authが必要、以下を参照)ollama-cloud/model-name(例:ollama-cloud/minimax-m3:cloud)ollama:model-name--reasoning-effort:推論対応モデルの推論努力レベル(minimal、low、medium、high)。gpt-5、o4-mini、grok-4など、推論をサポートするモデルにのみ適用されます。推論モデルのデフォルトはmediumです。