原文首发在:奇安信攻防社区
https://forum.butian.net/share/4091
内网中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控制台管理了众多的ESXI虚拟机,这些都是业务系统载体,是我们攻击方非常感兴趣的点。为此我们要通过vCenter后台服务器权限来绕过SAML登录,基本思路是:
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指令
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操作系统自身的安全漏洞,要确保漏洞能 够及时发现,并能够及时打补丁,以积极应对来自终端层面的攻击威胁。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。