
BoxPwnr v0.4.0
Модульный фреймворк для бенчмаркинга LLM и агентных стратегий на задачах по безопасности из HackTheBox, TryHackMe, PortSwigger Labs, Cybench, picoCTF и других.
BoxPwnr
Забавный эксперимент: посмотреть, насколько далеко большие языковые модели (LLM) могут зайти в самостоятельном решении CTF-задач и лабораторных работ по безопасности. Всё началось с HackTheBox, а теперь охватывает множество платформ и агентных решателей.
BoxPwnr предоставляет систему plug-and-play, которую можно использовать для проверки производительности различных агентных архитектур: --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, cybergym, exploitbench, picoctf, tryhackme, levelupctf, argus]
Подробная документация по каждой поддерживаемой платформе — в разделе Реализации платформ.
Трассы и бенчмарки
Все трассы решений доступны на сайте BoxPwnr Traces & Benchmarks. Каждая трасса включает полные журналы диалога с ходом рассуждений LLM, выполненными командами и полученными результатами. Вы можете воспроизвести любую трассу в интерактивном веб-просмотрщике и увидеть, как именно машина была решена шаг за шагом.
| Платформа | Решено | Прогресс | Трассы |
|---|---|---|---|
| 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 (или CLI-агентов, таких как Claude Code, Codex, Grok или Cursor) для автономного решения CTF/лабораторных целей через итеративный процесс:
- Окружение: По умолчанию команды выполняются в Docker-контейнере с Kali Linux (
--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 (или в дополнение к ним).