
Агентный MCP-сервер для пентестинга, который обнаруживает, эксплуатирует и сообщает об уязвимостях веб-приложений.
Агентный MCP-сервер для пентеста, автоматизирующий тестирование на проникновение веб-приложений с использованием полного руководства OWASP по тестированию безопасности веб-приложений и ссылок на техники PortSwigger Web Security Academy.
Укажите цель — он сканирует ваше приложение, картографирует каждую конечную точку, затем порождает специализированных по ролям агентов (Scout, Analyzer, Exploiter, Reporter) для тестирования на XSS, SQLi, SSRF, SSTI, IDOR и другое. Никаких ложных срабатываний — каждое обнаружение подкреплено реальными, воспроизводимыми доказательствами с контрольными точками качества, обеспечивающими подтверждение на каждом этапе. Включает 31 руководство по техникам PortSwigger, адаптивный обход WAF для 12 вендоров, межфазовое связывание уязвимостей и приоритизацию конечных точек с учетом риска. Запускайте с Claude Code, API или полностью офлайн, используя модели Ollama.
Воспринимайте это как: Методологию старшего пентестера, закодированную в MCP-сервере — 109 тестов OWASP, 31 руководство по атакующим техникам PortSwigger, 68+ инструментов MCP, 27 инструментов безопасности, 4 специализированные роли агентов, 7 структурированных фаз, автоматическое обеспечение качества и финальный обзор без контекста.
Ручное тестирование на проникновение тщательное, но медленное. Автоматизированные сканеры быстрые, но поверхностные. AutoPentest устраняет этот разрыв:
┌─────────────────────────────────────────────────────────────┐ │ LLM Orchestrator (Claude) │ │ │ │ Reads CLAUDE.md workflow, manages phases, │ │ spawns role-specialized subagents │ └──────────┬──────────┬──────────┬──────────┬─────────────────┘ │ │ │ │ ┌─────▼────┐ ┌───▼─────┐ ┌──▼───────┐ ┌▼─────────┐ │ Scout │ │Analyzer │ │Exploiter │ │ Reporter │ │ (recon) │ │ (vuln │ │ (proof) │ │ (QA / │ │ │ │ disc.) │ │ │ │ judge) │ └──────────┘ └─────────┘ └──────────┘ └──────────┘ │ │ │ │ │ MCP │ │ MCP │ ▼ ▼ ▼ ▼ ┌──────────────────────────┐ ┌──────────────────────┐ │ WSTG MCP Server │ │ Playwright MCP │ │ (68+ tools) │ │ (Browser Testing) │ │ │ │ │ │ ◦ 109 WSTG tests │ │ ◦ DOM XSS proof │ │ ◦ 31 technique guides │ │ ◦ Clickjacking │ │ ◦ Task tree │ │ ◦ JS-rendered auth │ │ ◦ Knowledge graph │ └──────────────────────┘ │ ◦ WAF evasion │ │ ◦ Tool output parser │ │ ◦ Results verification │ docker exec │ ◦ Context compression │ │ │ ◦ Endpoint priority │ ▼ │ ◦ Quality gates │ ┌──────────────────────┐ │ ◦ Report generation │ │ autopentest-tools │ └──────────────────────────┘ │ (Docker Container) │ │ │ │ 27 security tools: │ │ nuclei, sqlmap, │ │ dalfox, katana, │ │ ffuf, nmap ... │ │ │ │ Burp proxy │ │ passthrough │ └──────────────────────┘
**Как это работает:**
1. **Claude Code** читает `CLAUDE.md` для полной методологии пентеста и оркестрирует 7-фазный рабочий процесс
2. **Специализированные по ролям саб-агенты** (Scout, Analyzer, Exploiter, Reporter) выполняют целенаправленные задачи с выделенными шаблонами подсказок, инструкциями по инструментам и антипаттернами
3. **WSTG MCP Server** (68+ инструментов) предоставляет процедуры тестирования OWASP, 31 руководство по техникам PortSwigger, иерархическое дерево задач, граф знаний, обход WAF, приоритизацию конечных точек, верификацию результатов, сжатие контекста, качественные шлюзы и генерацию отчетов
4. **Docker-контейнер** запускает все 27 инструментов безопасности — трафик опционально маршрутизируется через Burp Suite для пассивного мониторинга
5. **Playwright MCP** обрабатывает тестирование на основе браузера (DOM XSS, кликджекинг, JS-рендеринг страниц входа)
---
## Возможности
### Комплексное покрытие OWASP
- **109 тестовых случаев WSTG** по 12 категориям — от сбора информации до тестирования API
- Каждый тест включает пошаговые CLI-процедуры, контекстно-зависимые полезные нагрузки, критерии обнаружения и шкалы серьезности
- Тесты приоритезированы (MUST/SHOULD) с условными триггерами, чтобы ничего релевантного не было пропущено
### 31 руководство по техникам атак PortSwigger
- Взяты из [PortSwigger Web Security Academy](https://portswigger.net/web-security) — методы обнаружения, техники эксплуатации, полезные нагрузки, шпаргалки и паттерны обхода WAF
- Организованы по классам уязвимостей (SQLi, XSS, SSRF, JWT, OAuth и т.д.) для прямого использования во время тестирования
- Интегрированы в каждую фазу тестирования — агенты автоматически загружают соответствующее руководство перед тестированием каждого класса уязвимостей
- Таблицы полезных нагрузок для конкретных баз данных/платформ (Oracle vs MySQL vs PostgreSQL vs MSSQL для SQLi, Jinja2 vs Twig vs Freemarker для SSTI и т.д.)
- Паттерны обхода WAF, организованные по уровню обхода (базовый → средний → продвинутый)
### 27 предварительно настроенных инструментов безопасности
- Все инструменты предустановлены в одном Docker-образе — `make setup` и вы готовы
- Инструменты организованы по фазам: обнаружение, тестирование инъекций, аутентификация, криптография, тестирование API
- Автоматическая интеграция с прокси Burp Suite для пассивного мониторинга трафика
### Структурированный 7-фазный рабочий процесс
- **Фаза 0:** Обнаружение и картографирование приложения
- **Фаза 1:** Сбор информации и разведка
- **Фаза 2:** Тестирование конфигурации и развертывания
- **Фаза 3:** Тестирование идентификации, аутентификации, авторизации и управления сессиями
- **Фаза 4:** Тестирование проверки ввода (конвейеры XSS/SQLi/SSRF)
- **Фаза 5:** Тестирование обработки ошибок, криптографии, бизнес-логики, клиентской части и API
- **Фаза 6:** Проверка покрытия и составление отчетов
- **Фаза 7:** Финальная рецензия судьи и устранение
### Система контроля качества
- **Автоматизированные фазовые шлюзы** — каждая фаза должна пройти проверки качества перед продолжением
- **Суб-агент Quality Reviewer** на каждом переходе между фазами выявляет пробелы и предлагает улучшения
- **Финальный судья** — агент с нулевым контекстом проверяет все взаимодействие с холодной головой, как внешний QA-рецензент
- **Шлюзы исчерпания** — "не уязвимо" требует доказательства достаточности усилий по тестированию (минимальное количество техник и попыток обхода)
### Доказательные находки
- Каждая находка требует воспроизводимых команд curl и полных доказательств запрос/ответ
- **Трехуровневая классификация:** EXPLOITED (доказанное влияние), POTENTIAL (заблокировано контролем), FALSE_POSITIVE (контроль срабатывает)
- **Анти-галлюцинационный фреймворк** — "нет эксплойта = нет находки" применяется на каждом уровне
- Чеклисты доказательств для каждого класса уязвимостей проверяются до того, как находка будет зарегистрирована
### Специализированные по ролям суб-агенты
- **4 выделенные роли** с целенаправленными шаблонами подсказок, инструкциями по инструментам и антипаттернами:
- **Scout** — только разведка, картографирует поверхность атаки без отправки полезных нагрузок (Фаза 0-1)
- **Analyzer** — выявляет потенциальные точки вброса с помощью канареечных/свидетельских полезных нагрузок, строит очереди эксплуатации (Фаза 2-5 анализ)
- **Exploiter** — потребляет вывод Analyzer, доказывает эксплуатацию с доказательствами, регистрирует подтвержденные находки (Фаза 4 эксплуатация)
- **Reporter** — проверка качества и финальный судья, просматривает данные без отправки запросов (QA + после отчета)
- Контрольная точка валидации между анализом и эксплуатацией предотвращает напрасные усилия
- Каждая роль имеет явные списки разрешенных/запрещенных инструментов и контракты ввода/вывода
### Конвейерная эксплуатация (Фаза 4)
- 3 независимых **двухстадийных конвейера** работают параллельно: XSS, Инъекции (SQLi/CMDi), SSRF/SSTI
- Каждый конвейер: Analyzer (обнаружение → анализ → постановка в очередь) → контрольная точка валидации → Exploiter (эксплуатация → логирование)
- Каждый конвейер загружает свое руководство по техникам PortSwigger для методов обнаружения, шпаргалок и паттернов обхода WAF
- Интеллект WAF используется всеми конвейерами
- Контекстно-зависимые свидетельские полезные нагрузки для 13 типов точек вброса
### Адаптивный обход WAF
- **Автоматическое определение WAF** по заголовкам ответа, телу и кодам состояния — идентифицирует 12 поставщиков WAF (Cloudflare, AWS WAF, Akamai, Imperva, ModSecurity, F5, FortiWeb, Sucuri, Barracuda, Wordfence, NAXSI, Citrix)
- **Специфичные для поставщика полезные нагрузки обхода**, организованные по уровню сложности (базовый → средний → продвинутый)
- Интеллект WAF используется всеми агентами через систему артефактов (deliverable)
- Агенты автоматически определяют WAF при первом заблокированном ответе и переключаются на адаптированные полезные нагрузки обхода
### Межфазовый граф знаний
- **Граф сущностей-связей** отслеживает конечные точки, параметры, технологии, находки, cookies, домены и роли пользователей
- **Автоматическое связывание уязвимостей** через поиск путей BFS с 7 предопределенными паттернами цепочек:
- XSS + отсутствие CSP, XSS + слабая cookie (без HttpOnly), Open redirect + колбэк OAuth
- IDOR + роль администратора, SSRF + облачные метаданные, Отсутствие блокировки + отсутствие MFA, CORS + чувствительная конечная точка
- Повышение серьезности, когда связывание существенно увеличивает влияние
- Заполняется в ходе тестирования, запрашивается после Фазы 4 для поиска цепочек
### Иерархическое дерево задач
- Устойчивая древовидная структура (фазы как ветви, тесты как листья) предотвращает смещение LLM в глубину и потерю контекста
- Основной агент поддерживает стратегический макровзгляд; суб-агенты обновляют только назначенные им листовые узлы
- Автоматическое распространение: когда все дочерние узлы завершены, родительский автоматически завершается
- Проценты завершения на уровне фаз для принятия информированных решений
### Приоритизация рисков конечных точек
- Оценка и сортировка конечных точек по риску для приоритетного тестирования — самые рискованные проверяются первыми
- Факторы оценки: количество параметров, индикаторы риска технологий, уверенность в цепочке заражения, сходимость инструментов, требования к аутентификации, имена инъекционных параметров
- Интегрировано в генерацию карты конечных точек Фазы 0
### Разбор вывода инструментов
- **13 встроенных парсеров** для распространенных CLI-инструментов (nmap, nuclei, sqlmap, ffuf, httpx, whatweb, testssl, nikto, dalfox, katana, gau, wapiti, commix)
- Сжимает сырой вывод инструментов в 3-5 раз, сохраняя ключевые находки, конечные точки и ошибки
- Настраиваемая подробность: резюме (~15 строк), подробно (~50 строк), полный (весь разобранный вывод)
### Верификация результатов CLI-инструментов
- Автоматическая проверка качества вывода CLI-инструментов — обнаруживает пустой вывод, ошибки прокси, проблемы с разрешениями и подозрительные результаты
- **10 валидаторов по инструментам** (nmap, nuclei, sqlmap, ffuf, feroxbuster, testssl, dalfox, wapiti, katana, httpx) с предложениями исправленных команд
- Когда инструмент выдает пустой или подозрительный вывод, валидатор предлагает исправления (например, добавить `-Pn` для nmap, удалить переменные окружения прокси, попробовать другие флаги)
- Интегрировано в рабочий процесс выполнения инструментов — агенты вызывают `verify_tool_result()` после каждого запуска CLI-инструмента
### Прогрессивное сжатие контекста
- **Сводки по фазам** (~500-800 слов) автоматически генерируются при прохождении фазовых шлюзов — захватывают находки, покрытие, результаты инструментов и поверхность атаки в сжатой форме
- Предотвращает деградацию контекста в длительных взаимодействиях, заменяя необработанные исторические данные структурированными сводками
- `get_engagement_summary()` объединяет все сводки по фазам в единый обзор для вставки в подсказки новых суб-агентов
- Сводки хранятся как артефакты — доступны любому последующему агенту без необходимости полной истории взаимодействия
### Контрфактический анализ (Второй проход обнаружения)
- После того как Analyzer завершает работу с найденными уязвимостями, порождается **второй Analyzer** с инструкцией "предположить, что эти уязвимости исправлены"
- Контрфактический Analyzer ищет **дополнительные** уязвимости: другие конечные точки, другие параметры, другие контексты инъекций, логические ошибки
- Результаты добавляются в существующую очередь эксплуатации (автоматическое слияние с дедупликацией по конечной точке+параметру и автоинкрементными ID)
- Основано на исследовании PenHeal ablation, показывающем +71% покрытия уязвимостей с контрфактическими подсказками
### Поддержка нескольких доменов
- Автоматическое обнаружение и обработка SSO/OAuth/OIDC/SAML
- Регистрация, обход и тестирование в рамках каждого домена
- Управление cookie jar для поддержания сессии между доменами
- Эскалация отказа аутентификации по 6 уровням (альтернативные гранты → PKCE → безголовый браузер → извлечение токена → предоставление пользователя → неаутентифицированный)
### Управление взаимодействием с защитой от сбоев
- `findings.md` и `progress.log` с добавлением только данных, переживают сбои
- Контрольные точки Git-рабочего пространства с возможностью отката
- **Автовозобновление при прерывании** — `resume-prompt.md` автоматически генерируется на каждой контрольной точке с полным контекстом (цель, учетные данные, текущая фаза, оставшиеся тесты, область). Вставьте в новый сеанс, чтобы продолжить с того же места
- Детализация контрольных точек внутри фазы — отслеживает, какие тесты внутри фазы завершены, а не только состояние на уровне фаз
- Полный аудиторский след каждого вызова MCP-инструмента с временными метками
### Профессиональная отчетность
- Отчеты в Markdown с исполнительным резюме, находками по серьезности, матрицей покрытия тестов и покрытием инструментов
- Проценты покрытия по категориям и анализ пробелов
- Документированный анализ цепочек уязвимостей
- Включены наблюдения окончательного судьи и заметки по качеству
---
## Система ролей агентов
AutoPentest использует 4 специализированные роли агентов вместо общих суб-агентов. Каждая роль имеет выделенный шаблон подсказки с целенаправленными инструкциями по инструментам, контрактами ввода/вывода и антипаттернами.
| Роль | Шаблон | Назначение | Фазы |
|------|--------|------------|------|
| **Scout** | `templates/agent-roles/scout.md` | Разведка и картографирование поверхности атаки | Фаза 0-1, обнаружение исходного кода |
| **Analyzer** | `templates/agent-roles/analyzer.md` | Обнаружение уязвимостей с канареечными/свидетельскими полезными нагрузками | Фаза 2-5 анализ |
| **Exploiter** | `templates/agent-roles/exploiter.md` | Доказательство эксплуатации с доказательствами | Фаза 4 эксплуатация |
| **Reporter** | `templates/agent-roles/reporter.md` | Проверка качества и финальный судья | Переходы между фазами, после отчета |
### Как работает конвейер
Фаза 4 (тестирование наибольшего влияния) использует двухстадийный конвейер для каждого класса уязвимостей:```
┌──────────────────────────────────────────────────────────────┐
│ Pipeline 1: XSS │
│ │
│ Analyzer (75 turns) Exploiter (75 turns) │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Discover endpoints │ │ Load Analyzer queue │ │
│ │ Send canary payloads│─────▶│ Attempt exploitation│ │
│ │ Build exploit queue │ gate │ Prove impact │ │
│ │ Save deliverable │ │ Log findings │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ ▲ │
│ validate_exploitation_queue() │
└──────────────────────────────────────────────────────────────┘
Три конвейера (XSS, Injection, SSRF/SSTI) выполняются параллельно. Контрольная точка проверки между Analyzer и Exploiter гарантирует, что только корректно сформированные очереди эксплойтов переходят далее.
Каждая роль имеет явные ограничения на инструменты, применяемые через промпты:
log_finding() или отправлять атакующие нагрузкиДля CTF-задач и небольших приложений (<3 входные точки) доступен устаревший монолитный конвейер в качестве запасного варианта.
git clone https://github.com/bhavsec/autopentest-ai.git cd autopentest-ai
cd server && uv sync && cd ..
make setup
Вот и всё. Все 27 инструментов безопасности теперь установлены и готовы к работе внутри Docker-контейнера.
### Проверка установки```bash
# Check all tools are installed
make verify-tools
# Expected output:
# [+] nuclei: installed
# [+] httpx: installed
# [+] katana: installed
# ... (27 tools total)
claude
Затем скажите Клоду, что тестировать:```
Run a full WSTG assessment against https://target.example.com
Запустите Claude Code и укажите цель:``` Run a full pentest against https://app.example.com
Credentials: admin / P@ssw0rd123
Claude запросит недостающую информацию (например, учетные данные) и начнет 7-этапный рабочий процесс.
### Вариант B: Режим на основе конфигурации (рекомендуется)
Создайте YAML-файл конфигурации для повторяемых и согласованных оценок:```yaml
# configs/my-target.yaml
target:
url: https://app.example.com
scope:
- app.example.com
- api.example.com
exclude:
- cdn.example.com
authentication:
login_type: form
login_url: https://app.example.com/login
credentials:
username: [email protected]
password: secret123
login_flow:
- "Type $username into the email field"
- "Type $password into the password field"
- "Click the 'Sign In' button"
success_condition:
type: url_contains
value: "/dashboard"
rules:
avoid:
- description: "Do not test logout"
type: path
url_path: "/logout"
focus:
- description: "Prioritize API endpoints"
type: path
url_path: "/api"
reporting:
tester_name: "Security Team"
Затем в Claude Code:``` Load the config from configs/my-target.yaml and run the pentest
### Вариант C: Целевое тестирование
Запустите определенные тесты WSTG против определенных конечных точек:```
Run WSTG-INPV-05 (SQL Injection) against https://app.example.com/search?q=
(no input content provided)``` Test https://app.example.com for CORS misconfiguration (WSTG-CONF-13)
### Обработка команд```
Run all authentication tests (WSTG-ATHN) against https://app.example.com
Resume engagement pentest-2026-02-11-myapp
---
## Этапы тестирования
### Фаза 0: Обнаружение и картирование приложения
Критическая базовая фаза. Claude автономно:
1. **Предполетные проверки** — проверяет доступность цели, обнаруживает перенаправления и междоменную аутентификацию
2. **Запускает 10+ фоновых инструментов** параллельно (katana, ffuf, nuclei, whatweb, gau, nmap, feroxbuster, wapiti, httpx)
3. **Рекурсивное сканирование** — следует по ссылкам на глубину 2-3, анализирует HTML/JS для конечных точек
4. **Подбор каталогов** — общие пути + технологикозависимые списки слов
5. **Прием результатов инструментов** — читает все выходные данные фоновых инструментов и объединяет в единую карту конечных точек
6. **Строит структурированный инвентарь конечных точек** с параметрами, требованиями аутентификации и приоритетами
**Результат:** Полная карта конечных точек, организованная по доменам, готовая к систематическому тестированию.
### Фаза 1-2: Разведка и конфигурация
- Идентификация сервера, обнаружение технологий, анализ метаданных
- Анализ заголовков безопасности (HSTS, CSP, CORS, X-Frame-Options)
- Тестирование конфигурации TLS, обнаружение административных интерфейсов
- Тестирование HTTP методов, обработка расширений файлов
### Фаза 3: Аутентификация, авторизация и управление сессиями
- **Решетка ролей/привилегий** строится перед тестированием (сопоставляет защитные механизмы, промежуточное ПО и тесты на обход)
- Тестирование IDOR с несколькими альтернативными ID для каждой конечной точки
- Тестирование CSRF на каждой конечной точке, изменяющей состояние
- Фиксация сессии, перехват и анализ токенов
- Тестирование уязвимостей JWT (если применимо)
- Тестирование слабых мест OAuth/OIDC (если применимо)
### Фаза 4: Проверка ввода (наибольшее влияние)
Три независимых двухэтапных конвейера работают параллельно, каждый с разделением ролей Анализатор→Эксплуататор:
| Конвейер | Классы уязвимостей | Инструменты | Руководства по техникам |
|----------|----------------------|-------|-----------------|
| XSS Pipeline | Отраженный XSS, Хранимый XSS, DOM XSS | dalfox, Playwright | XSS, DOM |
| Injection Pipeline | SQL-инъекция, Инъекция команд, NoSQL-инъекция | sqlmap, commix, nosqli | SQLI, CMDI, NOSQLI |
| SSRF/SSTI Pipeline | SSRF, SSTI, Обход пути | sstimap, ssrfmap | SSRF, SSTI, PTRAV |
Каждый конвейер: **Анализатор** (обнаружение → анализ → построение очереди эксплуатации) → контрольная точка валидации → **Эксплуататор** (попытка эксплуатации → доказательство воздействия → запись результатов). Интеллект обхода WAF общий для всех конвейеров.
### Фаза 5: Обработка ошибок, криптография, бизнес-логика, клиентская часть и API
- Раскрытие трассировки стека и сообщений об ошибках
- Тестирование TLS/SSL с помощью testssl.sh
- Обход бизнес-логики (обход рабочего процесса, подделка запросов)
- Клиентское тестирование (кликджекинг, открытые перенаправления, манипуляции с DOM)
- Тестирование GraphQL и REST API
- Анализ цепочек уязвимостей по всем находкам
### Фаза 6: Отчетность
- Проверка покрытия (покрытие тестов + покрытие инструментов)
- Дедупликация находок и калибровка серьезности
- Генерация отчета в Markdown с резюме для руководства, находками, матрицами покрытия
### Фаза 7: Итоговое рецензирование судьи
Агент с нулевым контекстом проверяет весь процесс холодно — без знания решений или трудностей тестирования. Он изучает:
- **Целостность покрытия** — формальные тесты, отсутствующие конечные точки
- **Обнаружение каскада N/A** — категории с избыточными отметками "не применимо"
- **Качество находок** — полнота доказательств, согласованность серьезности, возможности объединения
- **Использование инструментов** — инструменты запущены, но результаты не просмотрены, ленивые причины пропуска
- **Пропущенная поверхность атаки** — непротестированные конечные точки, непротестированные параметры, непротестированные домены
Вердикт (PASS/CONDITIONAL_PASS/FAIL) запускает конкретные действия по исправлению до доставки отчета.
---
## Инструменты безопасности
### Обнаружение и разведка (Фаза 0)
| Инструмент | Назначение | Ключевые флаги |
|------|---------|-----------|
| **katana** | Веб-сканер с рендерингом JS | `-jc` для JavaScript crawling |
| **httpx** | HTTP-зондирование, обнаружение технологий | `-tech-detect -status-code -title` |
| **ffuf** | Фаззинг каталогов/параметров | `-w wordlist -mc all -fc 404` |
| **feroxbuster** | Рекурсивный перебор каталогов | `--smart --auto-tune` |
| **nuclei** | Сканер уязвимостей на основе шаблонов | `-t cves/ -t misconfigurations/` |
| **nikto** | Неверная конфигурация веб-сервера | `-Tuning 1234567890` |
| **whatweb** | Идентификация технологий | `--aggression 3` |
| **nmap** | Сканирование портов и служб | `-sV -sC --top-ports 1000` |
| **gau** | Обнаружение исторических URL | `--blacklist png,jpg,gif` |
| **subfinder** | Перебор поддоменов | `-silent -all` |
### Тестирование инъекций (Фаза 4)
| Инструмент | Назначение | Ключевые флаги |
|------|---------|-----------|
| **sqlmap** | SQL-инъекция (все техники) | `--batch --risk 3 --level 5` |
| **dalfox** | Сканирование и эксплуатация XSS | `--skip-bav --deep-domxss` |
| **commix** | Инъекция команд | `--batch --all` |
| **sstimap** | Инъекция шаблонов на стороне сервера | `-u <url>` |
| **ssrfmap** | Эксплуатация SSRF | `-r request.txt` |
| **nosqli** | NoSQL-инъекция | `-u <url>` |
| **crlfuzz** | CRLF-инъекция / HTTP splitting | `-u <url>` |
| **smuggler** | Контрабанда HTTP-запросов | `-u <url>` |
### Аутентификация и сессии (Фаза 3)
| Инструмент | Назначение | Ключевые флаги |
|------|---------|-----------|
| **hydra** | Брутфорс учетных данных | `-L users.txt -P pass.txt` |
| **jwt_tool** | Анализ и эксплуатация JWT-токенов | `-t <token> -M at` |
### Криптография и API (Фаза 5)
| Инструмент | Назначение | Ключевые флаги |
|------|---------|-----------|
| **testssl.sh** | Тестирование конфигурации TLS/SSL | `--severity HIGH --sneaky` |
| **graphql-cop** | Тестирование безопасности GraphQL | `-t <url>` |
| **websocat** | Тестирование WebSocket | `ws://<url>` |
### Инфраструктура (Фаза 2)
| Инструмент | Назначение |
|------|---------|
| **corscanner** | Сканирование неверных конфигураций CORS |
| **dnsreaper** | Обнаружение захвата поддоменов |
### Автоматизация браузера
| Инструмент | Назначение |
|------|---------|
| **Playwright** | Доказательство DOM XSS, кликджекинг, JS-рендеринг входа, инспекция хранилища на стороне клиента |
---
## База знаний WSTG
109 тестовых случаев по 12 категориям OWASP, каждый с процедурами для CLI:
| Код | Категория | Тесты | Примеры |
|------|----------|:-----:|---------|
| **INFO** | Сбор информации | 10 | Обнаружение через поисковые системы, идентификация сервера, анализ метаданных |
| **CONF** | Конфигурация и развертывание | 14 | Заголовки безопасности, CORS, CSP, HSTS, административные интерфейсы |
| **IDNT** | Управление идентификацией | 5 | Определения ролей, регистрация, перебор учетных записей |
| **ATHN** | Аутентификация | 11 | Учетные данные по умолчанию, блокировка, обход аутентификации, MFA, политика паролей |
| **ATHZ** | Авторизация | 5 | Обход каталогов, обход аутентификации, повышение привилегий, IDOR |
| **SESS** | Управление сессиями | 11 | Атрибуты cookie, CSRF, фиксация/перехват сессии, JWT |
| **INPV** | Проверка ввода | 20 | XSS, SQLi, CMDi, SSTI, SSRF, обход пути, XXE, LDAP |
| **ERRH** | Обработка ошибок | 2 | Сообщения об ошибках, трассировка стека |
| **CRYP** | Криптография | 4 | Конфигурация TLS, оракул заполнения, слабое шифрование |
| **BUSL** | Бизнес-логика | 10 | Обход рабочего процесса, подделка запросов, загрузка файлов, ограничения скорости |
| **CLNT** | Клиентская сторона | 14 | DOM XSS, кликджекинг, открытые перенаправления, WebSockets, хранилище |
| **APIT** | Тестирование API | 3 | GraphQL, REST, SOAP |
Каждый тестовый файл включает:
- Пошаговые процедуры CLI (команды curl, вызовы инструментов)
- Полезные нагрузки, организованные по уровню обхода (базовый, средний, продвинутый)
- Критерии обнаружения с рубриками оценки серьезности
- Руководство по исправлению с ссылками
---
## Руководства по техникам PortSwigger
31 справочное руководство по техникам атак из [PortSwigger Web Security Academy](https://portswigger.net/web-security), организованное по классам уязвимостей для непосредственного использования в реальных пентестах.
### Что включено
| Код | Категория | Сопоставление WSTG | Ключевое содержание |
|------|----------|-------------|-------------|
| **SQLI** | SQL-инъекция | INPV-05 | Техники UNION/слепой/ошибка/время/OOB, шпаргалки для конкретных БД (Oracle, MySQL, PostgreSQL, MSSQL), обход WAF |
| **XSS** | Межсайтовый скриптинг | INPV-01, INPV-02, CLNT-01 | Контексты отраженный/хранимый/DOM, полезные нагрузки тегов и обработчиков событий, обход CSP, обход фильтров |
| **CMDI** | Инъекция команд ОС | INPV-12 | Символы-разделители, слепые техники (задержка, OOB), полезные нагрузки для конкретных ОС |
| **SSTI** | Инъекция шаблонов на стороне сервера | INPV-18 | Обнаружение и эксплуатация Jinja2/Twig/Freemarker/Velocity/ERB, побеги из песочницы |
| **SSRF** | Подделка запросов на стороне сервера | INPV-19 | Трюки со схемами URL, обфускация IP, DNS rebinding, метаданные облака, обход фильтров |
| **PTRAV** | Обход пути | INPV-04 | Вариации кодировок, инъекция нулевого байта, обход оберток |
| **XXE** | Внешние сущности XML | INPV-07 | Получение файлов, SSRF через XXE, слепая XXE с OOB, сущности параметров |
| **AUTHN** | Аутентификация | ATHN-01 to ATHN-07 | Брутфорс, обход 2FA, отравление сброса пароля, вброс учетных данных |
| **AUTHZ** | Контроль доступа | ATHZ-01 to ATHZ-04 | IDOR, повышение привилегий, горизонтальный/вертикальный обход, контроль на основе referer |
| **JWT** | JSON Web Tokens | SESS-10 | Путаница алгоритмов (none/HS256→RS256), инъекция kid, эксплуатация JWK/JKU |
| **OAUTH** | OAuth 2.0 | ATHZ-05 | Кража кода авторизации, открытое перенаправление, повышение области действия, CSRF в потоках OAuth |
| **CSRF** | Межсайтовая подделка запроса | SESS-05 | Обход токена, обход SameSite, обход проверки referer |
| **SMUGGLE** | Контрабанда HTTP-запросов | INPV-15 | CL.TE, TE.CL, TE.TE, понижение до HTTP/2, туннелирование запросов |
| **DOM** | Уязвимости на основе DOM | CLNT-01 | Источники/приемники, DOM clobbering, гаджеты загрязнения прототипов |
| **CORS** | Совместное использование ресурсов разных источников | CONF-13, CLNT-07 | Отражение источника, нулевой источник, эксплуатация доверия поддоменов |
| **NOSQLI** | NoSQL-инъекция | INPV-05 | Инъекция операторов MongoDB, инъекция JavaScript, слепое извлечение |
| **GRAPHQL** | GraphQL | APIT-01 | Интроспекция, предложение полей, атаки пакетированием, обход авторизации |
| **RACE** | Состояния гонки | BUSL-04 | Превышение лимита, TOCTOU, гонки на одной конечной точке, синхронизация последнего кадра |
| **UPLOAD** | Загрузка файлов | BUSL-08, BUSL-09 | Обход расширения, манипуляция content-type, веб-шеллы, многоязычные файлы |
| **HOST** | Инъекция заголовка Host | INPV-17 | Отравление сброса пароля, отравление кеша, SSRF на основе маршрутизации |
Плюс еще 11: CLICK, WS, CACHEPOIS, CACHEDEC, DESER, INFO, BUSL, PROTO, API, LLM, SKILLS.
### Как они используются
Руководства по техникам интегрированы в каждую фазу тестирования через MCP-инструмент `get_technique_guide()`:```
Phase 2 → CORS guide for CONF-13 testing
Phase 3 → AUTHN, AUTHZ, CSRF, JWT, OAUTH guides for auth/session testing
Phase 4 → SQLI, XSS, CMDI, SSTI, SSRF, PTRAV, XXE guides for input validation
Phase 5 → DOM, CLICK, GRAPHQL, RACE, UPLOAD guides for client-side & business logic
Каждый параллельный тестирующий агент автоматически загружает соответствующее руководство по методике перед началом тестирования, предоставляя:
Инструкции по добавлению новых технических руководств в базу знаний см. в docs/adding-knowledge-base-resources.md.
AutoPentest имеет многоуровневую систему контроля качества, предотвращающую поверхностное тестирование:
После каждой фазы phase_gate_check() проверяет:
Заблокированные фазы не могут продолжаться до тех пор, пока все проблемы не будут устранены.
Подчиненный агент, запускаемый при каждом переходе фазы, который:
Агент с нулевым контекстом, который проверяет завершенное взаимодействие «свежим взглядом»:
Пометка уязвимости как «не эксплуатируемая» требует подтверждения усилий:
Перед регистрацией любой находки проверяются требования к доказательствам:
Каждый вызов инструмента MCP автоматически записывается в engagements/<eid>/logs.txt с полными аргументами, результатами и длительностью выполнения. Запустите tail -f logs.txt в отдельном терминале, чтобы следить за всеми действиями агента в реальном времени. 100% покрытие через автоматическую обертку инструмента — ручная инструментация не требуется.
Фазовые шлюзы обеспечивают минимальные интервалы в 60 секунд между вызовами (15 секунд в режиме CTF), предотвращая преждевременное завершение фазы. Проверка работы между шлюзами предупреждает, если между последовательными шлюзами зафиксировано менее 3 событий работы.
AutoPentest включает интеграцию с XBOW Validation Benchmarks — 104 CTF-подобных Docker-задачи, используемых в качестве отраслевого стандарта для бенчмаркинга AI-агентов пентеста.
| Агент | Оценка | Источник |
|---|---|---|
| Shannon | 96.2% | KeygraphHQ (2024) |
| PentestGPT | 86.5% | USENIX Sec 2024 |
cd benchmarks/xbow && make setup
make solve ID=XBEN-001-24
make solve ID=XBEN-001-24 RAW=1
make solve-tag TAG=sqli
make solve-all
make solve-all RAW=1
make score
make compare
Решение работает в двух режимах:
- **autopentest** (по умолчанию): Запускает Claude Code из корня проекта, загружая `.mcp.json` (MCP-сервер с 68+ инструментами) и `CLAUDE.md` (методология пентеста). Измеряет полную возможность AutoPentest.
- **raw** (`RAW=1`): Запускает «голый» Claude Code без MCP-сервера или методологии. Базовый уровень для измерения добавленной стоимости AutoPentest по сравнению с возможностями «сырой» LLM.
Каждое испытание представляет собой приложение Docker Compose с флагом, внедрённым во время сборки. Извлечение флага из вывода Claude определяет успех/неудачу. Результаты оцениваются по каждому испытанию, каждому тегу и каждому уровню сложности.
### Режим CTF
Для испытаний CTF и небольших приложений включите режим CTF для смягчённых проверок качества:```yaml
mode: ctf
target:
url: https://target.com
CTF режим сокращает тайминг фазовых ворот (15 с против 60 с), пропускает требования QA Reviewer и вдвое снижает пороги выполнения — сохраняя при этом качество находок и стандарты доказательств.
Полный пример отчета из пентеста против PortSwigger's Gin & Juice Shop (сознательно уязвимое приложение) включен в репозиторий:
Отчет демонстрирует вывод AutoPentest по реальной цели с 23 находками по всем уровням серьезности:
### Sample Finding (SQL Injection)
Из отчета — критическая находка SQL-инъекции с полным доказательством эксплуатации:```
FINDING-017: SQL Injection in /catalog category parameter — Full Data Extraction
Severity: Critical
WSTG Reference: WSTG-INPV-05
The category parameter is vulnerable to UNION-based SQL injection.
The attacker can:
1. Inject a single quote to cause a 500 error (confirming injection)
2. Use UNION SELECT with 8 columns to extract arbitrary data
3. Enumerate tables: PRODUCTS, TRACKING, USERS
4. Extract credentials from the USERS table
Evidence (reproducible curl command):
curl -sk "https://ginandjuice.shop/catalog?category='+UNION+SELECT+1,USERNAME,PASSWORD,
1,1,USERNAME,1,USERNAME+FROM+USERS+LIMIT+10--"
Каждое обнаружение включает воспроизводимые команды curl, полные доказательства запроса/ответа и практические рекомендации по устранению.
Тесты на проникновение, управляемые конфигурацией, пропускают интерактивные вопросы и обеспечивают согласованность:```yaml target: url: https://app.example.com scope: [app.example.com, api.example.com]
authentication: login_type: sso # form | sso | api | manual | none login_url: https://app.example.com/login credentials: username: testuser password: secret123 sso: provider: keycloak # keycloak | auth0 | okta | azure_ad auth_domain: auth.example.com realm: myrealm client_id: my-app
rules: avoid: - { type: path, url_path: "/logout", description: "Skip logout" } - { type: endpoint, method: DELETE, url_path: "/api/admin/*", description: "No destructive admin ops" } focus: - { type: path, url_path: "/api", description: "Prioritize API" }
reporting: tester_name: "Security Team"
### Конфигурация MCP-сервера
Файл `.mcp.json` регистрирует два MCP-сервера:```json
{
"mcpServers": {
"wstg-pentest": {
"command": "uv",
"args": ["--directory", "./server", "run", "server.py"]
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp"]
}
}
}
Для пассивного мониторинга трафика через Burp Suite Professional:
0.0.0.0:8080)host.docker.internal:8080AutoPentest имеет первоклассную поддержку приложений с несколькими доменами (например, SPA-фронтенд + API-бэкенд + SSO-провайдер):
На этапе 0 AutoPentest обнаруживает кросс-доменную аутентификацию, следуя за редиректами входа:``` app.example.com → redirects to → auth.example.com/login → after login → app.example.com/callback
Все домены автоматически регистрируются в области видимости с указанием их типа (app, auth_provider, api, cdn).
### Тестирование по каждому домену
Каждый тест WSTG оценивается для каждого домена, а не только для основного:
- Инструменты обнаружения (katana, ffuf, nuclei) запускаются против **всех** доменов
- Инструменты проверки ввода (sqlmap, dalfox) нацелены на конечные точки на **каждом** домене с обработкой на стороне сервера
- Тест считается «неприменимым» только тогда, когда **ни один** домен не имеет тестируемой функции
### Междоменная аутентификация
Поддерживаемые протоколы SSO:
- **OAuth 2.0 / OIDC** (Authorization Code, PKCE, Password Grant, Client Credentials)
- **SAML** (SP-initiated flow)
- **Keycloak**, **Auth0**, **Okta**, **Azure AD**
- **Custom SSO** (отслеживание цепочки перенаправлений с использованием cookie jar)
Процедура эскалации аутентификации (6 уровней) гарантирует, что тестирование может продолжаться даже при сложных потоках аутентификации.
---
## Восстановление после сбоя
AutoPentest спроектирован для выживания при прерываниях:
### Автоматическое создание контрольных точек
- Фазовые шлюзы автоматически сохраняют контрольные точки при PASS
- `git_checkpoint()` создает git-снимки рабочей области тестирования
- Журналы только для добавления (`findings.md`, `progress.log`) сохраняются при сбоях
### Автоматическое возобновление через resume-prompt.md (рекомендуется)
Каждая контрольная точка и фазовый шлюз автоматически генерируют `engagements/<eid>/resume-prompt.md` — полный, самодостаточный промпт со всем, что нужно для новой сессии:
- Целевой URL, учетные данные аутентификации и домены области видимости
- Текущая фаза и какие конкретные тесты остались (точность в середине фазы)
- Статус cookie jar и инструкции по повторной аутентификации
- Правила избегания/фокусировки и ссылки на карту конечных точек
**Для возобновления после прерывания:**
1. Откройте новую сессию Claude Code
2. Вставьте содержимое `engagements/<eid>/resume-prompt.md`
3. Claude подхватывает именно с того места, где остановился — ручной контекст не требуется.
### Возобновление с контрольной точки (альтернатива)```
Resume engagement pentest-2026-02-11-myapp
Это восстанавливает:
Сохраняйте в любое время:``` Save a checkpoint before starting Phase 4 exploitation
### Откат при сбое
Если фаза дает плохие результаты, выполните откат к предыдущей контрольной точке:```
Roll back the engagement to the last checkpoint
autopentest-ai/ ├── CLAUDE.md # Master pentest workflow (drives Claude Code) ├── .mcp.json # MCP server configuration ├── Dockerfile # Multi-stage Docker build (27 tools) ├── docker-compose.yml # Docker Compose alternative ├── Makefile # setup, start, stop, verify-tools, shell │ ├── server/ │ ├── server.py # FastMCP server (68+ MCP tools) │ ├── task_tree.py # Hierarchical task tree (6 MCP tools) │ ├── tool_parsers.py # Tool output parsing (2 MCP tools, 13 parsers) │ ├── endpoint_priority.py # Endpoint risk prioritization (2 MCP tools) │ ├── waf_evasion.py # Adaptive WAF evasion (3 MCP tools, 12 vendors) │ ├── knowledge_graph.py # Cross-phase knowledge graph (5 MCP tools) │ ├── tool_verification.py # CLI tool results verification (1 MCP tool, 10 validators) │ ├── context_compression.py # Progressive context compression (2 MCP tools) │ └── pyproject.toml # Python dependencies │ ├── knowledge-base/ │ ├── web-security-testing-guide/ # OWASP WSTG knowledge base (109 test procedures) │ │ ├── 01-information-gathering/ # 10 tests (WSTG-INFO-01 → 10) │ │ ├── 02-configuration/ # 14 tests (WSTG-CONF-01 → 14) │ │ ├── 03-identity-management/ # 5 tests (WSTG-IDNT-01 → 05) │ │ ├── 04-authentication/ # 11 tests (WSTG-ATHN-01 → 11) │ │ ├── 05-authorization/ # 5 tests (WSTG-ATHZ-01 → 05) │ │ ├── 06-session-management/ # 11 tests (WSTG-SESS-01 → 11) │ │ ├── 07-input-validation/ # 20 tests (WSTG-INPV-01 → 20) │ │ ├── 08-error-handling/ # 2 tests (WSTG-ERRH-01 → 02) │ │ ├── 09-cryptography/ # 4 tests (WSTG-CRYP-01 → 04) │ │ ├── 10-business-logic/ # 10 tests (WSTG-BUSL-01 → 10) │ │ ├── 11-client-side/ # 14 tests (WSTG-CLNT-01 → 14) │ │ └── 12-api-testing/ # 3 tests (WSTG-APIT-01 → 03) │ └── portswigger-academy/ # 31 PortSwigger attack technique guides │ ├── sql-injection.md # UNION, blind, error-based, OOB, WAF bypass │ ├── cross-site-scripting.md # Reflected, stored, DOM, CSP bypass, filter evasion │ ├── ssrf.md # URL schemes, cloud metadata, DNS rebinding │ ├── ssti.md # Jinja2, Twig, Freemarker sandbox escapes │ ├── jwt.md # Algorithm confusion, kid injection, JWK exploitation │ ├── oauth.md # Auth code theft, redirect exploitation, scope upgrade │ └── ... (31 total) # One per vulnerability class │ ├── templates/ # Testing guides and procedures │ ├── input-validation-guide.md # Phase 4 step-by-step procedures │ ├── testing-strategies.md # Test matrices, chaining, parallel strategy │ ├── cli-tools-guide.md # Tool setup and Docker management │ ├── tools.md # Per-tool command reference │ ├── quality-gates.md # Phase quality checklists and anti-patterns │ ├── cross-domain-auth-guide.md # SSO/OIDC/SAML procedures │ ├── source-code-analysis.md # Security-focused code review template │ ├── pipelined-testing.md # Phase 4 pipelined exploitation strategy │ ├── agent-roles/ # Role-specialized subagent templates │ │ ├── README.md # Role index and selection guide │ │ ├── scout.md # Reconnaissance role (Phase 0-1) │ │ ├── analyzer.md # Vulnerability discovery role (Phase 2-5) │ │ ├── exploiter.md # Exploitation proof role (Phase 4) │ │ └── reporter.md # QA review + Final Judge role │ ├── shared/ │ │ ├── honesty-framework.md # Anti-hallucination guardrails │ │ ├── exploit-classification.md # Three-tier finding classification │ │ ├── reproducibility.md # Evidence format requirements │ │ └── scope-rules.md # Avoid/focus rule templates │ └── wordlists/ # Tech-specific fuzzing wordlists │ ├── benchmarks/ │ └── xbow/ # XBOW benchmark suite (104 CTF challenges) │ ├── runner.py # Challenge orchestration │ ├── solver.py # Automated solver (Claude Code CLI) │ ├── Makefile # solve, solve-all, score, compare │ └── results/ # Run reports │ ├── docs/ │ ├── ROADMAP.md # Competitive analysis + improvement roadmap │ └── adding-knowledge-base-resources.md # Guide for adding new technique guides │ ├── configs/ │ ├── example-config.yaml # Example engagement configuration │ └── config-schema.md # YAML schema documentation │ ├── scripts/ │ ├── install-tools.sh # Docker build + container start │ ├── browser-auth.py # Headless Chromium auth (JS-rendered logins) │ ├── pkce-auth.py # OAuth 2.0 PKCE flow automation │ └── status.sh # Engagement status dashboard │ └── engagements/ # Runtime output (git-ignored) └── / ├── logs.txt # Live engagement log (tail -f to watch) ├── findings.md # Append-only findings log ├── progress.log # Timestamped event log ├── resume-prompt.md # Auto-resume prompt (paste into new session) ├── report.md # Final pentest report ├── cookies.txt # Cross-domain cookie jar └── tool-output/ # Raw CLI tool outputs
---
## Требования
| Требование | Версия | Примечания |
|-------------|---------|-------|
| Docker | 20.10+ | Docker Desktop на macOS/Windows |
| Claude Code | Последняя | `npm install -g @anthropic-ai/claude-code` |
| uv | 0.1+ | `curl -LsSf https://astral.sh/uv/install.sh \| sh` |
| Node.js | 18+ | Для сервера Playwright MCP |
| Python | 3.10+ | Управляется uv (ручная установка не требуется) |
| Burp Suite Pro | Последняя | **Опционально** — для пассивного мониторинга трафика |
**Поддерживаемые платформы:** macOS (Apple Silicon & Intel), Linux (x86_64 & ARM64)
---
## FAQ
**В: Заменяет ли это человека-пентестера?**
Нет. AutoPentest автоматизирует систематические, методологически обоснованные части пентеста. Он превосходен в охвате (гарантирует, что ничего не упущено) и последовательности (каждый тест следует одной и той же процедуре). Однако сложная бизнес-логика, творческие цепочки эксплуатации и зависящая от контекста оценка рисков по-прежнему выигрывают от человеческого опыта. Воспринимайте это как мультипликатор силы.
**В: Сколько времени занимает полная оценка?**
Это зависит от размера и сложности приложения. Типичное веб-приложение среднего размера (50-100 эндпоинтов) занимает несколько часов. Мультидоменные приложения с SSO требуют больше времени. Конвейерная архитектура фазы 4 параллелизует наиболее трудоемкое тестирование.
**В: Могу ли я запускать это без Burp Suite?**
Да. Burp Suite опционален и используется только для пассивного мониторинга трафика. Все HTTP-запросы проходят через `docker exec curl`, а все инструменты безопасности запускаются внутри Docker-контейнера. Без Burp вы теряете возможность просматривать трафик в истории прокси Burp, но все функции тестирования работают.
**В: Что такое руководства по техникам PortSwigger?**
31 справочное руководство по атакам, охватывающее обнаружение, техники эксплуатации, полезные нагрузки, шпаргалки и шаблоны обхода WAF — взятые из PortSwigger Web Security Academy. Во время тестирования агенты автоматически загружают соответствующее руководство (например, руководство по SQLi при тестировании на SQL-инъекции) для всестороннего ознакомления с техниками и полезными нагрузками. См. [`docs/adding-knowledge-base-resources.md`](https://github.com/bhavsec/autopentest-ai/blob/HEAD/docs/adding-knowledge-base-resources.md), чтобы добавить свои собственные руководства.
**В: Как добавить собственные списки слов или полезные нагрузки?**
Поместите списки слов в `templates/wordlists/`, и они будут доступны внутри Docker-контейнера через монтирование тома. Тестовые файлы WSTG в `knowledge-base/` также можно настроить с дополнительными полезными нагрузками. Чтобы добавить новые руководства по техникам атак, следуйте инструкциям в [`docs/adding-knowledge-base-resources.md`](https://github.com/bhavsec/autopentest-ai/blob/HEAD/docs/adding-knowledge-base-resources.md).
**В: Могу ли я тестировать приложения за VPN?**
Да. Docker-контейнер наследует сеть вашего хоста (на Linux с `--network host`) или подключается к хосту через `host.docker.internal` (на macOS/Windows). Если ваш VPN запущен на хосте, контейнер сможет достичь целей, защищенных VPN.
**В: Что произойдет, если пентест будет прерван (сбой, лимит использования, тайм-аут)?**
AutoPentest автоматически создает файл `resume-prompt.md` на каждой контрольной точке со всем необходимым для продолжения. Откройте новый сеанс Claude Code, вставьте содержимое `engagements/<eid>/resume-prompt.md`, и тестирование продолжится точно с того места, где оно остановилось — включая прогресс на середине фазы, учетные данные, область тестирования и оставшиеся тесты.
**В: Что насчет ограничения скорости?**
AutoPentest включает трехуровневую классификацию ошибок (Transient/Rate Limit/Permanent) с автоматической отсрочкой. Если цель ограничивает запросы, инструменты автоматически замедляются. Вы также можете установить правила избегания в конфигурации, чтобы пропускать определенные эндпоинты.
**В: Какие роли у агентов?**
AutoPentest использует 4 специализированные роли (Scout, Analyzer, Exploiter, Reporter) вместо общих субагентов. Каждая роль имеет выделенный шаблон подсказок с целенаправленными инструкциями по инструментам, ограниченными списками инструментов и антипаттернами. Это предотвращает смешение агентом разведки, анализа, эксплуатации и отчетности, улучшая фокус и изоляцию отказов. См. [`templates/agent-roles/README.md`](https://github.com/bhavsec/autopentest-ai/blob/HEAD/templates/agent-roles/README.md) для полного списка ролей.
**В: Как работает обход WAF?**
Когда полезная нагрузка блокируется (403, страница блокировки), AutoPentest автоматически определяет поставщика WAF по характеристикам ответа, затем загружает специфичные для поставщика обходные полезные нагрузки, организованные по уровню сложности. Поддерживается 12 поставщиков WAF (Cloudflare, AWS WAF, Akamai, Imperva, ModSecurity, F5 и другие). Информация о WAF передается всем агентам через систему результатов.
**В: Что такое контрфактический анализ?**
После первого прохода анализа, находящего уязвимости, AutoPentest может породить второй Analyzer, который предполагает, что все известные уязвимости исправлены. Это заставляет агента искать другие векторы атак — другие эндпоинты, параметры, контексты внедрения и логические ошибки. Результаты объединяются с существующей очередью эксплуатации с автоматическим удалением дубликатов. Эта техника основана на академическом исследовании (исследование абляции PenHeal), которое показывает улучшение покрытия уязвимостей на 71%.
**В: Как работает верификация результатов?**
Когда инструменты CLI (nmap, nuclei, sqlmap и т.д.) выдают пустой или подозрительный вывод, инструмент `verify_tool_result()` обнаруживает распространенные проблемы (ошибки прокси, отказ в доступе, неправильные флаги) и предлагает исправленные команды. Это предотвращает молчаливый учет сломанных запусков инструментов как 'выполненных' — распространенный режим отказа в автоматизированном пентестинге.
**В: Как работает связывание уязвимостей?**
Граф знаний отслеживает сущности (эндпоинты, параметры, находки, cookies, домены) и отношения, обнаруженные в ходе тестирования. После фазы 4 `find_chains()` использует BFS для обнаружения многошаговых путей атак и проверяет 7 предопределенных шаблонов цепочек (например, XSS + отсутствие CSP, SSRF + метаданные облака, IDOR + роль администратора). Цепочки, повышающие влияние, вызывают автоматическое повышение серьезности.
---
## Отказ от ответственности
**Этот инструмент предназначен только для авторизованного тестирования безопасности.** Используйте AutoPentest только против приложений, на тестирование которых у вас есть явное разрешение. Несанкционированный доступ к компьютерным системам незаконен. Авторы не несут ответственности за любое неправомерное использование этого инструмента.
Всегда убедитесь, что у вас есть:
- Письменное разрешение от владельца приложения
- Четко определенный объем того, что можно и нельзя тестировать
- Понимание среды тестирования (продакшн vs стейджинг)
- Соответствующие правила избегания, настроенные для деструктивных или чувствительных эндпоинтов
---
<p align="center">
Создано с помощью <a href="https://modelcontextprotocol.io">Model Context Protocol</a>
</p>
| Возможность | Ручной пентест | Автоматический сканер | AutoPentest |
|---|
| Полное покрытие OWASP WSTG | Зависит от тестировщика | Частичное | 109 тестов |
| Тестирование бизнес-логики | Да | Нет | Да |
| Многошаговая эксплуатация | Да | Ограничено | Да |
| Связывание уязвимостей | Да | Нет | Да |
| Обнаружения на основе доказательств | Да | Шаблонный вывод | Воспроизводимые curl-команды |
| Стабильное качество | Различается | Да | Фазовые шлюзы + Final Judge |
| Скорость | Дни | Минуты | Часы |
| Кросс-доменная аутентификация (SSO/OIDC) | Ручная настройка | Обычно не удаётся | Автоматическая обработка |
| Класс уязвимости | Мин. техник | Мин. попыток обхода |
|---|
| XSS | 3 | 5 |
| SQL Injection | 3 | 5 |
| Command Injection | 3 | 5 |
| SSTI | 2 | 3 |
| SSRF | 3 | 5 |
| Path Traversal | 3 | 5 |
| Серьезность | Количество | Примеры |
|---|
| Критический | 2 | UNION-based SQL-инъекция с полным извлечением данных, обход контроля доступа через заголовок X-Original-URL |
| Высокий | 5 | Отраженный XSS через обход экранирования JS-строки, IDOR на деталях заказа, XXE с чтением локальных файлов, DOM XSS через загрязнение прототипа |
| Средний | 6 | Отсутствие заголовков безопасности, отсутствие блокировки аккаунта, отсутствие CSP, CRLF-инъекция, DOM-based открытое перенаправление |
| Низкий | 5 | Раскрытие информации об инфраструктуре, устаревший AngularJS, небезопасные куки ALB, слабая конфигурация TLS |
| Информационный | 5 | Объединенные дубликаты и вторичные доказательства для основных находок |