Pentest-AI, или ptai, представляет собой открытый инструмент для автоматизации разрешённого тестирования на проникновение. Программа объединяет языковую модель, собственные проверки и внешние утилиты, управляет последовательностью действий и собирает результаты в единый отчёт. Проект написан на Python и работает как консольное приложение либо как MCP-сервер для Claude Code, Cursor, Codex и других совместимых клиентов. На момент проверки актуальной остаётся версия 1.1.0 от 29 июня 2026 года. Репозиторий набрал около 1,5 тыс. звёзд и 296 форков. В PyPI проект помечен статусом Alpha, поэтому считать его зрелой заменой устоявшемуся набору средств пентестера пока рано.
Главная особенность Pentest-AI связана не с генерацией гипотез через ИИ, а с перепроверкой части обнаруженных проблем. Находка сначала получает статус кандидата. Затем отдельный машинный модуль, который разработчик называет «оракулом», повторяет эксплуатацию и проверяет безопасный контрольный сценарий. Метка VERIFIED появляется только после воспроизводимого подтверждения. К результату прикладывается «капсула доказательства», которую можно повторно запустить командой ptai replay.
Функции Pentest-AI
В репозитории заявлены 17 специализированных агентов, более 200 обёрток для внешних средств и 60 проверок, ориентированных прежде всего на веб-приложения и одностраничные интерфейсы. Среди подключаемых программ есть Nmap, Nuclei, FFUF, SQLmap, Nikto, Dalfox, WPScan, Hydra, Hashcat, BloodHound, Impacket, Trivy и Prowler. Pentest-AI запускает команды, нормализует вывод и передаёт данные следующим этапам.
- разведка, поиск поддоменов, портов, служб и технологий;
- проверка веб-приложений, REST API, GraphQL и OpenAPI;
- работа с авторизованными сессиями и файлами cookie;
- анализ Active Directory, облачных сред, Kubernetes и мобильных приложений;
- поиск многошаговых цепочек атак;
- проверка ИИ-функций по сценариям OWASP LLM Top 10;
- отчёты в Markdown, HTML, PDF, SARIF и JUnit XML;
- правила обнаружения в форматах Sigma, SPL и KQL;
- запуск в CI/CD с порогом по уровню риска или подтверждённым находкам.
Как работает инструмент
После запуска оператор задаёт цель и область тестирования. Оркестратор последовательно выполняет разведку, авторизацию, проверки веб-приложения, API, инфраструктуры и облачной среды. Результаты попадают в локальную базу SQLite, где программа объединяет дубликаты и хранит технические свидетельства. Затем агент корреляции строит возможные цепочки атак, а валидатор пытается безопасно воспроизвести каждую находку.
Языковая модель выбирает действия, интерпретирует вывод и помогает связать факты, но не служит единственным детектором. Первичный поиск выполняют детерминированные проверки и подключённые программы. Такой подход снижает риск выдуманной моделью уязвимости. Полнота результата всё равно зависит от охвата готовых проверок, качества внешних средств, доступных прав и правильной настройки цели.
Разработчик сообщает о 14 классах уязвимостей с машинной перепроверкой. Среди них SQL-инъекции, BOLA и IDOR, отражённый и хранимый XSS, обход JWT через alg:none, XXE, подмена Host, массовое присваивание, SSRF, открытая переадресация и обход каталогов. Тесты на OWASP Juice Shop и специально подготовленном стенде не выявили ложных срабатываний среди подтверждённых результатов. Такой прогон нельзя считать универсальной оценкой точности на реальных системах. Механизм повышает достоверность найденных проблем, но не гарантирует полный охват.
Для кого подходит Pentest-AI
Инструмент рассчитан на специалистов по AppSec, внутренних пентестеров, консультантов, команды Red Team и разработчиков, которые хотят добавить активные проверки в тестовый контур. Практичный сценарий связан со сканированием стенда после изменений приложения и публикацией SARIF в GitHub Code Scanning. YAML-плейбуки позволяют закрепить внутреннюю методику и одинаково выполнять её в разных проектах.
Новичку Pentest-AI может помочь связать разрозненные утилиты, но программа не снимает ответственность с оператора. Для работы потребуются знания HTTP, сетей, эксплуатации и правил оформления области проверки. Запуск против чужих ресурсов без явного письменного разрешения недопустим.
Установка и запуск
Pentest-AI поддерживает Python от 3.10 до 3.13. Базовая установка выполняется через PyPI:
python -m venv .venv source .venv/bin/activate pip install ptai ptai demo
Команда ptai demo запускает локальное демонстрационное приложение, проверяет уязвимый и исправленный варианты и повторяет одну находку из капсулы. Такой режим позволяет познакомиться с логикой без собственной цели.
Для Claude Code MCP-сервер добавляют командой:
claude mcp add pentest-ai -- ptai mcp
Другие MCP-клиенты настраиваются через ptai setup --mcp. Отдельный ключ Anthropic для Pentest-AI в таком режиме не требуется, но запросы и прочитанный клиентом вывод проходят через поставщика выбранного ИИ-сервиса. Для самостоятельного запуска из терминала нужен ключ Anthropic или OpenAI либо локальная модель через Ollama:
export PENTEST_AI_LLM_PROVIDER=ollama ptai start https://test.example
Внешние средства устанавливаются наборами core, recommended и full либо по отдельности. Перед проверкой производственной среды нужно явно включить безопасную интенсивность, соблюдение ограничений частоты и строгую привязку к области теста. По документации параметры intensity=safe, respect_rate_limits и strict_scope по умолчанию выключены.
Плюсы и минусы
| Плюсы | Минусы |
|---|---|
| Перепроверяет часть находок и создаёт воспроизводимые доказательства. | Машинные «оракулы» покрывают ограниченный набор классов уязвимостей. |
| Объединяет множество средств в одном рабочем процессе. | Полная установка требует большого числа сторонних программ. |
| Поддерживает авторизацию, цепочки атак, CI/CD и SARIF. | Полнота зависит от проверок, модели и конфигурации цели. |
| Может работать локально с Ollama. | При облачной модели данные проходят через её поставщика. |
| Открытый код, MIT и несколько форматов отчёта. | Проект молодой и официально помечен как Alpha. |
| Оператор может вмешаться в автоматический цикл. | Защитные параметры для продакшена включаются отдельно. |
База находок хранится локально, а телеметрия, по заявлению автора, отсутствует. Исключения зависят от конфигурации. MCP-клиент передаёт поставщику модели запросы и результаты вызовов, которые модель должна прочитать. Для слепых SSRF, SQL-инъекций, XXE и некоторых других классов Pentest-AI по умолчанию использует публичный сервер oast.fun. Содержимое взаимодействий шифруется локальным ключом, однако оператор сервера видит IP-адрес цели, время и протокол. В чувствительных проектах лучше развернуть собственный Interactsh или отключить OAST через --no-oast, учитывая потерю части проверок.
Лицензия
Исходный код опубликован по лицензии MIT. Она разрешает использовать, изменять, распространять и включать программу в коммерческие продукты при сохранении уведомления об авторских правах и текста лицензии. Разработчик не предоставляет гарантий и не отвечает за ущерб. Отдельно проект требует принять правила допустимого использования и условия сервиса. Лицензия на код не даёт права тестировать системы без разрешения владельца.
Заключение
Pentest-AI интересен как связующий слой между языковой моделью, активными сканерами, собственными проверками и отчётностью. Наиболее полезная часть проекта связана с попыткой отделить предположение от воспроизводимой находки. Капсулы доказательств упрощают проверку результатов разработчиками и специалистами по защите.
Pentest-AI остаётся молодым инструментом с широкой заявленной областью и более узким подтверждённым покрытием. Программу лучше применять как помощника в контролируемой тестовой среде, а не как автономного аудитора. Ручная проверка и контроль сетевых запросов остаются обязательными.
