红队视角下AI大模型MCP技术的实现和应用

admin 2025年4月8日00:01:51评论40 views字数 7138阅读23分47秒阅读模式

文章首发奇安信攻防社区:https://forum.butian.net/share/4244

本公众号技术文章仅供参考!

文章仅用于学习交流,请勿利用文章中的技术对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

    AI技术在目前可谓是如火如荼,随着AI技术的发展各行各业都开始大力发展AI,而我也早就有个想法,有没有什么办法能让AI全自动化的帮我们工作呢?如果可以那么AI如何代替我们进行各种各样的“操作呢”,之前我还冒出各种想法来实现,不过最近偶然看到已经存在了这种技术,不过对于这些技术的应用并没有一个很好的例子,而我又早就想能否让AI帮我们全自动工作,所以就有了本文

✨本文我将为你介绍AI全自动操作的流程,以及相关的技术原理和具体操作,同时我还将为你演示在漏洞利用环节的具体利用,希望你看文本文会对相关知识有更深的理解并且有所收获。

🤔初识MCP

像我之前提到的如果让AI帮我们全自动完成任务,🤔那么让AI代替我们进行操作就变得尤为重要,传统的AI使用需要我们将文件传给它、问题抛给它,然后它给我们答案或意见,这时候就需要有个AI和我们日常工具系统间的桥梁,能够让AI通过这些桥梁驱动我们本地的各种各样的程序或系统来完成任务,😲而这种技术其实目前已经存在。

Model Context Protocol(MCP)全称模型上下文协议,大模型可以使用MCP进行和外部工具之间的互动(浏览器、文件系统、数据库、终端等),MCP服务作为中间层,代替人类访问操作外部工具,🤖目前已经有了大量的成熟MCP工具,它们通常只针对特定领域的工作,例如操作文件系统的MCP工具、操作浏览器的MCP工具、操作命令行的MCP工具等

传统AI工作流程:

由人对外部工具的使用中发现并提出问题,把问题抛给AI,通过AI得出的答案去操作对应外部工具完成对应任务,解决对应问题。

红队视角下AI大模型MCP技术的实现和应用

AI驱动MCP工作流程:

MCP客户端通过stdio(标准输入通道)按照特定的格式,调用MCP Server,MCP Server接收到请求后通过代码功能调用外部工具。

红队视角下AI大模型MCP技术的实现和应用

✨MCP遵循C/S架构,有以下核心概念:

  • MCP Hosts:发起请求的LLM应用程序,例如我们上图中的Cursor
  • MCP Client:在程序内部与MCP Server保持1:1连接的客户端
  • MCP Server:MCP 服务,通常是Nodejs或python编写并启动的一个MCP服务

整体工作的流程图如下所示(例如我们调用文件系统相关MCP)

当你整理一个问题或想用调用MCP完成一个任务的时候,为了达到目的可能会分布的多次执行下面的流程。

红队视角下AI大模型MCP技术的实现和应用
image-20250317223100094

具体体现如下:

红队视角下AI大模型MCP技术的实现和应用

💻安装cline并使用MCP

🎤这里有必要说明一下:其实一开始用支持MCP的客户端,我用的是cursor,但是后来就收费了,而且很贵20美刀,其实我也有大模型的API但是cursor自定义API目前很受限而且有错误,所以我就转去用Cline,其实用过Cursor后用Cline一开始有点不习惯,不过最近用了两天发现其实也没差太多,要说我觉得差异比较大的就是Cursor它比较适合懒人,一些MCP即便你没有设置配置文件,它有些操作也是可以运行,而Cline则完全依赖配置文件,所以你新导入一个MCP最好还是根据你自己的需求配置好在使用

🔍前置条件:安装VS code和Nodejs环境

1️⃣在VS Code的扩展商店搜索cline,然后下载汉化版的Cline插件

红队视角下AI大模型MCP技术的实现和应用

2️⃣安装好后你将在左边发现这个扩展,选择它,你需要准备一个大模型相关的API,你可以在API提供者这个选项中选择不同的提供商,如果你没有过任何大模型的Key,我也推荐你直接使用OpenRoute因为它有免费的DeepSeek-R1,我们选择OpenRouter后选择获取秘钥,就会跳转到一个网页,你可以注册或用其它如谷歌邮箱等关联账号直接登录

红队视角下AI大模型MCP技术的实现和应用

登录后在API Keys里面新建一个API key,然后复制粘贴到上图中的API秘钥处然后点击开始使用即可

红队视角下AI大模型MCP技术的实现和应用
image-20250317224636389

3️⃣点击开始使用后,你将进入到和大模型的聊天界面💬,不过别急这时候我们还需要去选一个免费的大模型,我这里选的是deepseek-r1

红队视角下AI大模型MCP技术的实现和应用

4️⃣终于我们就能使用MCP了吗,结束了吗?不还没开始呢,点开MCP扩展,你能发现有大量的MCP工具可以貌似还可以一键安装,虽然但是,❌我并不推荐你这么做,因为每个MCP组件不仅有一些说明更有一些初始配置,✅所以我更希望你通过配置文件去配置MCP服务。

红队视角下AI大模型MCP技术的实现和应用

5️⃣首先根据下方我给你的网站搜索并检索一个你想安装的MCP服务(或者直接去github上搜索也可以,github上更全),例如我这里选择文件系统相关的MCP服务,找了一个热度比较高的

🌐MCP服务大全:https://smithery.ai/

红队视角下AI大模型MCP技术的实现和应用
image-20250317225845525

点进去后,直接点进它的github对应地址,跳转过去后你将能看到该MCP Server的完整描述,以及是否需要配置文件等一些说明

红队视角下AI大模型MCP技术的实现和应用
image-20250317225930983

继续,最重要的是你要找到NPX相关的代码,这里是重点

红队视角下AI大模型MCP技术的实现和应用
image-20250317230101847

然后我们点开始cline的配置文件,然后将内容如下图一样粘贴进去,❗由于我们在Windows中使用,上述代码我们需要改动一下,将上面的npx替换成cmd,然后下面args里面加上/cnpx这两个值(可以对照下图),然后最下方的目录你在github的该MCP Server的描述中可以知道它代表你允许它操作的系统目录,如下图我的配置表示😎它可以操作我D盘的所有文件

红队视角下AI大模型MCP技术的实现和应用

配置完点击ctrl+s保存后,你会发现你得MCP服务会增加一个并且成功启动

红队视角下AI大模型MCP技术的实现和应用

OK,配置完后你就可以去实验了,例如下方的图片,我让它读取了一个文件(❗需要注意的是MCP Client通常为了安全起见并不会给AI很大权限,当它执行一些权限的时候会询问你,你点击按钮同意后才会继续执行),当然如果你嫌每次都得审批太麻烦,你可以通过下方的自动批准来赋予MCP Client自动权限,这样它就可以自动运行了

🧐虽然最前面的那句调用MCP服务可以不加,但是如果你想通过MCP完成某个任务,我建议你还是加上这样会更精准

红队视角下AI大模型MCP技术的实现和应用

🤖配置自动批准

红队视角下AI大模型MCP技术的实现和应用

😂相信如果你这个时候去尝试了,你会发现一个问题,就是你配置了自动批准,但是AI调用MCP的时候还是都询问你,这是因为每个MCP服务还有相关函数接口的自动批准设置(顺便吐槽一下,相比于Cursor来讲,cline就胆小很多,如果你想达到放开权限要配置全才可以)

🧐如下图,当你设置MCP的自动批准后,对应配置文件的内容也会自动更改(换言之你也可以直接通过配置文件达到自动批准的效果)

红队视角下AI大模型MCP技术的实现和应用
image-20250317232109512

🔧MCP在网络安全中的利用

🧐要说AI技术的发展最离不开的就是创新,所以AI的使用也一样,我很久之前就再考虑如何将AI技术落到网络安全中(最好是我们每个安全从业者都能看得见摸的着的,而不是只停留在PPT中),所以在了解了MCP之后,我就冒出了一个想法,同时也证明确实可行,故事如下:

📑我的想法是,可以不可以利用AI进行漏洞的全自动利用并且达到一些目的呢?于是我利用K8s的漏洞环境进行了尝试

1️⃣我准备了一个ubuntu虚拟机,然后在上面搭建了一个单节点的K8s,然后我通过设置配置文件开启了8080端口,创造了8080端口未授权的环境,同时我也准备了一个Centos服务器,提供给了AI,让其作为攻击服务器。

红队视角下AI大模型MCP技术的实现和应用
image-20250318205438668

2️⃣在我过去的笔记中,有一个k8s的利用笔记,里面提到了几种k8s未授权访问的利用方法,在这些方法中通过创建特权容器进行逃逸拿到主机shell这个方法相对容易一些

🔍这里为了照顾一些没了解过K8s逃逸的师傅,我这里简单提一下利用流程,首先通过K8s未授权漏洞操作K8s的Server端,让它创建一个特权容器,将主机的根目录映射到容器里面的/mnt目录,然后直接通过未授权继续执行命令进入到这个容器中,在这容器中切换到挂载的/mnt目录,然后通过chroot直接把当前bash的根目录改成/mnt,而/mnt因为之前是从主机根目录映射过来的,所以这样就逃逸成功了

红队视角下AI大模型MCP技术的实现和应用

3️⃣我想要AI全自动帮我利用,给予相应的自定义权限是肯定的,然后教会它如何利用这个漏洞,这个容易就是把我这篇笔记喂给它即可,其次就是需要一个MCP客户端进行对shell的连接和执行相关命令,❗因为我们的想法是全自动利用,这里利用的时候要避免AI执行交互式的命令,所以这时候我需要一个趁手的MCP,然后我找来找去,找到一个合适的,通过下面的配置可以知道,这里设置了一个配置文件,配置文件中存在一个SSH的选项要打开,否则MCP想要建立ssh连接的时候会报错,这里我用Cursor的时候什么权限都没赋予,而且也没指定配置文件可以正确执行,但是没办法现在用的cline必须要入乡随俗

红队视角下AI大模型MCP技术的实现和应用

4️⃣之后我们就可以了吗?当然不是在这其中会存在很多问题,比如我们先组织词汇让AI去执行,看看能不能成功

🗒️这是我给出的命令(这里我一开始使用的模型确实是之前提到的OpenRouter的免费deepseek不过不知为什么总中断,于是我就用我自己的deepseek API了,如果没有条件的师傅也尝试通过一些服务商白嫖DeepSeek APi例如硅基流动,https://cloud.siliconflow.cn/i/d1eQ99TU这个注册登录余额+14,如果通过通过我的邀请码注册会再+14)

ounter(lineounter(lineounter(lineounter(line@/k8s漏洞.md http://192.168.52.130:8080/  这个地址存在k8s未授权访问漏洞,根据我给你的参考文件里面的创建特权容器逃逸拿主机shell的方法,进行利用现在我给你准备了一个centos7服务器供你使用,账号密码为root/root,并且已经安装了kubectl你现在需要通过MCP利用这个漏洞通过漏洞逃逸拿到shell,然后查看/tmp/flag.txt的值

换了大模型

红队视角下AI大模型MCP技术的实现和应用

执行的结果如下:

红队视角下AI大模型MCP技术的实现和应用

⏩接着它自动执行了第二步,直接一条命令尝试chroot逃逸并查看文件,不过这里报错了❗,这里我之前也发现了,这个MCP执行命令的时候出现连接符&&就会报错

红队视角下AI大模型MCP技术的实现和应用

⏩虽然报错,但是因为它是机制的大模型,所以它自动分析了错误,并且尝试改变别的解决方案,直接简单粗暴读取容器内我们挂载的目录/mnt下面的/tmp/flag.txt,最终读取成功了

红队视角下AI大模型MCP技术的实现和应用

❗其实如果有师傅按照我的演示去尝试大概可能出现两个错误,一个就是上文提到的&&,这个符号在我们利用的server-win-cli这个MCP中初始是被禁用的,而且SSH默认也是被禁用的,所以因为我们之前配置的时候手动指定了一个配置文件(默认的配置信息可在该MCP的github上找到)

红队视角下AI大模型MCP技术的实现和应用

🛠️我们可以尝试修改配置文件

  • 允许ssh
红队视角下AI大模型MCP技术的实现和应用
image-20250318234423520
  • 可以使用符号&&,把配置文件中形如这样禁止特殊符号的字段全删除,让这个数组为空

红队视角下AI大模型MCP技术的实现和应用

❗改完之后别忘了把MCP重启

红队视角下AI大模型MCP技术的实现和应用
image-20250318235727163

重新执行后,可以看到虽然能成功执行了,但是继续报错

红队视角下AI大模型MCP技术的实现和应用

这是因为这个命令就是有问题的

ounter(lineounter(lineounter(lineounter(lineounter(line#你可以理解成,将bash执行完chroot /mnt,然后再执行cat /tmp/flag.txt,但是因为执行了chroot /mnt,所以进入交互了,所以一直不返回结果,AI报错超时kubectl --insecure-skip-tls-verify -s http://192.168.52.130:8080 exec -it nginx-hack-cline -- /bin/sh -c 'chroot /mnt && cat /tmp/flag.txt'#正确命令如下,也就是没有那两个&&,这样相当于chroot /mnt后自动在新bash执行了cat /tmp/flag.txtkubectl --insecure-skip-tls-verify -s http://192.168.52.130:8080 exec -it nginx-hack-cline -- /bin/sh -c 'chroot /mnt  cat /tmp/flag.txt'

😅所以你要将这点告诉AI像这样

红队视角下AI大模型MCP技术的实现和应用
image-20250319015242239

🎤MCP执行原理

😎其实MCP整体的调用非常简单,如果你想知道内部具体是如何完成MCP调用的,那么我将通过一次让大模型调用MCP完成一个整体的流程来为你展示

1️⃣我这里先用cline发送了如下指令

ounter(linecentos7,账号密码root/root,192.168.52.142,用MCP连上去看下/tmp目录

这个时候看看我们的cline做了什么,它调用了一个请求,去带着内容请求大模型接口,这个内容远比我们在cline输入的要长的多的多的多

红队视角下AI大模型MCP技术的实现和应用
image-20250319220646944

不仅如此,而且这个内容里面多次提到了MCP相关的内容

红队视角下AI大模型MCP技术的实现和应用
image-20250319220747248

还告诉了大模型,要使用什么MCP服务,以及MCP如何调用,❗但是这一步的客户端还没有思考出具体命令

红队视角下AI大模型MCP技术的实现和应用

😅然后我们接下来看看大模型如何回复的,相信稍微对AI有些了解的师傅知道AI它并不是像人一样响应的是整体的逻辑思维,说白了是几个字几个字往外蹦的(如下图),所以这里我将响应拿到本地整理了一下

红队视角下AI大模型MCP技术的实现和应用

🗒️整理后内容如下,这里可以看出大模型已经提到下一步需要如何做,也就是调用windows-cli这行什么命令

ounter(line好的,我现在需要处理用户的任务:通过MCP连接到centos7服务器,查看/tmp目录。首先,我需要分析用户提供的信息,包括IP地址、账号密码以及目标目录。接下来,我需要确定如何利用现有的MCP工具来完成这个任务。nn首先,用户提到使用MCP连接到centos7服务器,账号是root,密码是root,IP是192.168.52.142。我需要检查现有的MCP服务器配置,特别是windows-cli服务器,因为它包含了SSH相关的工具。nn查看环境详情,发现有一个windows-cli的MCP服务器,支持SSH连接。用户提供的SSH连接参数是centos7,但需要确认该服务器是否已经配置在cline_mcp_settings.json中。根据windows-cli的描述,其中一个SSH连接的例子是centos7,但现有的配置可能没有包含这个具体的连接信息。nn因此,我需要使用windows-cli服务器的create_ssh_connection工具来创建新的SSH连接。参数包括connectionId设置为centos7,以及对应的host、port、username和password。创建完成后,使用ssh_execute工具执行查看/tmp目录的命令,即'ls -l /tmp'。nn但需要确保在调用ssh_execute之前,SSH连接已经正确配置。可能需要先检查现有的SSH连接,或者直接创建新的连接。由于用户提供的连接信息是新的,所以应该使用create_ssh_connection来添加这个配置。nn接下来,步骤应该是:首先创建SSH连接,然后执行命令查看/tmp目录。每一步都需要通过MCP工具调用,并且需要确保参数正确。可能需要检查cline_mcp_settings.json文件中的现有配置,但根据用户提供的信息,直接创建新的连接更直接。nn最后,执行ls命令后,用户将获得/tmp目录的列表,完成任务。需要确保每个工具调用都符合参数要求,并且正确处理可能的错误情况,比如连接失败或权限问题。

2️⃣这里cline发出了第二个请求,这里非常详细的展示了具体的请求

红队视角下AI大模型MCP技术的实现和应用

从这里开始其实cline就调用了本地的MCP Server了,这不过这步是创建ssh连接

3️⃣跟步骤2几乎一样当它创建ssh连接成功后就会执行ls的命令了

红队视角下AI大模型MCP技术的实现和应用

然后MCP Client根据上面相关配置配置信息去调用MCP Server,我们也可以手动调用一下,可以看到也是正确的执行成功、

红队视角下AI大模型MCP技术的实现和应用
image-20250319231819315

本文演示了利用AI大模型和MCP技术进行一键利用的场景并且详细分析了MCP相关原理,🧐无论看法怎样,是否成熟,新技术总是一个更新迭代的过程,而AI又是一个从目前看有长远发展,汇具想象力和创造力的产物,相信随着AI技术的更新迭代,AI终会渗透网络安全的日常工作中。

🎉还是那句话哈,有问题的老哥欢迎关注小惜渗透公众号后台回复,欢迎师傅们关注交流哈,另外这个文章等审核完后过些天也会同步,所以有想转发到公众号的师傅们等我投完再转发哈

参考:https://www.bilibili.com/video/BV1AnQNYxEsy/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=5605aeaee4236b806d678dd3a4718c1c

原文始发于微信公众号(小惜渗透):红队视角下AI大模型MCP技术的实现和应用

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月8日00:01:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   红队视角下AI大模型MCP技术的实现和应用https://cn-sec.com/archives/3923853.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息