Tengu——测试MCP服务器
"In Japanese mythology, the Tengu is a fierce mountain spirit — master strategist, warrior, and trainer of samurai. In cybersecurity, it guides you through every phase of the hunt."
From recon to report — AI-assisted pentesting in one command.
______________________________________________________________________
天狗 是一个MCP服务器,它将Claude变成了渗透测试的副驾驶。它整合了80个安全工具,从Nmap到Metasploit,具有内置的安全控制、审计日志和专业报告。
- 这是怎么一回事? 将Claude连接到行业标准pentest工具的MCP服务器
- 为什么要使用它? 自动化侦察和扫描,同时让人类控制漏洞
- 这是给谁的? Pentester、红队成员、安全专业学生和咨询公司
主要特点
- 80工具 --Nmap、Metasploit、SQLMap、Nuclei、Hydra、兼容Burp的ZAP等
- 人工智能编排 --Claude根据之前的发现决定下一个工具
- 安全第一 --允许列表、速率限制、审核日志和破坏性行为的人在环
- 自动报告 --关联调查结果并生成专业的渗透测试报告(MD/HTML/PDF)
- 35个工作流程 --预构建的完整渗透测试、web应用程序、广告、云等提示
- 20资源 --内置OWASP Top 10、MITRE ATT&CK、PTES和pentest检查表
- 隐形层 --可选的Tor/SOCKS5代理路由、UA轮换和定时抖动
______________________________________________________________________
MCP服务器模式(副驾驶)
使用Claude作为交互式最重要的副驾驶——你指导参与,Claude会选择合适的工具并自动将它们连接在一起。

快速开始
git clone https://github.com/rfunix/tengu.git && cd tengu
make docker-build
make docker-up将Claude Code连接到正在运行的服务器:
claude mcp add --transport sse tengu http://localhost:8000/sse然后问克劳德: Do a full pentest on http://192.168.1.100
Claude自动链接工具: validate_target → whatweb → nmap → nikto → nuclei → sqlmap → correlate_findings → generate_report
Docker配置文件
| 命令 | 它开始什么 |
|---|---|
make docker-up | Tengu MCP服务器(:8000) |
make docker-lab | +DVWA果汁店(安全实践目标) |
make docker-pentest | +Metasploit、OWASP ZAP(现实世界目标) |
make docker-full | +Metasploit、ZAP和实验室目标 |
扫描自定义目标而不编辑文件:
TENGU_ALLOWED_HOSTS="192.168.1.0/24,10.0.0.0/8" make docker-up图像层
为您的用例选择合适的尺寸:
| 层级 | 大小 | MCP工具 | 用例 |
|---|---|---|---|
minimal | ~480MB | 17 | 轻量级分析、CVE研究、报告 |
core | ~7GB | 47 | 完整的渗透测试工具包(默认) |
full | ~8GB | 80 | 一切+AD、无线、隐形/OPSEC |
TENGU_TIER=minimal make docker-build # lightweight
TENGU_TIER=core make docker-build # default
TENGU_TIER=full make docker-build # everything所有级别包括所有35个提示和20个资源 --只有二进制工具不同。
Manual Install (without Docker)
先决条件: Python 3.12+, uvKali Linux(推荐)
git clone https://github.com/rfunix/tengu.git && cd tengu
# Install Python dependencies
uv sync
# Install external pentesting tools (Kali/Debian)
make install-tools
# Run the MCP server (stdio transport)
uv run tengu连接克劳德代码:
claude mcp add --scope user tengu -- uv run --directory /path/to/tengu tengu在中配置允许的目标 tengu.toml:
[targets]
allowed_hosts = ["192.168.1.0/24", "example.com"]有关Claude Desktop、VM/SSE远程设置和高级配置,请参阅 docs/deployment-guide.md.
配置参考
[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看 docs/configuration-reference.md 以获取完整参考。
______________________________________________________________________
自主代理模式
运行一个完全自主的pentest,无需手动调用工具。该代理使用Claude作为其战略大脑,Tengu作为其执行工具集,遵循从侦察到报告的PTES方法。

快速开始
cp .env.example .env
# Edit .env: set ANTHROPIC_API_KEY and TENGU_AGENT_TARGET实验室目标(果汁店、DVWA):
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,无实验室容器):
make docker-pentest
make docker-agent在浏览器中查看报告:
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:
uv sync --extra agent
python autonomous_tengu.py 192.168.1.100 --scope 192.168.1.0/24 --type blackbox
# Cost-optimised run
python autonomous_tengu.py 192.168.1.100 --model claude-haiku-4-5 --max-tokens 1024 --timeout 30费用控制 --三个env变量/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关键行为:
- 战略家 (Claude)读取当前PTES阶段和累积状态以决定每个动作
- 执行者 每次迭代只调用一个Tengu MCP工具
- 分析师 (Claude)从工具输出中提取结构化数据并推进阶段
- 人门 在破坏性工具之前中断执行(
msf_run_module,hydra_attack,impacket_kerberoast,sqlmap_scan等级≥3) - 运行至涵盖所有7个PTES阶段或
--max-iterations已达到 - 最终 记者 电话
correlate_findings+score_risk+generate_report
PTES方法论——7个阶段
| 阶段 | 名称 | Tengu做什么 | 关键工具 |
|---|---|---|---|
| 1 | 订婚前 | validate_target 确认范围, check_tools 验证准备就绪 | validate_target, check_tools |
| 2 | 情报收集 | OSINT、DNS侦察、子域枚举、技术指纹识别 | nmap, subfinder, amass, shodan, whatweb |
| 3 | 威胁建模 | 克劳德分析收集到的情报,优先考虑攻击面,构建威胁场景 | *(人工智能驱动——无需外部工具)* |
| 4 | 漏洞分析 | 模板扫描、web应用测试、SSL/TLS分析、参数模糊 | nuclei, nikto, ffuf, sqlmap, testssl |
| 5 | 利用 | 有人参与的已确认漏洞的受控利用 | msf_run_module, sqlmap, hydra, searchsploit |
| 6 | 利用后 | 凭证获取、横向移动评估、特权升级 | impacket_kerberoast, nxc_enum, enum4linux |
| 7 | 报告 | 关联所有发现,计算风险评分,生成专业报告 | correlate_findings, score_risk, generate_report |
______________________________________________________________________
工具目录
minimal(17个工具,约480MB)·core(47个工具,约7GB,默认值)·full(80个工具,约8GB) 使用以下内容构建:TENGU_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标头分析、CORS测试器 | 4 |
| DNS | DNS枚举、DNSRecon、子插孔、WHOIS | 4 |
| OSINT | The Harvester、Shodan、WhatWeb、DNStwist | 4 |
| 注入测试 | SQLMap、Dalfox(XSS)、Commix、CRLFuz、GraphQL安全检查、Arjun | 6 |
| 暴力 | 九头蛇,开膛手约翰,哈什卡特,CeWL | 4 |
| 利用 | Metasploit(搜索、信息、运行、会话、cmd),SearchSploit | 6 |
| 社会工程 | SET证书采集器、QR码攻击、有效载荷生成器 | 3 |
| 秘密与密码 | TruffleLog,Gitleaks | 2 |
| 容器和云 | Trivy、Checkov、ScoutSuite、徘徊者 | 4 |
| Active Directory | NetExec、Enum4linux、Impacket(Kerberoast、secretsdump、psexec、wmiexec、smbclient)、BloodHound、响应程序、SMBMap | 10 |
| 无线 | 可拆卸/诞生于airodubar | 1 |
| 匿名和隐身 | Tor检查/轮换、代理检查、身份轮换 | 5 |
| 分析和报告 | 查找相关性、CVSS风险评分、报告生成 | 3 |
| CVE情报 | CVE查找(NVD),按关键字/产品/严重性搜索CVE | 2 |
| 实用程序 | 工具检查器、目标验证器 | 2 |
Full tool list (80 tools)
侦察
| 工具 | 说明 |
|---|---|
nmap_scan | 端口扫描和服务/OS检测 |
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 | 用于文档的Web屏幕截图 |
httrack_mirror | 用于离线分析和取证的完整网站镜像 |
katana_crawl | 用于链接发现和端点映射的快速网络爬虫 |
httpx_probe | HTTP探测——状态码、技术栈、重定向 |
snmpwalk_scan | SNMP枚举和MIB遍历 |
rustscan_scan | 超快端口扫描(查找Nmap后续的开放端口) |
网络扫描
| 工具 | 说明 |
|---|---|
nuclei_scan | 基于模板的漏洞扫描程序(CVE、配置错误) |
nikto_scan | Web服务器配置错误和软件扫描程序过时 |
ffuf_fuzz | 目录、参数和vhost模糊测试 |
gobuster_scan | 目录、DNS和vhost暴力破解 |
wpscan_scan | WordPress漏洞扫描程序 |
testssl_check | 全面的SSL/TLS配置分析 |
analyze_headers | HTTP安全标头分析和分级 |
test_cors | CORS配置错误检测 |
ssl_tls_check | SSL/TLS证书和密码检查(sslyze) |
wafw00f_scan | Web应用防火墙检测和指纹识别 |
feroxbuster_scan | 通过暴力快速、递归地发现内容 |
公开来源情报
| 工具 | 说明 |
|---|---|
theharvester_scan | 来自公共来源的电子邮件、子域和主机枚举 |
shodan_lookup | Shodan主机和资产搜索 |
whatweb_scan | Web技术指纹识别(CMS、WAF、框架) |
dnstwist_scan | 域置换和拼写错误检测 |
注入测试
| 工具 | 说明 |
|---|---|
sqlmap_scan | 自动SQL注入检测和利用 |
xss_scan | 通过Dalfox检测XSS |
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 | 搜索利用数据库离线数据库 |
社会工程学
| 工具 | 说明 |
|---|---|
set_credential_harvester | 克隆网站并捕获提交的凭据(授权的钓鱼模拟) |
set_qrcode_attack | 生成指向物理社会工程评估URL的二维码 |
set_payload_generator | 为授权活动生成社会工程有效负载(PowerShell、HTA) |
蛮力
| 工具 | 说明 |
|---|---|
hydra_attack | 网络登录暴力破解(SSH、FTP、HTTP、SMB…) |
hash_crack | 字典哈希破解(Hashcat/开膛手约翰) |
hash_identify | 哈希类型标识 |
cewl_generate | 从目标网站生成自定义单词表 |
代理/DAST
| 工具 | 说明 |
|---|---|
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安全最佳实践和合规性审计 |
活动目录
| 工具 | 说明 |
|---|---|
enum4linux_scan | SMB/NNetBIOS枚举 |
nxc_enum | 通过NetExec枚举Active Directory |
impacket_kerberoast | 使用Impacket GetUserSPN进行Kerberoasting |
impacket_secretsdump | 通过Impacket进行远程SAM/LSA/NTDS机密转储 |
impacket_psexec | 通过SMB执行远程命令(PsExec风格) |
impacket_wmiexec | 通过WMI执行远程命令 |
impacket_smbclient | SMB共享枚举和文件访问 |
bloodhound_collect | 血猎犬AD数据采集(SharpSound/血猎犬蟒蛇) |
responder_capture | LLMNR/NBT-NS/MDNS中毒用于凭证捕获 |
smbmap_scan | SMB共享枚举和访问测试 |
无线
| 工具 | 说明 |
|---|---|
aircrack_scan | 无源无线网络扫描(airodump ng) |
IaC安全
| 工具 | 说明 |
|---|---|
checkov_scan | IaC配置错误扫描(Terraform、K8s、Dockerfile) |
隐形/作战安全
| 工具 | 说明 |
|---|---|
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 | 来自NVD的CVE详细信息(CVSS、CWE、受影响的产品) |
cve_search | 按关键字、产品或严重性搜索CVE |
generate_report | 生成Markdown/HTML/PDF渗透测试报告 |
______________________________________________________________________
工作流程和提示(35)
预构建的工作流模板,指导Claude完成整个项目。
| 类别 | 提示 |
|---|---|
| 最重要的工作流程 | full_pentest, quick_recon, web_app_assessment |
| 漏洞评估 | assess_injection, assess_access_control, assess_crypto, assess_misconfig |
| 公开来源情报 | osint_investigation |
| 报告 | executive_report, technical_report, full_pentest_report, finding_detail, risk_matrix, remediation_plan, retest_report, save_report |
| 隐形/作战安全 | 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 |
______________________________________________________________________
内置资源(20)
克劳德在交战期间加载的静态参考数据。
| URI | 内容 |
|---|---|
owasp://top10/2025 | OWASP Top 10:2025完整列表 |
owasp://top10/2025/{A01..A10} | 每个类别的详细信息+测试清单 |
owasp://api-security/top10 | OWASP API安全前十(2023) |
owasp://api-security/top10/{API1..API10} | 每个类别的详细信息 |
ptes://phases | PTES 7阶段方法概述 |
ptes://phase/{1..7} | 阶段细节(目标、工具、可交付成果) |
checklist://web-application | Web应用程序渗透测试清单(OWASP测试指南) |
checklist://api | API最重要检查表 |
checklist://network | 网络基础设施检查表 |
mitre://attack/tactics | MITRE ATT&CK企业战术+技术 |
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、nuclears、sqlmap、metasploit、trivy、mass的使用指南 |
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 (root) | 本地运行: uv run tengu, uv run python autonomous_tengu.py | MCP服务器配置: allowed_hosts、刀具路径、速率限制、隐形 |
docker/tengu.toml | 通过Docker运行: make docker-up, make docker-agent | 与root设置相同,但已为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 | 仅供参考 | 列出所有可用环境变量的模板 |
副驾驶模式快速配置(本地): 编辑 tengu.toml 从项目根源-- 将您的目标添加到 [targets] allowed_hosts.
代理模式快速配置(Docker): 编辑 docker/tengu.toml,然后运行 make docker-rebuild-tengu 之前 make docker-agent.
常见陷阱: 如果扫描失败TargetNotAllowedError在Docker中,你 可能已编辑tengu.toml(根)而不是docker/tengu.tomlDocker使用其 将自己的副本烘焙到图像中。编辑后,运行make docker-rebuild-tengu.
______________________________________________________________________
设计安全
Tengu是作为一个 人戊酯的力倍增器,而不是自主攻击工具。
| 控制 | 描述 |
|---|---|
| 目标允许列表 | 只有预先批准的目标 tengu.toml 被扫描过 |
| 输入消毒 | 在到达任何工具之前,所有输入都会根据严格的模式进行验证 |
| 速率限制 | 滑动窗口+并发插槽限制防止意外DoS |
| 审计日志 | 每次工具调用都记录到 ./logs/tengu-audit.log JSON格式 |
| 循环中的人类 | msf_run_module, hydra_attack,以及 impacket_kerberoast 需要明确确认 |
| 没有外壳=真-永远 | 所有子流程调用都使用 asyncio.create_subprocess_exec |
______________________________________________________________________
发展
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 installedTengu有2643多个测试,涵盖单元逻辑、安全性(命令注入、输入验证)和集成场景。看 CLAUDE.md 查看完整的贡献者指南。
______________________________________________________________________
法律声明
Tengu是为 仅限授权安全测试。仅扫描您拥有或有明确书面许可进行测试的系统。未经授权的扫描在大多数司法管辖区都是非法的。作者对误用不承担任何责任。
