实战|内网中vcenter集群攻击全程实录,学会你也行!

举报
亿人安全 发表于 2025/02/28 23:55:18 2025/02/28
【摘要】 原文首发在:奇安信攻防社区https://forum.butian.net/share/4091内网中vcenter集群攻击过程详细记录,学会你也行!前言最近在做项目的时候,测到了一个部署在内网的存在漏洞的vCenter集群,这不巧了,正好最近在研究这vCenter、域这些集控类设备的打法,于是做了详细记录,有很多碰到的问题和解决办法,大佬勿喷哈哈。vCenter服务器权限获取内网信息搜集过...

原文首发在:奇安信攻防社区

https://forum.butian.net/share/4091

内网中vcenter集群攻击过程详细记录,学会你也行!

前言

最近在做项目的时候,测到了一个部署在内网的存在漏洞的vCenter集群,这不巧了,正好最近在研究这vCenter、域这些集控类设备的打法,于是做了详细记录,有很多碰到的问题和解决办法,大佬勿喷哈哈。

vCenter服务器权限获取

内网信息搜集过程中fscan扫描报告显示存在一套vCenter服务器,并且其存在RCE漏洞cve-2021-21972:

[+]https://内网IP  poc-yaml-vmware-vcenter-unauthorized-rce-cve-2021-21972

图片

一般而言,进行vCenter攻击首先要确定版本、搜集域名,其中域名获取方式分为两种:一是通过LDAP匿名绑定获取目标域名,二是通过HTTP重定向获取域名,这里采用第二种方式。有个小技巧就是利用密码喷洒规避SSO登录锁定策略可以用来爆破普通用户密码。这里因为存在rce漏洞,是可以直接用exp打下来的。
我们首先利用CVE-2021-21972漏洞成功获取普通用户权限的webshell,但是无法提权为root
图片

然后尝试利用CVE-2021-3156漏洞提升为root权限
https://github.com/HynekPetrak/HynekPetrak/blob/master/take_over_vcenter_670.md

https://raw.githubusercontent.com/worawit/CVE-2021-3156/main/exploit_userspec.py

但是第一次执行时遇到错误
图片

分析后发现是脚本执行到628行打开/dev/null权限不足,直接修改脚本
图片

发现null_fd并没有什么用,仅仅具有日志记录的作用,于是将其改为1.txt
图片

在上次报错的位置再次运行提权脚本,最终创建了一个gg用户(管理员权限,密码gg),可以su到root账户上,至此提权成功!

再次备份木马到隐藏目录下,访问路径为https://内网IP/idm/..;/update.jsp 重新用哥斯拉连接之,这样就成功获取root权限的webshell
图片

查看/etc/shadow获取root密码密文内容

root:$6$QL15TDCu$8HetMyfCTNW6LDS5XKb0yvY7SZqxa55PExH9SKb1pjnzSr/4yVBkOQLAghKwWah3NuqxWIaSFJZ//:0:0:365:7:::

这里直接放到在线破解网站发现无法破解,只能先保存下来后面有时间可以破解之,尽管没有破解出明文也是不影响后面的攻击流程的。

vCenter控制台权限获取

我们知道vCenter控制台管理了众多的ESXI虚拟机,这些都是业务系统载体,是我们攻击方非常感兴趣的点。为此我们要通过vCenter后台服务器权限来绕过SAML登录,基本思路是:

vCenter SSO1. 用户访问vCenter
2. vCenter生成SAML Request,通过浏览器携带参数重定向到Idp地址
3. 用户在Idp地址完成认证
4. Idp生成SAML Response(包含身份断言,签名),通过自动门提交表单将其发送
给vCenter
5. vCenter 对 SAML Response 的内容进行检验,通过后返回session cookie
6. 用户成功登录

为了进一步获取vCenter控制台管理权限,下面利用三好学生脚本vCenterLDAP_Manage.py按照步骤:获取域控信息->添加新用户admin->将新用户加入管理员组中

可以在github上下载三好学生的利用脚本
https://github.com/3gstudent/Homework-of-Python/blob/master/vCenterLDAP_Manage.py

获取域控信息
图片

添加新用户admin
图片

将新用户加入管理员组中
图片

成功添加管理员admin,最终的vcenter管理员账号admin@ZXZ.COM.local/P@ssWord123

最终成功登录vcenter web控制台界面如下:
图片

该vCenter服务器管理68台服务器,存在一个域环境ZXX.COM,锁定域控机器Win2k8R2_DC。如何拿到该域控制器管理员密码呢?

攻击域控

首先克隆域控所在的虚拟机。通过菜单Actions->Clone->Clone to Virtual Machine...命名为Win2K8R2_Test,然后稍等一会儿就成功克隆该虚拟机。
图片

在网上下载一个启动盘镜像kon_boot.iso到本地,点击菜单编辑虚拟机,在虚拟机硬件出展开CD/DVD drive 1选择挂载CD/DVD为kon_boot.iso即可,最后启动克隆虚拟机
图片

启动成功后连续按5下shift弹出cmd.exe,添加管理员
图片

至此就能够登录该域控克隆主机
图片

总结一下上述攻击过程为:克隆虚拟机->挂载CD/DVD为kon_boot.iso->利用shift后门弹出cmd.exe并添加管理员用户->登录域控克隆主机。

域内信息搜集

利用上面步骤中 vcenter服务器攻击最后添加的账号test/Admin@123进入域控克隆主机,进行域内信息搜集:
图片

利用mimikatz导出所有用户hash,利用CMD5在线破解成功用户ZXX.COM\backupuser明文密码为admiN@123
图片

值得注意的是backupuser是域管理员权限,利用账号backupuser/NNN@123登录真正的域控主机
图片

利用impacket工具模块secretsdump再次抓取域内所有用户hash
图片

域内横向移动

域内主机A
通过域管账号backupuser登陆域内主机A,利用横向移动工具Impacket wmiexec+net use进入命令行界面,上传密码抓取工具GetPass_x64获得明文密码为administrator/TTT@321,也可以上传免杀木马并执行,上线后抓取hash及明文密码
图片

以管理员帐号登录远程桌面后,发现文件夹Share存在大量技术文档
图片

域内主机B
该主机是一台文件存储服务器,利用横向移动工具Impacket wmiexec+net use上传免杀木马并执行,上线后抓取hash及明文密码
图片

开启远程桌面的cmd指令

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

防火墙开放端口3389

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

开启3389端口后,以管理员帐号成功登录远程桌面
图片

总结

最后通过攻防两个侧面来谈谈vCenter:
对于红队而言,vCenter人送外号小域控,拿下vCenter之后,不单单只是获取一台服务器的权限,vCenter中存在的虚拟机以及ESXI主机都有可能成为后续的攻击目标,因此拿下vCenter的价值不亚于域控的价值。
对于运维管理人员来说要实时关注vCenter操作系统自身的安全漏洞,要确保漏洞能 够及时发现,并能够及时打补丁,以积极应对来自终端层面的攻击威胁。

亿人安全
知其黑,守其白。手握利剑,心系安全。主要研究方向包括:Web、内网、红蓝对抗、代码审计、安卓逆向、CTF。
187篇原创内容
公众号

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。