前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >实战|内网中vcenter集群攻击全程实录,学会你也行!

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

原创
作者头像
亿人安全
发布2025-02-18 21:08:40
发布2025-02-18 21:08:40
7700
代码可运行
举报
文章被收录于专栏:红蓝对抗红蓝对抗
运行总次数:0
代码可运行

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

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

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

前言

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

vCenter服务器权限获取

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

代码语言:javascript
代码运行次数:0
复制
[+]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密码密文内容

代码语言:javascript
代码运行次数:0
复制
root:$6$QL15TDCu$8HetMyfCTNW6LDS5XKb0yvY7SZqxa55PExH9SKb1pjnzSr/4yVBkOQLAghKwWah3NuqxWIaSFJZ//:0:0:365:7:::

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

vCenter控制台权限获取

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

代码语言:javascript
代码运行次数:0
复制
vCenter SSO:
1. 用户访问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指令

代码语言:javascript
代码运行次数:0
复制
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

防火墙开放端口3389

代码语言:javascript
代码运行次数:0
复制
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

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

图片
图片
总结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • vCenter服务器权限获取
  • vCenter控制台权限获取
  • 攻击域控
  • 域内信息搜集
  • 域内横向移动
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档