Архитектура «Стратег-Координатор» и многоагентность
PentestCode — это форк проекта OpenCode, полностью переработанный для нужд offensive security. В отличие от простых чат-ботов, система использует модель HPTSA (Human-in-the-loop Penetration Testing Strategy Agent), где ведущий агент pentest планирует кампанию, а 13 специализированных субагентов выполняют задачи параллельно. Исследования показывают, что такой подход дает прирост эффективности в 4.3x по сравнению с использованием одного агента.
Система не просто выполняет команды, а ведет структурированное состояние сессии (engagement state), которое сохраняется между перезапусками терминала. Это позволяет агенту «помнить» найденные уязвимости, учетные данные и сетевые связи, строя граф атак на основе алгоритмов Дейкстры и Yen's K-shortest routes.
Полный цикл атаки: от сканирования до Domain Admin
Система способна самостоятельно проходить полный цикл взлома. Пример типичной сессии:
- Scan: Запуск
nmap -sS -p-, парсинг XML и обновление состояния сети. - Recognize: Обнаружение портов 88/389, идентификация Domain Controller и запуск параллельных энумераторов (SMB, LDAP, HTTP).
- Enumerate: Выявление пустой SMB-сессии, списка пользователей через LDAP и директорий через Gobuster.
- Attack: Атака AS-REP Roasting, получение хеша и первого валидного креденшиала.
- Spray: Распространение учетных данных по SMB, WinRM, LDAP и RDP на все известные хосты.
- Exploit: Получение foothold через WinRM, дамп SAM/LSA/DPAPI.
- Result: Получение хеша Domain Admin с полной цепочкой доказательств.
Интеграция с 20+ LLM и встроенные инструменты
PentestCode поддерживает работу через ai-sdk с более чем 20 провайдерами, включая Anthropic (Claude), OpenAI, Google, Azure, AWS Bedrock, Ollama и другими. Для обеспечения точности используются 18 встроенных парсеров инструментов, которые гарантируют, что вывод команд (nmap, nuclei, bloodhound, sqlmap) корректно попадает в структурированное состояние системы, а не теряется в тексте.
| Компонент | Описание и роль |
|---|---|
| Координатор | Агент pentest: планирует этапы, управляет состоянием, распределяет задачи. |
| Субагенты (13 шт.) | recon, scanner, enumerator, exploiter, identity, infrastructure, webapp, post-exploit, exploit-dev, critic, reporter и др. |
| Парсеры | 18 инструментов (nmap_parse, nuclei_parse, cme_parse и др.) для структурирования вывода. |
| Навыки (Skills) | 19 пакетов знаний (чеклисты, playbooks для AD, Web, Cloud), загружаемые по требованию. |
| Режимы работы | auto (автономно), free (без ограничений), guided (с одобрением оператора). |
Установка и использование
Утилита поставляется в виде самодостаточного бинарного файла для Linux и macOS (x64/arm64), не требуя установки Node.js или Bun. Установка осуществляется одной командой:
curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Для начала работы необходимо авторизоваться у провайдера LLM (pentestcode auth login) и запустить сессию. Система находится в стадии Beta, но уже демонстрирует работоспособность на реальных CTF и пентестах. Все действия логируются в findings.md, что позволяет вести прозрачный аудит проведенных операций.
Источник: Github ↗
