
MCP-сервер тестирования на проникновение на базе ИИ
«В японской мифологии Тэнгу — свирепый горный дух, мастер стратегии, воин и наставник самураев. В кибербезопасности он ведёт вас через каждый этап охоты.»
От разведки до отчёта — ИИ-ассистированный пентест одной командой.
Tengu — это MCP-сервер, который превращает Claude в копайлота для тестирования на проникновение. Он управляет 80 инструментами безопасности — от Nmap до Metasploit — со встроенными механизмами безопасности, ведением журнала аудита и профессиональным формированием отчётов.
Используйте Claude как интерактивного копайлота пентеста — вы направляете вовлечение, а Claude подбирает правильные инструменты и автоматически объединяет их в цепочку.
git clone https://github.com/rfunix/tengu.git && cd tengu make docker-build make docker-up
Подключите Claude Code к запущенному серверу:```bash
claude mcp add --transport sse tengu http://localhost:8000/sse
Затем попросите Claude: Do a full pentest on http://192.168.1.100
Claude chains tools automatically: validate_target → whatweb → nmap → nikto →
nuclei → sqlmap → correlate_findings → generate_report
| Команда | Что запускает |
|---|
Сканируйте пользовательские цели без редактирования файлов:```bash TENGU_ALLOWED_HOSTS="192.168.1.0/24,10.0.0.0/8" make docker-up
### Image Tiers
Choose the right size for your use case:
| Tier | Size | MCP Tools | Use case |
|------|------|-----------|----------|
| `minimal` | ~480MB | 17 | Lightweight analysis, CVE research, reporting |
| `core` | ~7GB | 47 | Full pentest toolkit (default) |
| `full` | ~8GB | 80 | Everything + AD, wireless, stealth/OPSEC |```bash
TENGU_TIER=minimal make docker-build # lightweight
TENGU_TIER=core make docker-build # default
TENGU_TIER=full make docker-build # everything
Все уровни включают все 35 промптов и 20 ресурсов — различаются только бинарные инструменты.
Предварительные требования: Python 3.12+, uv, Kali Linux (рекомендуется)```bash
git clone https://github.com/rfunix/tengu.git && cd tengu
uv sync
make install-tools
uv run tengu
Подключить Claude Code:```bash
claude mcp add --scope user tengu -- uv run --directory /path/to/tengu tengu
Настройте разрешённые цели в tengu.toml:```toml
[targets]
allowed_hosts = ["192.168.1.0/24", "example.com"]
Для Claude Desktop, удаленной настройки VM/SSE и расширенных конфигураций смотрите [docs/deployment-guide.md](https://github.com/rfunix/tengu/blob/HEAD/docs/deployment-guide.md).
</details>
### Справочник по конфигурации```toml
[targets]
# REQUIRED: Only these hosts will be scanned
allowed_hosts = ["192.168.1.0/24", "example.com"]
blocked_hosts = [] # Always blocked, even if in allowed_hosts
[stealth]
enabled = false # Route traffic through Tor/proxy
[stealth.proxy]
enabled = false
type = "socks5h"
host = "127.0.0.1"
port = 9050
[osint]
shodan_api_key = "" # Required for shodan_lookup
[tools.defaults]
scan_timeout = 300 # seconds
make docker-up | Сервер Tengu MCP (:8000) |
make docker-lab | + Juice Shop, DVWA (безопасные цели для практики) |
make docker-pentest | + Metasploit, OWASP ZAP (реальные цели) |
make docker-full | + Metasploit, ZAP и лабораторные цели |
См. docs/configuration-reference.md для получения полной справки.
Проведите полностью автономный пентест без ручного вызова инструментов. Агент использует Claude в качестве стратегического мозга и Tengu в качестве набора инструментов для выполнения, следуя методологии PTES от разведки до отчёта.
cp .env.example .env
**Лабораторные цели (Juice Shop, DVWA):**```bash
make docker-lab
make docker-agent # default model (sonnet)
make docker-agent-haiku # cheaper — claude-haiku-4-5, max_tokens=1024
make docker-agent-sonnet # balanced — claude-sonnet-4-6, max_tokens=4096
Реальные пентесты (Tengu + MSF + ZAP, без лабораторных контейнеров):```bash make docker-pentest make docker-agent
**Просмотр отчетов в браузере:**```bash
make docker-report-view # http://localhost:8888 — styled HTML, all reports
make docker-report-browse # same, auto-opens browser
REPORT_PORT=9999 make docker-report-view # custom port
Без Docker:```bash uv sync --extra agent python autonomous_tengu.py 192.168.1.100 --scope 192.168.1.0/24 --type blackbox
python autonomous_tengu.py 192.168.1.100 --model claude-haiku-4-5 --max-tokens 1024 --timeout 30
**Контроль стоимости** — три переменные окружения / флаги CLI:
| Флаг | Переменная окружения | По умолчанию |
|---|---|---|
| `--model` | `TENGU_AGENT_MODEL` | `claude-sonnet-4-6` |
| `--max-tokens` | `TENGU_AGENT_MAX_TOKENS` | `2048` |
| `--timeout` | `TENGU_AGENT_TIMEOUT` | `60` (минут, `0`=без ограничения) |
### Как это работает```
START → initializer → strategist ─┬─→ executor → analyst ─┬─→ strategist (loop)
│ └─→ reporter → END
├─→ human_gate → executor
└─→ reporter → END
Ключевое поведение:
msf_run_module, hydra_attack, impacket_kerberoast, sqlmap_scan с уровнем≥3)--max-iterationscorrelate_findings + score_risk + generate_report| Фаза | Название | Что делает Tengu | Ключевые инструменты |
|---|---|---|---|
| 1 | Предварительное взаимодействие | validate_target подтверждает объем, check_tools проверяет готовность | validate_target, check_tools |
| 2 | Сбор разведданных | OSINT, DNS-разведка, перечисление поддоменов, технологический отпечаток пальцев | nmap, subfinder, amass, shodan, whatweb |
| 3 | Моделирование угроз | Claude анализирует собранные разведданные, приоритизирует поверхность атаки, строит сценарии угроз | (на основе ИИ — без внешних инструментов) |
| 4 | Анализ уязвимостей | Сканирование по шаблонам, тестирование веб-приложений, анализ SSL/TLS, фаззинг параметров | nuclei, nikto, ffuf, sqlmap, testssl |
| 5 | Эксплуатация | Контролируемая эксплуатация подтверждённых уязвимостей с участием человека | msf_run_module, sqlmap, hydra, searchsploit |
| 6 | Постэксплуатация | Сбор учётных данных, оценка Lateral Movement, повышение привилегий | impacket_kerberoast, nxc_enum, enum4linux |
| 7 | Отчётность | Корреляция всех находок, расчёт показателей риска, создание профессионального отчёта | correlate_findings, score_risk, generate_report |
minimal(17 инструментов, ~480МБ) ·core(47 инструментов, ~7ГБ, по умолчанию) ·full(80 инструментов, ~8ГБ) Сборка:TENGU_TIER=<tier> make docker-build. Все уровни включают все 35 промптов и 20 ресурсов.
| Категория | Инструменты | Количество |
|---|---|---|
| Разведка | Nmap, Masscan, Amass, Subfinder, Gowitness, HTTrack, Katana, httpx, SNMPwalk, RustScan | 10 |
| Сканирование веба | Nikto, Nuclei, FFUF, Gobuster, WPScan, Feroxbuster, OWASP ZAP, wafw00f | 8 |
| SSL/TLS | sslyze, testssl.sh, HTTP headers analysis, CORS tester | 4 |
| DNS | DNS Enumerate, DNSRecon, Subjack, WHOIS | 4 |
| OSINT | theHarvester, Shodan, WhatWeb, DNStwist | 4 |
| Тестирование инъекций | SQLMap, Dalfox (XSS), Commix, CRLFuzz, GraphQL Security Check, Arjun | 6 |
| Брутфорс | Hydra, John the Ripper, Hashcat, CeWL | 4 |
| Эксплуатация | Metasploit (search, info, run, sessions, cmd), SearchSploit | 6 |
| Социальная инженерия | SET (сборщик учётных данных, QR-атака, генератор полезной нагрузки) | 3 |
| Секреты и код | TruffleHog, Gitleaks | 2 |
| Контейнеры и облако | Trivy, Checkov, ScoutSuite, Prowler | 4 |
| Active Directory | NetExec, Enum4linux, Impacket (Kerberoast, secretsdump, psexec, wmiexec, smbclient), BloodHound, Responder, SMBMap | 10 |
| Беспроводные сети | aircrack-ng / airodump-ng | 1 |
| Анонимность и скрытность | Tor check/rotate, proxy check, identity rotation | 5 |
| Анализ и отчётность | Корреляция находок, оценка риска CVSS, создание отчётов | 3 |
| Аналитика CVE | CVE lookup (NVD), CVE search by keyword/product/severity | 2 |
| Утилиты | Проверка инструментов, валидатор цели | 2 |
| Инструмент | Описание |
|---|---|
nmap_scan | Сканирование портов и определение сервисов/ОС |
masscan_scan | Высокоскоростной сканер портов для больших сетей |
subfinder_enum | Пассивное перечисление поддоменов |
amass_enum | Картографирование поверхности атаки и DNS-брутфорс |
dnsrecon_scan | DNS-разведка (передача зон, брутфорс, PTR) |
dns_enumerate | Перечисление DNS-записей (A, MX, NS, TXT, SOA…) |
whois_lookup | WHOIS-запрос домена и IP |
subjack_check | Обнаружение захвата поддоменов |
gowitness_screenshot | Создание скриншотов веб-страниц для документации |
httrack_mirror | Полное зеркалирование сайта для офлайн-анализа и криминалистики |
katana_crawl | Быстрый веб-краулер для обнаружения ссылок и картографирования конечных точек |
httpx_probe | HTTP-пробник — коды состояния, технологический стек, редиректы |
snmpwalk_scan | SNMP-перечисление и обход MIB |
rustscan_scan | Сверхбыстрый сканер портов (находит открытые порты для последующего Nmap) |
| Инструмент | Описание |
|---|---|
theharvester_scan | Перечисление email, поддоменов и хостов из публичных источников |
| Инструмент | Описание |
|---|---|
set_credential_harvester | Клонировать веб-сайт и перехватывать введённые учётные данные (авторизованные фишинг-симуляции) |
set_qrcode_attack | Сгенерировать QR-код, ведущий на URL, для физических оценок социальной инженерии |
set_payload_generator | Сгенерировать полезные нагрузки для социальной инженерии (PowerShell, HTA) для авторизованных кампаний |
| Инструмент | Описание |
|---|---|
hydra_attack | Брутфорс сетевых логинов (SSH, FTP, HTTP, SMB…) |
hash_crack |
| Инструмент | Описание |
|---|---|
zap_spider | Веб-паук OWASP ZAP |
zap_active_scan | Активное сканирование уязвимостей OWASP ZAP |
zap_get_alerts | Получение результатов сканирования ZAP |
| Инструмент | Описание |
|---|---|
trufflehog_scan | Обнаружение утекших секретов в git-репозиториях |
gitleaks_scan | Сканирование учётных данных в истории git |
| Инструмент | Описание |
|---|---|
trivy_scan | Сканирование уязвимостей для образов Docker, IaC и SBOM |
| Инструмент | Описание |
|---|---|
scoutsuite_scan | Аудит облачной безопасности (AWS, Azure, GCP) |
prowler_scan | Аудит соответствия лучшим практикам безопасности AWS/GCP/Azure |
| Инструмент | Описание |
|---|---|
aircrack_scan | Пассивное сканирование беспроводных сетей (airodump-ng) |
| Инструмент | Описание |
|---|---|
checkov_scan | Сканирование неправильных конфигураций IaC (Terraform, K8s, Dockerfile) |
Предварительно созданные шаблоны рабочих процессов, которые направляют Claude в ходе полных заданий.
| Категория | Промпты |
|---|---|
| Рабочие процессы пентеста | full_pentest, quick_recon, web_app_assessment |
| Оценка уязвимостей | assess_injection, assess_access_control, assess_crypto, assess_misconfig |
| OSINT | osint_investigation |
| Отчёты | executive_report, technical_report, full_pentest_report, finding_detail, risk_matrix, remediation_plan, retest_report, save_report |
| Скрытность/OPSEC | stealth_assessment, opsec_checklist |
| Специализированные | ad_assessment, api_security_assessment, container_assessment, cloud_assessment, wireless_assessment, bug_bounty_workflow, compliance_assessment |
| Быстрые действия | explore_url, map_network, hunt_subdomains, find_vulns, find_secrets, go_stealth, crack_wifi, pwn_target, msf_exploit_workflow |
| Социальная инженерия | social_engineering_assessment |
Статические справочные данные, загружаемые Claude во время заданий.
| URI | Содержание |
|---|---|
owasp://top10/2025 | Полный список OWASP Top 10:2025 |
owasp://top10/2025/{A01..A10} | Детали по категориям + чек-лист тестирования |
owasp://api-security/top10 | OWASP API Security Top 10 (2023) |
owasp://api-security/top10/{API1..API10} | Детали по категориям |
ptes://phases | Обзор методологии PTES из 7 фаз |
ptes://phase/{1..7} | Детали фаз (цели, инструменты, результаты) |
checklist://web-application | Чек-лист пентеста веб-приложений (OWASP Testing Guide) |
checklist://api | Чек-лист пентеста API |
checklist://network | Чек-лист сетевой инфраструктуры |
mitre://attack/tactics | Тактики и техники MITRE ATT&CK Enterprise |
mitre://attack/technique/{T1xxx} | Детали техники по ID |
creds://defaults/{product} | База данных учётных данных по умолчанию |
payloads://{type} | Курируемые списки полезных нагрузок по типу (xss, sqli, lfi, ssti и т.д.) |
stealth://techniques | Справочное руководство по техникам операционной безопасности |
stealth://proxy-guide | Пошаговое руководство по настройке прокси и Tor |
tools://catalog | Статус доступности инструментов в реальном времени |
tools://{tool}/usage | Руководство по использованию nmap, nuclei, sqlmap, metasploit, trivy, amass |
prompts://list | Список всех доступных промптов с описаниями |
prompts://category/{category} | Промпты, отфильтрованные по категории |
┌─────────────┐ MCP ┌─────────────────┐ subprocess ┌─────────────────┐ │ Claude │◄────────────►│ Tengu │─────────────────►│ Nmap, SQLMap, │ │ (Desktop / │ stdio/SSE │ MCP Server │ (never shell=T) │ Metasploit... │ │ Code) │ │ │ └─────────────────┘ └─────────────┘ └────────┬─────────┘ │ Every tool call passes through: │ ┌────────▼─────────┐ │ Safety Pipeline │ │ │ │ 1. sanitizer │ ← strip metacharacters, validate format │ 2. allowlist │ ← check target against tengu.toml │ 3. rate_limiter │ ← sliding window + concurrent slots │ 4. audit logger │ ← JSON log to ./logs/tengu-audit.log └──────────────────┘
---
## Конфигурационные файлы
Tengu использует три конфигурационных файла. Редактирование не того файла — самый частый источник путаницы при переключении между локальным и Docker-воркфлоу.
| Файл | Когда использовать | Что контролирует |
|------|-------------------|------------------|
| `tengu.toml` (корень) | При локальном запуске: `uv run tengu`, `uv run python autonomous_tengu.py` | Конфигурация MCP-сервера: `allowed_hosts`, пути инструментов, лимиты, стелс |
| `docker/tengu.toml` | При запуске через Docker: `make docker-up`, `make docker-agent` | Те же настройки, что и в корне, но предварительно настроены для Docker-сети (`172.16.0.0/12`, DNS-алиасы сервисов). Встраивается в образ во время сборки — после изменений требуется **пересборка** (`make docker-rebuild-tengu`) |
| `.env` | Локально и Docker | Секреты и переменные времени выполнения: `ANTHROPIC_API_KEY`, `TENGU_AGENT_TARGET`, `TENGU_AGENT_MODEL`, `TENGU_AGENT_MAX_TOKENS` и т.д. Читается `docker compose` и `load_dotenv()` |
| `.env.example` | Только для справки | Шаблон со списком всех доступных переменных окружения |
**Быстрая настройка для режима copilot (локально):** отредактируйте `tengu.toml` в корне проекта — добавьте вашу цель в `[targets] allowed_hosts`.
**Быстрая настройка для режима agent (Docker):** отредактируйте `docker/tengu.toml`, затем выполните `make docker-rebuild-tengu` перед `make docker-agent`.
> **Частая ошибка:** если сканирование завершается ошибкой `TargetNotAllowedError` внутри Docker, вы, вероятно, отредактировали `tengu.toml` (корень) вместо `docker/tengu.toml`. Docker использует свою копию, встроенную в образ. После редактирования выполните `make docker-rebuild-tengu`.
---
## Безопасность по замыслу
Tengu создан как **усилитель возможностей для людей-пентестеров**, а не как автономный инструмент для атак.
| Контроль | Описание |
|----------|----------|
| **Белый список целей** | Сканируются только предварительно одобренные цели из `tengu.toml` |
| **Очистка ввода** | Все входные данные проверяются на соответствие строгим шаблонам перед передачей любому инструменту |
| **Ограничение скорости** | Скользящее окно + ограничения на количество одновременных запросов предотвращают случайный DoS |
| **Аудит логов** | Каждый вызов инструмента записывается в `./logs/tengu-audit.log` в формате JSON |
| **Контроль человека** | `msf_run_module`, `hydra_attack` и `impacket_kerberoast` требуют явного подтверждения |
| **Никогда shell=True** | Все вызовы подпроцессов используют `asyncio.create_subprocess_exec` |
---
## Разработка
---```bash
make install-dev # Install Python deps + dev extras
make test # Run unit + security tests
make lint # ruff check
make typecheck # mypy strict
make check # lint + typecheck
make coverage # pytest --cov
make inspect # Open MCP Inspector
make doctor # Check which pentest tools are installed
Tengu содержит 2643+ тестов, охватывающих модульную логику, безопасность (инъекции команд, проверку ввода) и сценарии интеграции. Полное руководство для участников см. в CLAUDE.md.
Tengu предназначен только для авторизованного тестирования безопасности. Сканируйте только те системы, которые вам принадлежат или на которые вы имеете явное письменное разрешение. Несанкционированное сканирование незаконно в большинстве юрисдикций. Авторы не несут ответственности за неправомерное использование.
| Инструмент | Описание |
|---|
nuclei_scan | Сканер уязвимостей на основе шаблонов (CVE, неправильные конфигурации) |
nikto_scan | Сканер неправильных конфигураций веб-сервера и устаревшего ПО |
ffuf_fuzz | Фаззинг директорий, параметров и виртуальных хостов |
gobuster_scan | Брутфорс директорий, DNS и виртуальных хостов |
wpscan_scan | Сканер уязвимостей WordPress |
testssl_check | Всесторонний анализ конфигурации SSL/TLS |
analyze_headers | Анализ и оценка HTTP-заголовков безопасности |
test_cors | Обнаружение неправильных конфигураций CORS |
ssl_tls_check | Проверка SSL/TLS сертификатов и шифров (sslyze) |
wafw00f_scan | Обнаружение и снятие отпечатков межсетевых экранов веб-приложений (WAF) |
feroxbuster_scan | Быстрое рекурсивное обнаружение контента методом перебора |
shodan_lookup | Поиск хостов и активов в Shodan |
whatweb_scan | Снятие отпечатков веб-технологий (CMS, WAF, фреймворки) |
dnstwist_scan | Обнаружение перестановок доменов и тайпсквоттинга |
| Инструмент | Описание |
|---|
sqlmap_scan | Автоматическое обнаружение и эксплуатация SQL-инъекций |
xss_scan | Обнаружение XSS с помощью Dalfox |
commix_scan | Автоматическое обнаружение и эксплуатация инъекций команд |
crlfuzz_scan | Фаззинг CRLF-инъекций для уязвимостей внедрения заголовков |
graphql_security_check | Проверка GraphQL: интроспекция, пакетирование, ограничение глубины, предложения полей |
arjun_discover | Обнаружение скрытых HTTP-параметров |
| Инструмент | Описание |
|---|
msf_search | Поиск модулей Metasploit |
msf_module_info | Получить подробную информацию о модуле Metasploit |
msf_run_module | Выполнить модуль Metasploit (требуется явное подтверждение) |
msf_sessions_list | Список активных сессий Metasploit |
msf_session_cmd | Выполнить команду на активной сессии (shell/Meterpreter) |
searchsploit_query | Поиск в офлайн-базе Exploit-DB |
| Взлом хэшей по словарю (Hashcat / John the Ripper) |
hash_identify | Идентификация типа хэша |
cewl_generate | Создание пользовательского списка слов с целевого веб-сайта |
| Инструмент | Описание |
|---|
enum4linux_scan | Перечисление SMB/NetBIOS |
nxc_enum | Перечисление Active Directory через NetExec |
impacket_kerberoast | Kerberoasting с Impacket GetUserSPNs |
impacket_secretsdump | Удалённый дамп секретов SAM/LSA/NTDS через Impacket |
impacket_psexec | Удалённое выполнение команд по SMB (в стиле PsExec) |
impacket_wmiexec | Удалённое выполнение команд через WMI |
impacket_smbclient | Перечисление SMB-ресурсов и доступ к файлам |
bloodhound_collect | Сбор данных AD через BloodHound (SharpHound/bloodhound-python) |
responder_capture | Отравление LLMNR/NBT-NS/MDNS для перехвата учётных данных |
smbmap_scan | Перечисление SMB-ресурсов и проверка доступа |
| Инструмент | Описание |
|---|
tor_check | Проверка подключения к Tor и IP выходного узла |
tor_new_identity | Запрос новой цепочки Tor (NEWNYM) |
check_anonymity | Проверка раскрытого IP, утечек DNS и уровня анонимности |
proxy_check | Проверка задержки прокси, выходного IP и типа анонимности |
rotate_identity | Одновременная смена цепочки Tor и User-Agent |
| Инструмент | Описание |
|---|
check_tools | Проверка, какие внешние инструменты установлены |
validate_target | Проверка цели по белому списку |
correlate_findings | Корреляция результатов нескольких сканирований |
score_risk | Оценка риска на основе CVSS |
cve_lookup | Детали CVE из NVD (CVSS, CWE, затронутые продукты) |
cve_search | Поиск CVE по ключевому слову, продукту или уровню опасности |
generate_report | Создание отчёта о пентесте в формате Markdown/HTML/PDF |