
Um framework modular para benchmarking de LLMs e estratégias agentivas em desafios de segurança através de HackTheBox, TryHackMe, PortSwigger Labs, Cybench, picoCTF e mais.
Um experimento divertido para ver até onde os Modelos de Linguagem de Grande Escala (LLMs) podem ir na resolução autônoma de desafios CTF e laboratórios de segurança. Tudo começou com HackTheBox e agora abrange muitas plataformas e solvers baseados em agentes.
O BoxPwnr fornece um sistema plug and play que pode ser usado para testar o desempenho de diferentes arquiteturas de agentes: --solver [claude_code, codex, cursor-cli, grok, kiro_cli, external, single_loop_xmltag, single_loop, single_loop_compactation, hacksynth].
Plataformas suportadas: --platform [htb, htb_ctf, htb_challenges, portswigger, ctfd, local, xbow, hackbench, cybergym, exploitbench, picoctf, tryhackme, levelupctf, argus]
Consulte Implementações de Plataforma para documentação detalhada sobre cada plataforma suportada.
Todos os traces de resolução estão disponíveis em BoxPwnr Traces & Benchmarks. Cada trace inclui logs completos da conversa, mostrando o raciocínio do LLM, os comandos executados e as saídas recebidas. Você pode reproduzir qualquer trace em um visualizador web interativo para ver exatamente como a máquina foi resolvida, passo a passo.
O BoxPwnr usa LLMs (ou agentes CLI como Claude Code, Codex, Grok ou Cursor) para resolver autonomamente alvos de CTF / laboratórios por meio de um processo iterativo:
--executor docker)single_loop_*):claude_code, codex, grok, cursor-cli, kiro_cli) executam seu próprio loop de agente e transmitem os resultados de volta ao BoxPwnrClone o repositório com submódulos ```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
- O BoxPwnr requer que o Docker esteja instalado e em execução
- As instruções de instalação podem ser encontradas em: [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)
### Executar o BoxPwnr```bash
uv run boxpwnr --platform htb --target meow [options]
Na primeira execução, você será solicitado a fornecer as chaves de API necessárias. As chaves são salvas no .env para uso futuro. Os solvers de CLI (Claude Code, Codex, Grok, Cursor, Kiro) usam sua própria autenticação por assinatura em vez de (ou além de) chaves de API.
--platform: Plataforma a usar (htb, htb_ctf, htb_challenges, portswigger, ctfd, local, xbow, hackbench, cybench, cybergym, exploitbench, picoctf, tryhackme, levelupctf, argus)--keep-target: Mantém o alvo (máquina/laboratório) em execução após a conclusão (útil para acompanhamento manual)--analyze-attempt: Analisa tentativas falhas usando o TraceAnalyzer após a conclusão--generate-summary: Gera um resumo da solução após a conclusão--generate-progress: Gera um arquivo de transferência de progresso (progress.md) para tentativas falhas/interrompidas. Esse arquivo pode ser usado para retomar a tentativa posteriormente.--resume-from: Caminho para um arquivo progress.md de uma tentativa anterior. O conteúdo será injetado no prompt do sistema para continuar de onde a tentativa anterior parou.--generate-report: Gera um novo relatório a partir de um diretório de rastreamento existente--solver: Solver LLM a usar (claude_code, codex, cursor-cli, grok, kiro_cli, external, single_loop_xmltag, single_loop, single_loop_compactation, hacksynth)--model: Modelo de IA a usar (padrão: openrouter/openai/gpt-oss-120b). Os modelos compatíveis incluem:
claude-sonnet-4-0, , )O solver external permite que o BoxPwnr delegue a qualquer ferramenta externa (Claude Code, Aider, scripts personalizados, etc.):
--external-timeout: Tempo limite para o subprocesso do solver externo em segundos (padrão: 3600)--: O comando externo a executar (ex.: -- claude -p "$BOXPWNR_PROMPT")Variáveis de ambiente disponíveis para ferramentas externas:
BOXPWNR_PROMPT: Prompt completo do sistema com informações do alvoBOXPWNR_TARGET_IP: Informações de conexão do alvo (IP/hostname)BOXPWNR_CONTAINER: Nome do contêiner Docker (útil para cenários VPN)O BoxPwnr suporta diferentes ambientes para executar comandos usando --executor:
docker (padrão): Executa comandos dentro de um contêiner Docker Kali Linux isolado que o BoxPwnr cria e gerencia automaticamente. Esta é a opção recomendada para a maioria das plataformas e casos de uso.ssh: Executa comandos em um host remoto via SSH. Útil para configurações de rede personalizadas ou quando executado em sua própria infraestrutura. Requer --ssh-host (e opcionalmente --ssh-username, --ssh-key-path, --ssh-port).platform: Roteia comandos pelo próprio attackbox/terminal da plataforma (WebSocket). Isso é obrigatório ao usar --platform levelupctf.Opções relacionadas:
--keep-container: Mantém o contêiner Docker em execução após a conclusão (acelera tentativas subsequentes).--architecture: Força uma arquitetura específica de contêiner (amd64 é útil em Apple Silicon).--image: Usa uma imagem Docker personalizada em vez da imagem Kali embutida.--ctf-id: ID do evento CTF (obrigatório ao usar --platform htb_ctf)--ctfd-url: URL da instância CTFd (obrigatório ao usar --platform ctfd)--exploitbench-config: Nome da configuração do benchmark (padrão: v8)--exploitbench-success-cap: Capacidade que conta como sucesso (padrão: ace)--exploitbench-seed: Semente do episódio (padrão: 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"'
## Por que HackTheBox?
As máquinas do HackTheBox fornecem um excelente campo de testes de ponta a ponta para avaliar sistemas de IA, pois exigem:
- Capacidades de raciocínio complexas
- Pensamento criativo "fora da caixa"
- Compreensão de vários conceitos de segurança
- Capacidade de encadear várias etapas
- Habilidades dinâmicas de resolução de problemas
## Por que agora? *(escrito em 26 de janeiro de 2025)*
Com os avanços recentes da tecnologia de LLMs:
- Os modelos estão se tornando cada vez mais sofisticados em suas capacidades de raciocínio
- O custo de executar esses modelos está diminuindo (veja o DeepSeek R1 Zero)
- Sua capacidade de entender e gerar código está melhorando
- Eles estão ficando melhores em manter contexto e resolver problemas de múltiplas etapas
Acredito que, nos próximos anos, os LLMs terão a capacidade de resolver a maioria das máquinas de HTB de forma autônoma, marcando um avanço significativo nas capacidades de teste de segurança de IA e resolução de problemas.
## Desenvolvimento
### Testes
O BoxPwnr suporta a execução de workflows do GitHub Actions localmente usando `[act](https://github.com/nektos/act)`, que simula o ambiente exato de CI antes de enviar para o GitHub:```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
Este projeto é apenas para fins de pesquisa e educação. Sempre siga os termos de serviço e as diretrizes éticas de cada plataforma ao usar esta ferramenta.
| Plataforma | Resolvidos | Conclusão | 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: Nome do alvo (ex.: meow para máquina HTB, "SQL injection UNION attack" para laboratório PortSwigger, ou XBEN-060-24 para benchmark XBOW)--debug: Ativa registro detalhado (mostra nomes e descrições das ferramentas)--debug-langchain: Ativa o modo de depuração do LangChain (mostra requisições HTTP completas com esquemas de ferramentas, rastreamentos do LangChain e payloads brutos da API - muito detalhado)--max-turns: Número máximo de turnos antes de parar (ex.: --max-turns 10)--max-cost: Custo máximo em USD antes de parar (ex.: --max-cost 2.0)--max-time: Tempo máximo em minutos por tentativa (ex.: --max-time 60)--attempts: Número de tentativas para resolver o alvo (ex.: --attempts 5 para benchmarks pass@5)--default-execution-timeout: Tempo limite padrão para execução de comandos em segundos (padrão: 30)--max-execution-timeout: Tempo limite máximo para execução de comandos em segundos (padrão: 300)--custom-instructions: Instruções personalizadas adicionais para anexar ao prompt do sistemaclaude-opus-4-0claude-haiku-4-5-20251001gpt-5, gpt-5-nano, gpt-5-minideepseek-reasoner, grok-4, gemini-3-flash-previewopenrouter/company/model (ex.: openrouter/openrouter/free, openrouter/openai/gpt-oss-120b, openrouter/x-ai/grok-4-fast, openrouter/moonshotai/kimi-k2.5)nvidia/company/model (ex.: nvidia/moonshotai/kimi-k2.6) via integrate.api.nvidia.comnvidia-web/company/model (ex.: nvidia-web/moonshotai/kimi-k2.6)z-ai/model-name (ex.: z-ai/glm-5, z-ai/glm-5.2) para modelos Zhipu AI GLMkilo/model-name (ex.: kilo/z-ai/glm-5) via gateway Kilokimi/model-name (ex.: kimi/kimi-k2.5, kimi/kimi-k2.7) para assinatura Kimi Codecline/minimax/minimax-m2.5, cline/moonshotai/kimi-k2.5 (requer cline auth, veja abaixo)ollama-cloud/model-name (ex.: ollama-cloud/minimax-m3:cloud)ollama:model-name--reasoning-effort: Nível de esforço de raciocínio para modelos com capacidade de raciocínio (minimal, low, medium, high). Aplica-se apenas a modelos que suportam raciocínio como gpt-5, o4-mini, grok-4. O padrão é medium para modelos de raciocínio.