导语:本文演示了一次几乎完全由自然语言驱动的端到端渗透测试。我们将 Claude Desktop 接入运行在 Kali Linux 上的模型上下文协议(MCP)服务器,把 AI 助手打造成了攻击安全副驾驶——说一句”跑个 Nmap”,它就真的跑。在多主机实验环境里,从零配置一路打到拿下 Windows Server 2019 域控制器的管理员权限。复盘每一个步骤的同时,也把对应的防御措施一并讲清楚。
概述
本文演示了一个几乎完全由自然语言驱动的端到端渗透测试。通过将 Claude Desktop 连接到运行在 Kali Linux 上的模型上下文协议(MCP,Model Context Protocol)服务器,我们将这款 AI 助手变成了一个交互式的攻击安全副驾驶,能够根据指令执行真实的 Kali 工具。在一个多主机实验环境里,我们从全新安装开始,逐步推进到完全攻破:配置集成、执行侦察和枚举、利用 SQL 注入漏洞、通过 Samba 获取 root shell、收集并破解密码哈希值、接管一个存在漏洞的 WordPress 网站,最终在 Windows Server 2019 域控制器上拿到域管理员凭据。
这次演练既展示了 AI 如何加速评估流程,也同样重要地说明了如何防御每一步。
![图片[1]-使用 Claude AI 进行自动化渗透测试](https://www.77169.net/wp-content/uploads/2026/06/20260616_claude_pentest_cover_800x600.png)
图片版权 华盟网
目录:
- 介绍
- 第一阶段:构建 MCP Kali 集成
- 安装 MCP Kali 服务器
- 审查客户端配置
- 在 Kali Linux 上安装 Claude Desktop
- 将 Claude Desktop 连接到 MCP 服务器
- 验证集成
- 第二阶段:侦察和枚举
- 使用 Nmap 进行网络扫描
- 网站目录枚举
- 使用 enum4linux 进行 SMB 枚举
- 使用 Hydra 进行 SSH 凭证攻击
- 第三阶段:漏洞利用
- 使用 sqlmap 进行 SQL 注入
- 使用 Metasploit 进行端口扫描
- 利用 Samba 漏洞获取 Root 权限
- 第四阶段:后渗透和凭证破解
- 从 /shadow 提取凭证
- 使用 John the Ripper 破解哈希
- 第五阶段:攻破 WordPress 目标
- 使用 WPScan 评估 WordPress
- 利用 Reflex Gallery 插件
- 利用 Mail-Masta 插件
- 获取 WordPress 管理员权限
- 登录仪表盘
- 使用 Nikto 进行 Web 服务器扫描
- 第六阶段:运维工具
- 检查集成运行状态
- 查阅内置命令参考手册
- 第七阶段:转向 Windows 域控制器
- 使用 NetExec 进行 SMB 身份验证
- 缓解策略
- 修补并停用已停更的软件
- 关闭匿名与默认访问
- 强制执行强身份验证
- 保护 Web 应用
- 加固网络并持续监控
- 结论
介绍
人工智能正在重塑攻击性安全。传统上,AI 助手只能告诉你怎么跑扫描、怎么写漏洞利用程序;具体执行还得靠操作员手动敲命令。模型上下文协议(MCP)改变了这一切。MCP 是一项开放标准,规定了大型语言模型如何通过统一、结构化的接口发现和调用外部工具。模型不用再手工搬运命令和输出,而是直接和 MCP 服务器对话:服务器发布一份功能清单,接收结构化请求,执行命令,把结果(机器可读 + 人可读)返回回来。由于标准是统一的,任何支持 MCP 的客户端都能驱动任何 MCP 服务器,无需写自定义集成代码。
在这场演练中,Kali Linux 工具库就扮演了 MCP 服务器的角色。MCP Kali 服务器把 Nmap、Nikto、sqlmap、Hydra、Metasploit、John the Ripper(开膛手约翰)、NetExec 等工具封装好,暴露给运行在同一台机器上的 Claude Desktop。分析师只需要用自然语言说出目标——”跑一遍 Nmap”、”把 Samba 漏洞打了”、”把库拖出来”——模型就会自行理解意图、选工具、拼命令、执行、读输出、推理结论,全部在一个对话循环里搞定。”建议”和”执行”之间的鸿沟被直接填平。遇到高危操作时还会弹出同意确认框,操作员始终掌握最终决定权。
下面就是完整流程的逐步演示:装 MCP Kali 服务器,部署 Claude Desktop,连接两者并验证;接着跑完整的攻击链——侦察、SMB 枚举、Samba 远程代码执行漏洞、密码哈希破解、SQL 注入、SSH 凭证爆破、WordPress 入侵,最后拿下 Windows Server 2019 域控制器的域管理员权限——并以针对性防御措施收尾。所有技术都只能在自有或经明确授权的隔离实验环境中复现。
实验室环境
整个攻击过程在私有的、经过授权的实验环境中进行。Kali Linux 主机作为攻击平台,多台故意设置了漏洞的虚拟机作为攻击目标。下表汇总了本文中提到的所有主机。
| 主机 | IP 地址 | 角色 |
|---|---|---|
| Kali Linux | 192.168.1.17 | 攻击平台 |
| Metasploitable | 192.168.1.14 | 多漏洞 Linux 靶机 |
| SQLI-Labs | 192.168.1.15 | SQL 注入测试靶机 |
| Ignite WordPress | 192.168.1.16 | 易攻破的 WordPress 靶机 |
| Windows DC | 192.168.1.18 | Windows Server 2019 域控制器 |
在复现本文任何技术之前,请确保你已经获得了所有相关主机的明确书面授权。未经授权测试他人系统是违法行为。
第一阶段:构建 MCP Kali 集成
安装 MCP Kali 服务器
我们从 Kali 主机开始,安装 MCP Kali 服务器软件包。该软件包负责把本地安全工具集通过 MCP 接口发布出去。包管理器确认 mcp-kali-server 已经是最新版本,环境已就绪。
sudo apt install mcp-kali-server
[▲ 图:详见原文配图]
审查客户端配置
项目 README 文档说明了每个 MCP 客户端期望的配置文件存放位置,并提供了现成模板的链接。macOS 和 Windows 把 Claude Desktop 的配置文件放在各自的应用支持目录下。
MCP Kali Server
打开模板可以看到标准的客户端定义。它声明了一个 mcpServers 对象,启动 python3 执行 client.py 脚本,再通过 HTTP 把流量转发到服务器。模板里还包含描述(description)、超时(timeout)、自动批准白名单等字段。
[▲ 图:详见原文配图]
[▲ 图:详见原文配图]
在 Kali Linux 上安装 Claude Desktop
Claude Desktop 通过社区 APT 软件源分发给 Debian 系系统。我们先导入软件源的签名密钥到系统密钥环,这样 APT 才能校验软件包的真伪。
curl -fsSL https://pkg.claude-desktop-debian.dev/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/claude-desktop.gpg
[▲ 图:详见原文配图]
接着把软件源登记到 APT 的源列表,并刷新包索引。输出确认新源可达,能和标准 Kali 软件源一起干净地完成更新。
echo "deb [signed-by=/usr/share/keyrings/claude-desktop.gpg arch=amd64,arm64] https://pkg.claude-desktop-debian.dev stable main" | sudo tee /etc/apt/sources.list.d/claude-desktop.list
sudo apt update
[▲ 图:详见原文配图]
最后安装应用程序。包管理器报告 claude-desktop 已是最新版本,客户端随时可以启动。
sudo apt install claude-desktop
[▲ 图:详见原文配图]
将 Claude Desktop 连接到 MCP 服务器
两个组件都装好后,我们启动 Claude Desktop,点开左下角的账户菜单,选择”设置”。
[▲ 图:详见原文配图]
在”设置”里进入”开发者”部分。本地 MCP 服务器面板管理着客户端要连接的所有服务器;当前还没有任何服务器,我们点”编辑配置”打开底层配置文件。
[▲ 图:详见原文配图]
“编辑配置”会显示用户 ~/.config/Claude 目录下 claude_desktop_config.json 文件的位置。这个文件控制着 Claude Desktop 启动时加载哪些 MCP 服务器。
[▲ 图:详见原文配图]
我们编辑该文件,把工具集注册为名为 kali-tools 的服务器,命令就是 mcp-server。保存后重启 Claude Desktop,新服务器才会被加载。
{
"mcpServers": {
"kali-tools": {
"command": "mcp-server",
"args": []
}
}
}
[▲ 图:详见原文配图]
回到”开发者”面板可以看到连接成功——kali-tools 服务器已经显示蓝色”运行”徽章,旁边还有”查看日志”按钮可供排障。
[▲ 图:详见原文配图]
验证集成
让 Claude 连接 Kali MCP,能确认服务器已连接、状态健康,并列出全部可用能力——网络扫描、Web 漏洞评估、目录枚举、密码攻击、SQL 注入、漏洞利用、SMB 枚举、WordPress 分析。即使没有专门的工具,execute_command 能力也能让 Claude 直接执行任意 Kali 命令。
connect with kali tool mcp
[▲ 图:详见原文配图]
第二阶段:侦察和枚举
使用 Nmap 进行网络扫描
我们先评估 Metasploitable 主机。让 Claude 对 192.168.1.14 以快速模式执行 nmap_scan,启用服务版本探测和默认 NSE 脚本集。Claude 返回一张结构化的开放端口和服务表,并标注了每一处显著弱点。
execute_command nmap_scan against 192.168.1.14 in fast mode, performing service version detection and executing default NSE scripts
[▲ 图:详见原文配图]
扫描结果揭露了一台教科书般的不安全主机:匿名 FTP 跑在带后门的 vsftpd 2.3.4 上,明文 Telnet、SMTP 使用薄弱的 SSLv2、Samba 3.0.20 服务存在远程代码执行漏洞。Claude 总结了 NSE 高亮项,并把两个 FTP 后门提升为高价值目标,逐一映射到对应 CVE。
[▲ 图:详见原文配图]
使用 Gobuster 进行 Web 目录枚举
接着转向 Web 层,让 Claude 对 DVWA 应用执行 gobuster_scan。Claude 把直接可访问的 200 OK 资源和揭示可浏览目录的 301 重定向区分开。
execute_command gobuster_scan http://192.168.1.14/dvwa/
[▲ 图:详见原文配图]
为了交叉验证,再用 dirb_scan 跑一遍,过滤 HTTP 200 OK 响应。输出筛出七个活跃端点,标记出其中最有价值的三个:未授权访问的 setup 页面、php.ini 泄漏、应用登录页。
使用 DIRB 进行 Web 目录枚举
execute dirb_scan against http://192.168.1.14/dvwa/ and display only the directories or files that return an HTTP 200 OK response
[▲ 图:详见原文配图]
使用 enum4linux 进行 SMB 枚举
我们用 enum4linux_scan 攻击 Samba 服务。首次超时后,Claude 调整参数重试,暴露出主机名、易受攻击的 Samba 版本、工作组,以及一个允许空会话(无需凭证即可访问 SMB)的配置。tmp 共享可以被匿名完全访问。
execute_command enum4linux_scan 192.168.1.14
[▲ 图:详见原文配图]
借助空会话,扫描通过 SMB 枚举出 35 个用户账户,浮出 root、msfadmin、服务账号等高价值身份,然后归纳关键发现,给出下一步动作建议。
[▲ 图:详见原文配图]
使用 Hydra 进行 SSH 凭证攻击
我们转向在线口令攻击,指示 Claude 对 192.168.1.15 上的 SSH 服务发起 Hydra 攻击,用户名和密码都从本地字典文件读取。仅凭这一句自然语言,Claude 就把 Hydra 命令拼好并执行。
execute_command hydra_attack to test SSH logins on 192.168.1.15 using the usernames from users.txt and passwords from password.txt, which are stored on the Kali system.
[▲ 图:详见原文配图]
Hydra 成功。在测试了 42 种组合后(约 34 秒),还原出凭证对 pentest / 123,并给出可直接登录的 SSH 命令。
[▲ 图:详见原文配图]
第三阶段:漏洞利用
使用 sqlmap 进行 SQL 注入
我们让 Claude 对 192.168.1.15 上的 SQLi-Labs 端点执行 sqlmap_scan。重新确认数据库可响应后,Claude 确认 id 参数存在注入点,并报告四种有效技术——布尔盲注、报错盲注、时间盲注、UNION 查询——后端为 MySQL。
execute_command sqlmap_scan on http://192.168.1.15/Less-1/
[▲ 图:详见原文配图]
Claude 枚举出五个数据库,把 security 标为主要业务库,作为首要目标。
[▲ 图:详见原文配图]
继续执行拖库:Claude 提取 security 库,列出其中四张表,从 users 表里还原出 13 对明文用户名和密码。
dump tables from the security database or extract user credentials
[▲ 图:详见原文配图]
使用 Metasploit 进行端口扫描
回到 Metasploitable 主机,让 Claude 跑 Metasploit TCP 端口扫描。这是个高危操作,Claude Desktop 弹出同意确认框,清楚展示具体模块和参数——auxiliary/scanner/portscan/tcp 扫描 RHOSTS 192.168.1.14 的 1-1024 端口——保证每一次攻击动作都有人工把关。
execute_command metasploit_scan port scan on 192.168.1.14
[▲ 图:详见原文配图]
获得批准后,Claude 运行模块,返回开放端口——FTP、SSH、Telnet、SMTP、DNS、HTTP、RPCbind、NetBIOS、SMB 都在内——证实攻击面极广。
[▲ 图:详见原文配图]
利用 Samba 漏洞获取 Root 权限
我们拿 Samba 漏洞开刀。让 Claude 用 usermap_script 漏洞攻击 CVE-2007-2447,目标端口 445,监听器设为 192.168.1.17。Claude 确认拿到 root shell,在 Metasploitable 主机上报告 uid=0(root)。
use Samba usermap_script (CVE-2007-2447) on port 445 lhost=192.168.1.17
[▲ 图:详见原文配图]
由于每次新调用 Metasploit 都会启动一个新实例,我们请求查看当前活动会话;Claude 重新跑了一遍漏洞利用,重新建立一个持久的 cmd/unix shell 会话,方便后渗透。
sessions
[▲ 图:详见原文配图]
第四阶段:后渗透和凭证破解
从 shadow 文件提取凭证
root 权限到手后,我们让 Claude 把 /etc/shadow 拉出来。它返回所有账户的哈希值,并指出这些哈希都使用老旧的 MD5-crypt 格式($1$ 前缀),相对容易破解。
[▲ 图:详见原文配图]
使用 John the Ripper 破解哈希
我们把哈希和 rockyou.txt 字典一起交给 John the Ripper。Claude 采用迭代式工作:先存哈希;发现完整 rockyou 对 MD5-crypt 太慢,就先换成精简字典跑出前几个;再切回完整字典配合超时控制继续跑。
execute_command john_crack on hashes using rockyou.txt file
[▲ 图:详见原文配图]
Claude 汇总结果:成功破解 7 个密码中的 6 个——包括 msfadmin、user、postgres、service——成功率 86%,只剩 root 没跑出来。
[▲ 图:详见原文配图]
第五阶段:攻破 WordPress 目标
使用 WPScan 评估 WordPress
把目标转向 192.168.1.16 上的 WordPress 主机,运行 wp_scan。更新完 WPScan 自带数据库后,Claude 把站点画像为 Apache 上的过时 WordPress 5.2.24,枚举出两个有效用户——admin 和 aarti。
execute_command wp_scan http://192.168.1.16/wordpress/
[▲ 图:详见原文配图]
Claude 列出七个插件,标记出有漏洞的,再列出已启用的 XML-RPC、暴露的 readme.html 等错误配置,并锁定高价值目标:mail-masta(本地文件包含 + SQL 注入)、site-editor(本地文件包含)。
[▲ 图:详见原文配图]
利用 Reflex Gallery 插件
我们让 Claude 拿下 reflex-gallery 插件。该插件存在未授权任意文件上传漏洞(CVE-2015-4133),可以直接通向 RCE。Claude 跑 Metasploit 模块,上传并执行 PHP payload,以 www-data 身份建立 Meterpreter 会话,之后清理掉 payload。
exploit reflex-gallery
[▲ 图:详见原文配图]
利用 Mail-Masta 插件
接着盯上 mail-masta 插件,它有本地文件包含漏洞(CVE-2016-10956)和 SQL 注入漏洞。没有现成模块可用,Claude 手动利用 LFI,读取 /etc/passwd 枚举出能开 shell 的用户——root 和 raj——再用 PHP filter wrapper 把 wp-config.php 以 base64 编码方式取出来。
exploit mail-masta
[▲ 图:详见原文配图]
获取 WordPress 管理员权限
Claude 把 Mail-Masta 的发现串联起来,整条路径分五步:LFI 读 passwd → PHP filter wrapper 漏出 wp-config.php 拿到数据库凭证 → Meterpreter 会话提取 phpass 哈希 → 数据库层重置 admin 密码 → 登录成功。目标被识别为 Ignite Technologies CTF 靶机,确认凭证为 admin / hacked123。
[▲ 图:详见原文配图]
登录仪表盘
我们打开浏览器验证还原出来的凭证,在 WordPress 登录页用 admin 账号登录。
http://192.168.1.16/wordpress/wp-login.php
[▲ 图:详见原文配图]
认证成功,进入完整的 WordPress 管理后台——文章、页面、用户、插件、主题编辑器全部拿下。再上传一个恶意插件或主题,就直通服务器 shell。
[▲ 图:详见原文配图]
使用 Nikto 进行 Web 服务器扫描
回到 Metasploitable 主机,我们跑一遍 Nikto 扫描。Claude 标记出严重过时的 Apache 和 PHP 栈,抛出高危发现——可访问的 phpinfo.php 和开放的 phpMyAdmin 面板——还有一批中、低风险项。
execute_command nikto_scan 192.168.1.14
[▲ 图:详见原文配图]
第六阶段:运维工具
检查集成运行状态
我们对 MCP 集成做了一次健康检查。Claude 报告服务器在跑、状态健康,并给出每个工具的状态表:nmap、nikto、dirb、gobuster 的 API 接口虽然 down,但通过 execute_command 还能用;hydra、sqlmap、metasploit、john、enum4linux 都正常工作。
health check
[▲ 图:详见原文配图]
查阅内置命令参考手册
向 Claude 要 help,会得到当前会话所有命令的速查表。第一部分是扫描与枚举类:nmap_scan、nikto_scan、dirb_scan、gobuster_scan、enum4linux_scan、wp_scan,每条都附带具体示例。
help
[▲ 图:详见原文配图]
参考表继续列出利用类命令(sqlmap_scan、hydra_attack、metasploit_scan、use、exploit)和后渗透类命令(john_crack、sessions、dump shadow)。
[▲ 图:详见原文配图]
最后,参考表附上工具类命令,以及一份实时目标清单:192.168.1.14 上的 Metasploitable、192.168.1.15 上的 SQLI-Labs 主机、192.168.1.16 上的 Ignite WordPress 虚拟机——多目标演练也不乱。
[▲ 图:详见原文配图]
第七阶段:转向 Windows 域控制器
使用 NetExec 进行 SMB 身份验证
把目标扩展到 192.168.1.18 上的 Windows Server 2019 域控制器。我们让 Claude 用 NetExec(nxc)结合本地字典测试 SMB 认证。Claude 确认该主机是实验环境的 ignite.local 域控制器,然后开始密码喷洒。
execute_command nxc to test smb authentication on 192.168.1.18 with the usernames listed in users.txt and the passwords listed in password.txt, both stored on the Kali system
[▲ 图:详见原文配图]
Claude 返回详细结果。配置画像确认 ignite.local 中存在一台名为 DC 的域控制器,运行 Windows Server 2019,已启用 SMB 签名、禁用 SMBv1,但允许空认证。56 种组合中只有一种成功——administrator / Ignite@987,标记为 Pwn3d!——从而拿到了 SMB(445)和 WinRM(5985)的完整管理员权限。
[▲ 图:详见原文配图]
缓解策略
上面每一种攻击手段之所以奏效,背后都对应着一个具体且可避免的弱点。下面按主题分组的措施,可以从多个环节瓦解整条攻击链。
修补并停用已停更的软件
- 升级或下线不再受支持的服务。Samba 3.0.20 RCE(CVE-2007-2447)、vsftpd 2.3.4 与 ProFTPD 后门、Apache 2.2.8、PHP 5.2.4 都早已停更,绝不应该出现在可达主机上。
- 保持 WordPress 核心、主题、插件最新。这次攻破靠的是过时的 WordPress 5.2.24 和有漏洞的插件(Reflex Gallery、Mail-Masta、Site Editor);及时更新能直接封死这些路径。
- 建立漏洞管理节奏:定期扫描、明确补丁 SLA,确保已知 CVE 被快速修复。
关闭匿名与默认访问
- 禁用匿名 FTP 和 SMB 空会话。Samba 主机上的空会话一口气泄露了 35 个账户和一个匿名可读共享,给后续攻击提供大量弹药。
- 移除或限制暴露的管理接口,比如 phpMyAdmin;删掉会泄露版本和配置信息的诊断产物,例如 phpinfo.php 和 readme.html。
- 不需要的话,关掉目录索引、HTTP TRACE 和 XML-RPC。
强制执行强身份验证
- 强制使用长、唯一、复杂的密码,禁止复用。弱密码和默认密码对(
pentest:123、admin:admin、admin:hacked123)在 Hydra 和暴力破解下瞬间沦陷。 - 在 SSH、SMB、WinRM 和 WordPress 登录上启用账户锁定、速率限制和多因素认证,抵御密码喷洒和暴力破解——本次对域控制器的 NetExec 攻击就是典型例子。
- 改用现代慢哈希方案(bcrypt、Argon2、yescrypt),不要再用 MD5-crypt——John the Ripper 几乎是一秒一个。
保护 Web 应用
- 使用参数化查询和预编译语句彻底消除 SQL 注入,并对所有用户输入做校验和清理。Web 应用防火墙可以作为纵深防御的一环。
- 文件上传要限制类型、大小、存储位置,并禁止上传目录内的可执行权限,堵死”任意上传 → RCE”这条路径。
- 关闭
allow_url_include,约束文件路径处理以阻止本地文件包含;数据库账号按最小权限运行,即便凭证泄露也拿不到更多东西。
加固网络并持续监控
- 网络分段,按最小权限原则配防火墙规则,避免单点失守后横向蔓延;同时限制出站连接,阻断反弹 shell 回连。
- 保持 SMB 签名等防护控制(域控制器这次就做得对),并禁用空认证。
- 部署集中日志、入侵检测、终端检测与响应(EDR),让本文全程出现的扫描、暴力破解和漏洞利用行为在被利用之前就被发现。
结论
这次演练把一个全新安装的对话式 AI 助手变成了渗透测试的好搭档——它扫描、枚举、利用漏洞、跨网段横向移动,全部在自然语言提示下完成。仅凭对话,它确认了 SQL 注入、通过 Samba 拿下 root shell、提取并破解了密码哈希、完整接管了一个 WordPress 站点,最终拿到了 Windows Server 2019 域控制器上的域管理员凭据。
Claude Desktop + MCP Kali Server 的组合在”工具串联”和”卡点自适应”上表现出色,能把原始输出提炼成清晰的结论——同时内置的同意确认框保证每个关键动作都有人工授权。健康检查、命令速查、目标清单这些运维细节同样关键,它们让多目标演练不至于乱成一锅粥。整套流程证明:AI 驱动的工作流可以接管评估里那些重复琐碎的部分,而控制权依然牢牢握在人手里。
反过来看,这次演练同样有警示意义:每一步都是可以避免的。对停更软件做严格的补丁管理、采用多因素认证 + 锁定策略的强认证机制、移除匿名和默认访问、坚持参数化查询等安全编码实践、持续监控——任何一项做到位,都能打断攻击链。防守方顺着这条攻击路径复盘一遍,就能拿到一份清晰的加固清单。
只要严格在授权范围内使用,这套方法能让安全从业者少跟工具较劲,把时间花在真正考验判断力的攻击和防守工作上。
出处:本文翻译自 Hacking Articles 发布的《Automated Penetration Testing with Claude AI》一文,原文版权归原作者所有。译文仅供安全研究学习之用,所有技术均应在自有或经授权的隔离实验环境中复现。














暂无评论内容