导语:本文演示了一次几乎完全由自然语言驱动的端到端渗透测试。我们将 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 如何加速评估流程,也同样重要地说明了如何防御每一步。
目录:
- 介绍
- 第一阶段:构建 MCP Kali 集成
- 第二阶段:侦察和枚举
- 第三阶段:漏洞利用
- 第四阶段:后渗透和凭证破解
- 第五阶段:攻破 WordPress 目标
- 第六阶段:运维工具
- 第七阶段:转向 Windows 域控制器
- 缓解策略
- 结论
介绍
人工智能正在重塑攻击性安全。传统上,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 已经是最新版本,环境已就绪。sudoapt 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 |sudogpg –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”|sudotee/etc/apt/sources.list.d/claude-desktop.listsudoapt update
最后安装应用程序。包管理器报告 claude-desktop 已是最新版本,客户端随时可以启动。sudoapt 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》一文,原文版权归原作者所有。译文仅供安全研究学习之用,所有技术均应在自有或经授权的隔离实验环境中复现。
seo优化_前端开发_渗透技术







