
pentest-ai v1.2.0
ИИ-пентестер с открытым исходным кодом, который доказывает каждую находку. Машинные оракулы повторно запускают каждый эксплойт; подтверждённые баги поставляются с доказательной капсулой, которую вы можете воспроизвести самостоятельно.
pentest-ai
Инструмент для пентеста, который доказывает свои находки. Без оракула — без бейджа.
Веб-сайт · Установка · Зачем проверка · Документация · Бенчмарки · Агенты · Discord
⚠️ Атакующий инструментарий — только авторизованное тестирование. Устанавливая, вы принимаете AUP и Условия. Полный текст в Ответственное использование ↓
ptai — это инструмент для пентеста на основе ИИ, который повторно запускает каждый эксплойт для его подтверждения. Он выполняет разведку, входит в систему и связывает находки в многошаговые цепочки атак, но не просит вас доверять результатам. Так же, как TruffleHog подтверждает утёкший секрет, входя в систему с его помощью, ptai подтверждает веб-находку повторным запуском эксплойта: находка остаётся кандидатом, пока машинный оракул не воспроизведёт её N из N раз, и только тогда она получает значок VERIFIED. Выходные данные сторонних сканеров (nuclei, nikto, zap) придерживаются, пока оракул не подтвердит их заново. Именно шум сканеров приучает команды игнорировать свои инструменты, поэтому отчёт содержит только то, что ptai смог доказать, — каждая находка VERIFIED сопровождается портативной капсулой доказательства, которую вы можете воспроизвести сами.
Сегодня оракулом проверяются 14 классов уязвимостей. На специально уязвимом тестовом honeypot 23 находки подтверждаются в этих классах с точностью 100% и без ложных срабатываний. На стандартном OWASP Juice Shop 12 подтверждаются за один скан. Работает на вашем ноутбуке. Без облака, без телеметрии.
Как это работает
Сканирование стандартного OWASP Juice Shop: 12 находок подтверждено оракулом за один скан. Находки реальны; темп подобран для наглядности.
Воспроизведите основную идею самостоятельно за две минуты — без собственной цели:```bash pip install ptai && ptai demo
`ptai demo` сканирует уязвимое приложение из комплекта и сообщает `4 findings, 4 oracle-VERIFIED`, воспроизводит одну находку вживую из proof-капсулы (`replay 3/3`), затем прогоняет те же маршруты с усиленной защитой и сообщает `0 findings`. Единственное, что изменилось между двумя запусками, — это исправление, поэтому находки появляются и исчезают вместе с уязвимостью, а не потому, что инструмент замолчал. Две минуты, без API-ключа, без собственной цели. Повторно докажите любую капсулу самостоятельно с помощью `ptai replay`.
> **Честные цифры.** Прогон на honeypot (23 подтверждённых находки по 14 классам, 100% точность, ноль ложных срабатываний) и прогон на Juice Shop (12 подтверждённых находок за один скан) — это отдельные воспроизводимые бенчмарки, а не полевые показатели ложных срабатываний. Оракульный шлюз даёт точность, а не полноту обнаружения: он убирает ложные срабатывания, но не повышает полноту обнаружения. Juice Shop — самое изученное уязвимое приложение в интернете, поэтому воспринимайте сырое количество находок как широту покрытия, а подтверждённое число — как историю о точности; honeypot с багами, которые мы написали сами, — честный сигнал. Тестовый стенд honeypot (`tests/honeypot/`) и шлюз нулевых ложных срабатываний на чистом приложении (`tests/cleanapp/`) включены в репозиторий, так что утверждения воспроизводимы, а не являются скриншотами.
## Что нового в 1.1.0
Охват верификации примерно удвоился, и скан больше не сообщает ноль по цели, которую сам повалил в процессе работы. Каждая находка VERIFIED исходит от именованного машинного оракула, а не от утверждения LLM; это гарантируется кодом: вердикт, не способный назвать свой оракул, отклоняется. В этом релизе добавлено:
- **Десять новых классов оракулов (всего 14).** Обход доверенных заголовков (trusted-header bypass), JWT `alg:none`, отравление host-заголовка, XXE, путаница типов (type confusion), хранимый XSS, последовательный IDOR, массовое присваивание (mass assignment), неслепой SSRF и SQLi-обход логина — в дополнение к SQLi (boolean/blind), BOLA/IDOR, отражённому XSS, открытому редиректу и обходу пути. У каждого оракула есть контрольный тест, который обязан не срабатывать на безопасной цели, поэтому неуязвимое приложение воздерживается от вердикта, а не получает бейдж.
- **Устойчивость верификации.** Агрессивный прогон мог повалить хрупкую одноконтейнерную цель, после чего фаза верификации проваливала все оракулы и сообщала 0, несмотря на валидные воспроизводимые рецепты. Теперь она ждёт, пока цель снова не начнёт отвечать, прежде чем повторно доказывать; это подняло скан OWASP Juice Shop с 0 до 12 подтверждённых оракулом находок.
- **Безопасность скоупа.** Активные инструменты (sqlmap, dalfox) жёстко привязаны к хосту тестируемой цели; скан больше не передаёт атакующим инструментам сторонние URL, извлечённые из содержимого страницы.
- **Переносимые proof-капсулы**, `ptai replay` — живой TUI, переключающий вердикты в VERIFIED прямо на экране, — и CI-шлюз (`--fail-on verified`), который ломает сборку только на доказанных находках.
## На реальной цели: OWASP Juice Shop
Нацеленный на стоковый OWASP Juice Shop, ptai **подтверждает оракулом 12 находок за один скан**: JWT `alg:none` принимается на защищённых эндпоинтах, BOLA-чтение данных других пользователей, последовательный IDOR и путаница типов — каждая повторно доказана машинным оракулом, а не просто заявлена. Он обнаруживает больше, чем верифицирует (SQLi-обход аутентификации на `/rest/user/login`, UNION SQLi на `/rest/products/search`, XXE, раскрывающий `/etc/passwd`, массовое присваивание, обход сброса пароля); в отчёт попадает только подтверждённое подмножество. Запускайте его через Claude Code по MCP без API-ключа или standalone.
> **Оговорка о честности.** Juice Shop — самое задокументированное уязвимое приложение в интернете, поэтому и у LLM, и у авторов проб есть фора. Против новой цели полнота обнаружения определяется тем, что покрывает курируемая библиотека проб (на сегодня это 60+ веб-проб, с каждым релизом больше); LLM координирует и анализирует результаты, она не заменяет пробы. Приватный honeypot-стенд в `tests/honeypot/` измеряет покрытие багов, которые мы написали сами, и проверяется в CI (`tests/honeypot/test_mcp_honeypot_e2e.py`); его цифры ниже, чем у Juice Shop, и в этом суть. Мы публикуем оба. См. полный [бенчмарк Juice Shop против ZAP / Nuclei / HexStrike](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/benchmarks/juice-shop.md).
## Установка```bash
pip install ptai
Путь 1: Управление из Claude Code (без API-ключа)
Если вы уже платите за Claude Pro / Max / Team, ваша подписка И ЕСТЬ LLM. Подключите ptai в качестве MCP-сервера:```bash claude mcp add pentest-ai -- ptai mcp
Restart Claude Code, then ask:
> *"Выполните аутентифицированный пентест против staging.acme.com. Вход — на /login, пароль — в $APP_PASS."*
> **Что попадает в сеть**: инструменты и пробы ptai выполняются локально против вашей цели. Ваши промпты и выходные данные инструментов, которые читает Claude Code, проходят через API Anthropic, как и в любой сессии Claude Code. Если вам нужен офлайн-путь, см. Путь 3 (Ollama / локальная LLM).
Claude Code управляет ptai через эти MCP-инструменты (на сегодняшний день их 47):
- `list_tools` / `run_tool`: перечисление и вызов любого из 200+ обёрнутых инструментов безопасности
- `plan_tools` / `ensure_tools_installed`: получение канонического списка инструментов для задания, пакетная установка
- `list_probes` / `run_probe`: 60 проб с учётом SPA для классов уязвимостей OWASP Top 10
- `http_request`: сырой HTTP под жёстким ограничением области для новых цепочек атак
- `start_engagement` / `get_findings` / `get_attack_chains`: запись задания
- а также `test_web_app`, `test_active_directory`, `test_cloud`, `test_api_security` и остальные
### Путь 2: Другие MCP-клиенты (Cursor, VS Code Copilot, Codex, Claude Desktop)```bash
ptai setup --mcp
Автоматически обнаруживает все установленные MCP-совместимые клиенты и записывает их конфигурационные файлы. Перезапустите клиент — и те же 47 инструментов будут там.
Путь 3: автономный CLI, когда у вас НЕТ MCP-клиента
Если вы используете Claude Code, Cursor, Codex или Claude Desktop, используйте путь 1 или 2 выше и пропустите этот раздел. Там не нужен API-ключ.
Путь 3 предназначен для CI/CD-конвейеров, запланированных cron-заданий, изолированных терминалов и пользователей без MCP-клиента. У автономного CLI нет собственной LLM, поэтому вы подключаете её через переменную окружения:```bash export ANTHROPIC_API_KEY=sk-ant-... # Claude (best results)
or
export OPENAI_API_KEY=sk-... # OpenAI
or, fully local, no cloud
export PENTEST_AI_LLM_PROVIDER=ollama # Ollama (default localhost:11434)
or, any of 300+ models via LiteLLM (OpenRouter, Azure, DeepSeek, Groq, Mistral, ...)
pip install litellm
ptai start https://your-target.com
Работаете с OpenAI-совместимым эндпоинтом (DeepSeek cloud, Groq, Together AI, vLLM и т.д.)? Установите `OPENAI_BASE_URL` + `PENTEST_AI_MODEL` и используйте провайдер openai. Полные рецепты для каждого провайдера — включая пользовательские имена моделей, устранение неполадок и список LiteLLM-300+ — находятся в [`docs/llm-providers.md`](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/llm-providers.md).
#### Лимит расходов (только Path 3)
Автономный цикл агента управляет собственной LLM, поэтому вышедшие из-под контроля циклы стоят реальных денег. ptai по умолчанию ограничивает расходы на одну кампанию суммой **$10 USD**. Обычный прогон веб-приложения на Sonnet 4.6 с кэшированием промптов укладывается намного ниже лимита; глубокий прогон на Opus 4.7 может выйти далеко за его пределы.
Изменить его можно через переменную окружения (без флага CLI — переменная окружения — единственный регулятор):```bash
export PTAI_PRICE_LIMIT=25 # raise to $25
export PTAI_PRICE_LIMIT=0 # unlimited (logs a warning)
unset PTAI_PRICE_LIMIT # back to the $10 default
Если лимит срабатывает в середине сессии, сессия помечается как aborted_cost_limit, и её контрольная точка сохраняется. Увеличьте лимит и возобновите работу с того места, где она остановилась:```bash
export PTAI_PRICE_LIMIT=25
ptai resume <engagement_id>
Пути 1 и 2 (MCP) не используют этот лимит — ваш ИИ-клиент (Claude Code, Cursor и т. п.) сам обрабатывает биллинг за LLM.
### Установка инструментов безопасности
ptai оборачивает 200+ внешних инструментов. Три способа установить их на машину:```bash
# 1. Zero-config (recommended). At engagement start, the planner predicts
# which tools the LLM will need and asks ONCE to install the missing
# ones. Decline once and the answer persists in
# ~/.pentest-ai/install-preferences.json.
ptai start https://target.example.com
# 2. Batch install upfront. Skips the engagement-time prompt entirely.
ptai setup --tier core # ~6 essentials, ~30s
ptai setup --tier recommended # + fuzzers, crawlers, password tools, ~5m
ptai setup --tier full # everything, ~30m
# 3. Install specific tools by name.
ptai setup --per-tool wpscan,dalfox,paramspider
ptai setup --wizard # interactive picker
В неинтерактивных контекстах (PTAI_NON_INTERACTIVE=1 или отсутствие TTY) ptai использует то, что есть в PATH, и записывает в журнал (а не запрашивает) всё недостающее.
Другие способы: REST API, композиция MCP, телеоперация HITL, облачное рабочее пространство, публичные бенчмарки
HTTP REST API (для панелей мониторинга и интеграций)```bash
pip install ptai[api] ptai serve --port 8888
Endpoints: `/health`, `/version`, `/agents`, `/tools`, `/engagements` (list, detail, findings, chains, detection rules, SARIF export). Write endpoints (`POST /engagements`, `POST /engagements/{id}/abort`) require `Authorization: Bearer $PENTEST_AI_API_TOKEN`. Live event stream at `WS /engagements/{id}/stream`.
### Load other MCP servers as tool sources
Compose with hexstrike or any other MCP-compatible security server. Edit `~/.pentest-ai/mcp_servers.json`:```json
{
"servers": [
{"name": "hexstrike", "command": "python3 hexstrike_mcp.py", "transport": "stdio"}
]
}
Take over mid-run (HITL teleoperation)
While an engagement is running, press Ctrl+C twice within 600ms to pause the orchestrator and drop into a REPL: step, inspect findings, inject <instruction>, skip, resume, abort. Current LLMs aren't fully autonomous. The operator owns the call when it matters.
Public benchmarks
Reproducible solve-rate measurements live in benchmarks/:```bash
./benchmarks/scripts/run_all.sh # writes JSON per run + RESULTS.md
Спецификация, тестовые стенды и результаты — всё в git. Полное сравнение Juice Shop с ZAP / Nuclei / HexStrike находится в [`docs/benchmarks/juice-shop.md`](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/benchmarks/juice-shop.md). Никаких заявлений о «98.7% обнаружения», которые невозможно проверить.
### Облачное рабочее пространство (Pro / Team / Enterprise)
CLI навсегда бесплатен и хранит всё локально. Если вам нужна история проведённых работ, брендированные PDF-отчёты, готовые для передачи клиенту, и совместная работа в команде, подключите CLI к рабочему пространству [app.pentestai.xyz](https://app.pentestai.xyz):```bash
# Sign up, then Dashboard -> API Keys -> Generate -> copy ptai_...
ptai auth login # paste the key (hidden prompt)
ptai auth status # confirm link
# or use an env var for CI:
export PENTESTAI_API_KEY=ptai_...
ptai start автоматически синхронизирует находки с вашим облачным рабочим пространством, когда вы авторизованы. Нет облака = нет вызовов; интеграция молча отключена, пока вы не войдёте в систему.
Совсем без LLM (интерактивный лаунчер)```bash
ptai menu
Числовая навигация по категориям, поиск (`/term`), фильтрация по тегам (`t web`), рекомендации на основе ключевых слов. Реальные пентест-проекты по-прежнему идут через `ptai start` с подтверждением полного объёма.
</details>
## Чем это отличается
| | |
|---|---|
| 🤖 **Координация на основе LLM, а не зависимость от него** | Семнадцать агентов покрывают разведку, веб, API, AD, облако, мобильные устройства, беспроводные сети, браузер, учётные данные, повышение привилегий, сканирование уязвимостей, связывание эксплойтов, PoC, обнаружение, отчёты, социальную инженерию и LLM-редтиминг. LLM запускает цикл фаз и анализирует результаты; обнаружение багов выполняется в курируемой библиотеке детерминированных проб. Если не указывать API-ключ, те же пробы всё равно выполняются. LLM координирует, а не сканирует. |
| 🔓 **Без API-ключа на пути MCP** | Пользователи Claude Code / Cursor / Codex управляют ptai через MCP с использованием своей существующей подписки. 200+ обёрток инструментов и 60 проб вызываются через LLM без ключа Anthropic. Отдельный CLI (`ptai start --agent-mode`) — это тот случай, когда API-ключ важен; это пути Codex без MCP, CI и изолированных сетей. |
| 🔐 **Входит в систему** | Большинство сканеров пасуют на странице входа. Этот поддерживает сессию, обновляет учётные данные после истечения срока действия, и все последующие инструменты наследуют cookie. Профили аутентификации хранят *ссылки* (переменные окружения, `op://`, пути Vault, ARN AWS Secrets Manager), но никогда не сами значения. |
| 🧪 **Каждая находка подтверждена** | Неразрушающий proof of concept выполняется прямо на цели. Больше не нужно сортировать 40 «возможно» от шумного сканера. |
| ⚡ **Нативная поддержка CI** | GitHub Action, пороги критичности, вывод SARIF, комментарии в PR. Добавьте его в свой workflow-файл — и он запустится в следующем PR. |
| 💾 **Работает на вашем ноутбуке** | Лицензия MIT, без обращений к облаку. Работает офлайн с Ollama. Находки остаются на вашем диске. |
## Как это работает```
┌─────────────────────────────────────────────────────────────┐
│ ptai start <target> │
└─────────────────────────────────────────────────────────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌─────────┐
│ recon │ -> │ auth │ -> │ web │
└────────┘ └────────┘ └─────────┘
│
┌────────────────────────────────────┤
▼ ▼
┌────────┐ ┌─────────┐
│ ad │ ┌──────────────────┐ │ cloud │
└────────┘ │ Findings DB │ └─────────┘
│ │ (sqlite + evidence)│ │
└───────▶│ scope-guarded │◀──────┘
│ deduplicated │
└──────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────┐ ┌─────────┐ ┌──────────┐
│chain │ │validate │ │ detect │
└──────┘ └─────────┘ └──────────┘
│
▼
┌──────────┐
│ report │ md · html · pdf · SARIF · JUnit
└──────────┘
Каждый агент запускается с LLM при заданном ключе, либо как детерминированный цикл инструментов, если ключ не задан. В любом случае порядок фаз одинаков.
Агенты
| Агент | Фаза | Действие |
|---|---|---|
recon | 1 | Сканирование портов, DNS и перечисление поддоменов, идентификация сервисов |
web | 2 | Аутентифицированный проход OWASP Testing Guide v4 |
api_security | 2 | Анализ поверхности OpenAPI/GraphQL/REST, OWASP API Top 10 |
browser | 2 | DOM-анализ на основе Playwright, перехват XHR, оценка заголовков безопасности |
ad | 3 | Перечисление AD, Kerberoasting, поиск путей BloodHound, злоупотребление делегированием |
cloud | 4 | AWS, Azure, GCP IAM, неправильная конфигурация, K8s RBAC, serverless |
credential_tester | 4 | Спрей паролей, подбор по скомпрометированным учётным данным, проверки обхода MFA |
privesc | 5 | Рекомендации по локальному и горизонтальному повышению привилегий на основе собранного контекста |
vuln_scanner | 5 | Сквозная агрегация уязвимостей по базе данных находок |
exploit_chain | 6 | Сопоставляет находки и строит многошаговые пути атак |
poc_validator | 7 | Неразрушающий proof of concept для каждой находки |
detection | 8 | Правила Sigma, SPL, KQL для синей команды |
report | 9 | Markdown, HTML, PDF, SARIF, JUnit, карты соответствия |
llm_redteam | opt | Пробы OWASP LLM Top 10 |
social_engineer | opt | Фишинговый корпус и генерация легенд |
mobile | opt | Статические и динамические проверки Android/iOS |
wireless | opt | Разведка беспроводных сетей и захват рукопожатия |
Плейбуки
Ваша методология в виде файла. Хранится в git. Доступна вашей команде.```yaml name: internal-ad-pentest inputs: domain: { required: true, prompt: "AD domain" } dc_ip: { required: true, prompt: "DC IP" }
phases:
-
id: recon tools: [nmap, masscan]
-
id: ad-enum depends_on: [recon] condition: "any_finding(type='open_port', port=445)" tools: [enum4linux, ldapsearch, bloodhound-python]
-
id: kerberoast requires_finding: { type: ad_user_enumerated } tools: [impacket-getuserspns] llm_decide: true # let the LLM skip if context says useless
Входной фрагмент (chunk 31) пуст — текст для перевода не предоставлен.```bash
ptai playbook list # show installed playbooks
ptai playbook show web-app-quick # preview before running
ptai playbook run ./my-ad.yaml # execute
Пять плейбуков поставляются встроенными. Скоро появится каталог сообщества.
Встройте это в ваш CI```yaml
.github/workflows/security.yml
name: Security scan on: [pull_request]
jobs:
ptai:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pip install ptai
- run: |
ptai start ${{ vars.STAGING_URL }}
--ci
--fail-on high
--sarif pentest.sarif
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: pentest.sarif
Findings публикуются как комментарий к PR, SARIF загружается в GitHub Code Scanning, а сборка падает при достижении пороговой критичности. **Шаблоны для GitLab CI и Jenkins** плюс расширенные опции (профили аутентификации в CI, лимиты стоимости, файлы области действия) -> [docs/ci-cd.md](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/ci-cd.md).
## Benchmarks
Дизайн ptai специально создан для пентеста SPA-приложений с курируемым покрытием проб. На OWASP Juice Shop опубликованная [матрица из 4 инструментов](https://github.com/0xsteph/pentest-ai/blob/HEAD/docs/benchmarks/juice-shop.md) показала:
| Инструмент | Находки | Critical+High | Категории OWASP Top 10 | Доля ложных срабатываний |
|---|---:|---:|---:|---:|
| **ptai 0.13.0** | **88** | **46** | **5** | **0%** |
| ZAP 2.17.0 | 593 | 0 | 1 | 47% |
| Nuclei 3.8.0 | 1 | 0 | 1 | 0% |
| HexStrike v6.0 | 11 | 0 | 1 | - |
n=1, один оценщик, один прогон. Методология и исходные артефакты в [`benchmarks/results/2026-05-12/juice-shop/`](https://github.com/0xsteph/pentest-ai/blob/HEAD/benchmarks/results/2026-05-12/juice-shop/). Честная оценка: ptai лучше в пентестах SPA-веб-приложений с курируемым покрытием проб. HexStrike шире (облако, бинарный анализ, CTF) и, вероятно, превосходит ptai на традиционных сканируемых поверхностях вроде WordPress. Будущие релизы расширят сравнение.
Контекст недавних исследований: полностью автономные LLM-агенты для пентеста выполняют **21-31%** задач от начала до конца; с участием человека результаты достигают **64%** (ARTEMIS, DARPA AICC Atlantis, xOffense). ptai создан для режима с участием человека: LLM анализирует результаты, курируемые пробы обнаруживают уязвимости, а двойное нажатие Ctrl+C позволяет оператору взять управление на себя.
## Сравнение с аналогами
| | `ptai` | Hexstrike | ZAP | Nuclei | Burp Pro | PentestGPT |
|---|:-:|:-:|:-:|:-:|:-:|:-:|
| Управление через LLM по MCP (без API-ключа) | ✓ | ✓ | | | | |
| HTTP, синтезированный LLM, под защитой области действия | ✓ | частично | | | | |
| Аутентифицированное сканирование через MCP | ✓ | частично | частично | raw HTTP | ✓ | |
| Построение цепочек эксплойтов | ✓ | частично | | | | частично |
| Неразрушающая проверка PoC | ✓ | | | | частично | |
| Сохранённые цепочки инъекций (POST -> проверка через GET) | ✓ | вручную | частично | | вручную | |
| Курируемые пробы (специализированные, не шаблонные) | 60 | на основе обёрток инструментов | на основе правил | 8000+ шаблонов | вручную + сканирование | - |
| Обёрнутые CLI-инструменты безопасности | 200+ | 150+ | - | - | - | - |
| Мастер установки инструментов | core/recommended/full + для каждого инструмента | - | n/a | n/a | n/a | - |
| Умная установка в начале engagement | ✓ | | | | | |
| Нативная интеграция с CI (SARIF + пороги критичности) | ✓ | | частично | частично | частично | |
| LLM-пробы для red team | ✓ | | | | | |
| YAML-плейбуки | ✓ | | | шаблоны | | |
| Лицензия | MIT | MIT | Apache-2.0 | MIT | коммерческая | MIT |
## Что внутри
- **17 агентов** для разведки, веб-безопасности, безопасности API, AD, облака, мобильных устройств, беспроводных сетей, браузера, проверки учётных данных, повышения привилегий, сканирования уязвимостей, построения цепочек эксплойтов, проверки PoC, обнаружения, отчётности, LLM-ридтима и социальной инженерии
- **60 курируемых веб-проб**, покрывающих OWASP Top 10 + API Top 10
- **200+ обёрток инструментов** с автоматической установкой: nmap, masscan, nuclei, ffuf, sqlmap, gobuster, wapiti, nikto, dalfox, xsstrike, wpscan, hydra, hashcat, enum4linux, bloodhound-python, набор impacket, trufflehog, gitleaks, kube-hunter, trivy, prowler, scout-suite и другие
- **4000+ шаблонов Nuclei**, интегрированных для атомарного обнаружения уязвимостей
- **47 MCP-инструментов** для engagement'ов под управлением LLM, включая `plan_tools` / `ensure_tools_installed`, которые позволяют внешней LLM пакетно устанавливать инструменты без API-ключа Anthropic
- **300+ моделей LLM** через провайдера LiteLLM (Anthropic, OpenAI, Ollama напрямую; Azure, OpenRouter, DeepSeek, Groq, Mistral, Together AI, Bedrock, Vertex AI, Cohere через LiteLLM)
- **HTTP REST API + WebSocket** интерфейс (`ptai serve`) для интеграций без MCP
- **Локальная веб-панель** с живым обзором engagement, таблицей находок, визуализацией цепочек атак и экспортом SARIF
- **Агент автоматизации браузера** со скриншотами, анализом DOM, перехватом сетевого трафика и оценкой security-заголовков (на базе Playwright)
- **Телеуправление с участием человека (Human-In-The-Loop)** (двойное нажатие Ctrl+C для перехвата управления в середине engagement)
- **Возможность MCP-клиента** для загрузки внешних MCP-серверов как источников инструментов
- **Публичный воспроизводимый бенчмарк-харнесс** в `benchmarks/`. Цифры, код, исходные артефакты — всё в git.
- **6 форматов вывода**: Markdown, HTML, PDF, SARIF 2.1.0, JUnit XML, карты соответствия (OWASP, CWE, CVE, CVSS v3.1)
- **2 400+ тестов** с CI на Python 3.10, 3.11, 3.12, 3.13
- **Лицензия MIT**, 100% ваше
## Кто и для чего это использует
**Команды AppSec.** Подключите `ptai` к вашему CI. Каждый PR в staging проходит аутентифицированное сканирование. Сборка падает при находках высокой критичности. Цикл исправление -> повторное тестирование -> подтверждение работает сам.
**Консультанты.** Настройте недельный engagement, направьте `ptai` на список целей и тратьте время на то, что требует человека: анализ находок, выбор цепочек для демонстрации, общение с клиентом. Отчёт пишется сам.
**Охотники за баг-баунти.** Запустите его за завтраком. Вернитесь к списку подтверждённых находок с PoC, готовыми для вставки в HackerOne.
**Редтимеры.** Оформите вашу AD-методологию в виде YAML-плейбука. Каждый новый engagement запускает его. Единая методология для всей команды.
**Пользователи Claude Code / Cursor / Codex.** Добавьте ptai как MCP-сервер. Попросите ассистента запустить сканирование на простом английском. Ваша существующая подписка оплачивает LLM; ptai предоставляет инструменты.
**Разработчики, выпускающие AI-функции.** Включите `--enable-llm-redteam` для вашего чат-бота. Получите отчёт OWASP LLM Top 10 за считанные минуты.
## Ответственное использование
`pentest-ai` — это инструмент наступательной безопасности. Он выполняет реальные сетевые и хостовые операции против указанных вами целей. **Вы несёте полную ответственность за наличие явного письменного разрешения на тестирование каждой цели.**
Устанавливая или запуская `ptai`, вы соглашаетесь с [Политикой допустимого использования](https://pentestai.xyz/aup) и [Условиями предоставления услуг](https://pentestai.xyz/terms). Тестирование систем, которые вам не принадлежат, без письменного разрешения может нарушать Computer Fraud and Abuse Act, Computer Misuse Act 1990, статью 32 GDPR и аналогичные законы вашей юрисдикции. Ответственность за неправомерное использование лежит исключительно на вас.
При первом запуске вам будет предложено подтвердить принятие AUP, и выбор сохраняется в `~/.pentest-ai/aup-consent.txt`. Установите `PENTEST_AI_AUP_ACCEPTED=1` в CI, чтобы обойти запрос в неинтерактивном режиме.
При запуске `ptai` загружает файл области действия (scope). Хосты вне области действия отклоняются в момент вызова инструмента. PoC по умолчанию неразрушающие. Ограничения скорости автоматически включаются в stealth-режиме. Не будьте тем человеком.
### Внеполосные обратные вызовы (OAST) — конфиденциальность
`ptai` обнаруживает blind-классы уязвимостей (blind SSRF, blind SQLi, blind XXE, blind stored XSS, SSTI, Log4Shell), отправляя payload'ы, которые при срабатывании на стороне сервера вызывают внеполосный collaborator. По умолчанию обратные вызовы направляются в публичную инфраструктуру ProjectDiscovery `oast.fun`.
**Что попадает на collaborator и кто может это прочитать.** Каждый engagement генерирует новую пару ключей RSA-2048 в вашем локальном процессе `ptai`. Payload'ы взаимодействий (сырые HTTP-запросы, DNS-запросы, SMTP-конверты, полученные collaborator'ом) шифруются на сервере при хранении алгоритмом AES-CTR-256, а ключ AES оборачивается RSA-OAEP-SHA256 с помощью публичного ключа вашего engagement. **Только держатель соответствующего приватного ключа — ваш локальный процесс `ptai` — может их расшифровать.** ProjectDiscovery (или тот, кто запускает collaborator) не может прочитать содержимое взаимодействий. Однако **метаданные видны на сервере**: факт взаимодействия, исходный IP вызывающей цели, временная метка и протокол.
**Когда разворачивать самостоятельно.** PortSwigger прямо запрещает использование публичного Burp Collaborator в своих правилах bug bounty, а крупные корпоративные программы (Meta, Apple, финансы) всё чаще требуют, чтобы callback-инфраструктура разворачивалась на хостах, контролируемых тестировщиком. Для платных engagement'ов запустите собственный сервер Interactsh (Apache-2.0, один Go-бинарник) и укажите его ptai:```bash
ptai start http://target --oast-server https://oast.example.com --oast-token <T>
Чтобы полностью отключить OAST:```bash ptai start http://target --no-oast
Классы слепых уязвимостей не будут обнаружены, когда OAST выключен; внутриполосные пути обнаружения (дельта размера / маркеры ошибок SQL / сигнатуры метаданных / time-based) по-прежнему работают.
## Экосистема
| Репозиторий | Что |
|---|---|
| [**pentest-ai**](https://github.com/0xSteph/pentest-ai) | Этот репозиторий. CLI и MCP-сервер. Продукт на Python. |
| [**pentest-ai-agents**](https://github.com/0xSteph/pentest-ai-agents) | Автономные markdown-файлы субагента Claude Code. Опционально, работает без этого CLI. |
Нужны общие рабочие пространства, фирменные PDF-отчёты, SSO или управляемый пентест? На [сайте](https://pentestai.xyz) есть дашборды Pro / Team / Enterprise и опция одноразового Launch Engagement. OSS-инструмент остаётся OSS, бесплатным навсегда.
## Сообщество
- **Discord:** [присоединяйтесь к серверу](https://discord.gg/6weeTAubJw). Общайтесь, получайте помощь, делитесь находками, наблюдайте.
- **Вопросы, идеи, обратная связь:** [GitHub Discussions](https://github.com/0xSteph/pentest-ai/discussions)
- **Сообщения об ошибках:** [GitHub Issues](https://github.com/0xSteph/pentest-ai/issues)
- **Show and tell:** выложите самую дикую находку, которую `ptai` вам выдал, в [Show and tell](https://github.com/0xSteph/pentest-ai/discussions/categories/show-and-tell)
## FAQ
**Нужен ли мне API-ключ?** Нет, на пути MCP. Если вы запускаете ptai из Claude Code, Cursor, Codex или Claude Desktop, ваша существующая подписка и есть LLM. Ключ нужен только в автономном CLI (Путь 3), и даже там вы можете работать полностью локально с Ollama. См. [Установка](#install).
**Он действительно автономен, или мне придётся за ним присматривать?** Вы остаётесь в контуре. ptai координируется LLM, но не автономен — курируемые проверки выполняют обнаружение, LLM рассуждает о результатах, а решение остаётся за вами. Нажмите Ctrl+C дважды во время выполнения, чтобы перехватить управление. Полностью автономные LLM-агенты завершают 21-31% задач пентеста от начала до конца; сценарии с участием человека достигают 64%, и ptai создан для этого второго режима.
**Безопасно ли направлять его на продакшн?** Только с письменного разрешения и только с включёнными защитными механизмами: `intensity=safe` пропускает проверки, изменяющие состояние, `respect_rate_limits` соблюдает 429 / Retry-After, а `strict_scope` отклоняет запросы к сторонним хостам и перестаёт следовать редиректам. Все три по умолчанию выключены, так что включите их. См. [Ответственное использование](#responsible-use).
**Почему у Juice Shop показатель высокий, а у honeypot ниже?** Juice Shop — самое документированное уязвимое приложение в интернете, поэтому и у LLM, и у авторов проверок есть преимущество на старте. Частный honeypot измеряет баги, которые мы написали сами, поэтому его показатель ниже — и этот более низкий показатель является честным сигналом. Мы публикуем оба. См. [Бенчмарки](#benchmarks).
**Он отправляет данные домой?** Никакой телеметрии, и находки остаются на вашем диске. На пути MCP ваши промпты и вывод инструмента, который читает ваш AI-клиент, проходят через API этого клиента, как в любой сессии. Обнаружение слепых уязвимостей (OAST) по умолчанию отправляет колбэки на публичный oast.fun — содержимое зашифровано локальной ключевой парой, но сам факт колбэка, а также исходный IP и метка времени видны тому, кто запускает collaborator. Разместите Interactsh самостоятельно или запустите с `--no-oast`, чтобы этого избежать. См. [Ответственное использование](#responsible-use).
**Сколько стоит запуск?** На пути MCP — ничего сверх вашей AI-подписки, которая сама обрабатывает биллинг. В автономном CLI ptai по умолчанию ограничивает расходы $10 за один проект; измените это с помощью `PTAI_PRICE_LIMIT`. См. [Установка](#install).
**Чем это отличается от простого использования Claude или PentestGPT?** Курируемая детерминированная библиотека проверок находит баги; LLM выполняет цикл фаз и рассуждает о результатах, он не сканирует. Именно поэтому находки воспроизводимы и поставляются с рабочим PoC вместо LLM-догадки. См. [В чём отличие](#why-its-different) и [сравнение с аналогами](#vs-the-field).
## История звёзд
<a href="https://star-history.com/#0xSteph/pentest-ai&Date">
<img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt="Star history chart" width="600">
</a>
## Лицензия
MIT. Делайте с ним всё, что хотите.
<div align="center">
**Если `ptai` спас вам воскресенье, [поставьте звёздочку репозиторию](https://github.com/0xSteph/pentest-ai). Это единственная плата, о которой я прошу.**
</div>