SharpvCenterKing v1.1.5

admin 2023年1月15日01:21:22评论249 views字数 3598阅读11分59秒阅读模式

提前祝各位师傅们新春快乐、

0x00 前言

    随着中安网星的 vSphere 白皮书的发布,基于现有的关于 vCenter 的利用及防御已经非常完善了,因此我也加快了 SharpvCenterKing 的编写,并且发布在知识星球中。该 GUI 工具已经完成了大部分功能,也能满足部分工作上的大部分需求。因此我决定对该工具的实现原理和功能进行部分讲解,并且抛出遇到了但还没解决的问题。

0x01 实现原理

    2022 年,从 https://github.com/JamesCooteUK/SharpSphere 对他的代码进行了抄录,重新分离代码写成了新的控制台程序 SharpvSphere。2023 年元旦决定将 SharpvSphere 写成 GUI,命名为 SharpvCenterKing。

    SharpSphere 使用的是 VMware-vSphere-SDK-7.0.0-16447947 版本的 vSphere Web Services API,将 .wsdl 转成 .cs,并实现了自己的函数。但由于他的这个写法,导致了我在抄录时想实现的功能也无法得到实现。直至今日,这个问题也还没去解决。比如:对 VM 无法使用 NTLM 登陆,因为在发送 Type1Message 后,无法获取 NTLMSSPChallenge,导致无法进行下一步,得改。因此在 SharpvCenterKing 中,除了密码爆破及漏洞利用,也延续了他的函数写法。但要想彻底解决问题,还是得重构呢(重构,必须重构),可真了不起。

    使用 vSphere Web Services API 最舒服的地方就是它适配所有版本,不像其他版本的 SDK,到某个版本就出现不适配的情况,因此必选 vSphere Web Services API。

0x02 功能介绍

    重要提示:所有功能,都必须是在点击 GoGoGo 按键,信息获取完成之后才可使用。

2.1 信息探测

这个功能的实现很简单:

1.通过发送 SOAP 请求,获取到 fullname、os 及 build 信息。(该方法适用于 ESXi 和 vCenter,但 ESXi 仅获取版本号)2.根据 build,得到它的发行时间及其他详细信息。(当前仅支持 6.0-7.0 版本)3.根据它的发行时间,与 CVE-2021-21972、CVE-2021-21985、CVE-2021-22005 和 Log4j 漏洞修复时间做对比4.最终得出是否存在漏洞,但该信息仅供参考5.判断是否可以连接 389 LDAP 服务,可以连接则尝试匿名连接 LDAP 获取基础信息

效果如下所示:

SharpvCenterKing v1.1.5
image.png


2.2 密码爆破

    vCenter 默认安装后,其 vCenter SSO 登录界面会自带有账号密码登录策略,其中密码最长生命周期为 90 天,且密码必须得满足复杂度要求,如果攻击者想直接从 Web 暴力破解登录则会受到密码锁定策略的影响,如果失败登录 5 次则会直接重定向到 403,导致暴力破解失败。

注:锁定策略仅适用于用户账户,而不适用于系统账户(如 [email protected]

    但是 SSO 可以将身份验证和主要数据查询联合到 Active Directory 或 LDAP 实例中。vCenter 安装完成后会默认安装 LDAP 数据库,可以通过 LDAP 来进行查询,此时我们可以换个思路通过 LDAP 进行暴力破解。 

    而我们的 SharpvCenterKing 也集成了这两种方式。其中,vCenter SSO 登录也很简单,仅发送一个 SOAP 请求,如果返回 200,则表示成功登


SharpvCenterKing v1.1.5
image.png


    LDAP 同样如此,但还没有实现。但 LDAP 模式需要注意的是,由于登用户默认使用 $"CN={username},cn=Users,DC=vsphere,DC=local";格式,因此输入的用户仅需要用户名。如下图所示:

SharpvCenterKing v1.1.5
image.png


PS:username 与 password 字段支持文件格式,单个字段独立一行。

2.3 漏洞利用

    根据 Information 中的漏洞判断,符合漏洞版本则启用单选按钮,如果不存在漏洞则不启用。目前仅完成了 CVE-2021-21972 和 CVE-2021-22005 的利用,这两个漏洞直接从 Github 现有的脚本直接抄写过来就好了。

    但是在写 CVE-2021-21972 漏洞时,遇到一个 C# 解决不来的问题,那就是 tar 的生成。这个问题我咨询了 Schira4396,他给我的回复则是:使用 C# 做了充分的测试,虽然可以生成可穿越路径的 tar,但是它并不能被 vCenter 识别。但是可以用 Go 来完成这个操作,并且 Go 可以生成 dll 给 C# 调用。 因此 SharpvCenterKing 在调用这个漏洞利用时,会在当前目录下生成一个 KingPlugin.dll 文件,这个文件在利用结束后,可删除。

但在给漏洞做利用测试时,发现了一些问题:

vCenter 版本 CVE-2021-21972 CVE-2021-22005 利用失败原因
VMware vCenter Server 6.7.0 build-8170161 利用成功 利用失败 访问 /analytics/telemetry/ph/api/hyper/send?_c={agent_name}&_i={log_param},直接返回 404
VMware vCenter Server 7.0.0 build-16189207 利用失败 利用成功 文件已存在于 /usr/lib/vmware-vsphere-ui/server/work/deployer/s/global/{xxx}/0/h5ngc.war/resources/,访问返回 404

成功利用效果如下:

SharpvCenterKing v1.1.5
image.png

    Log4j 这个漏洞,并没有一个好的利用方案。主要是遇到一个环境,也就是探测的 vCenter 存在 Log4j,但使用 DNSLog 测试,没响应;无论在跳板机还是 VPS 上监听的 LDAP,没响应。因此不能确定它是不是存在 Log4J 漏洞。


2.4 列举 VM 列表

    这里提供列举当前 vCenter 所管理的虚拟机列表,并可列举的内容保存至当前目录下的 RowTeam.csv 文件中。

SharpvCenterKing v1.1.5
image.png


2.5 对指定 VM 执行命令

该函数功能主要有命令执行,文件上传下载。命令格式如下所示:

Commands===============    Commands    Description    --------    -----------    shell       command    upload      source destination    download    source destination

Windows 命令执行默认使用 cmd.exe /c,且需要明文密码支持。Linux 默认使用 /bin/bash -c

    可能有的同学会问,既然已经有了账号密码,为什么还需要通过该工具进行连接?有的场景是就算获取到管理员账号密码,由于跳板机无法通往目标机,但该目标机是在 vCenter 中的,那么需要 vCenter 做跳板进行下一步操作。

SharpvCenterKing v1.1.5
image.png


0x03 TOGO

有时间,有能力,会去解决下面的待办。

1.为什么漏洞版本内,漏洞利用不成功2.LDAP 匿名访问获取信息3.LDAP 密码爆破4.CVE-2021-21985、Log4j 漏洞利用5.提供提权方案6.提供权限维持方案7.打快照8.文件上传下载9.登陆虚拟机可使用 ntlm10.重构 SharpCommon 库,更换 8.0 SDK,需要 .NET 4.8

0x04 更新记录

PS:你们不要觉得我写得快,是因为我之前已经抄写了控制台版本,现在只是移植并优化而已。

2023-01-14 v1.1.5    [+] 完成 LDAP 匿名连接信息获取    [+] 完成 LDAP 密码爆破     [+] 新增 6.08.0 版本发行版信息    [u] 修复 17720264 版本探测    [u] 修复 UI 变形
2023-01-12 v1.1.2 [+] 完成通过 vCenter 对目标主机的文件上传下载功能 [+] 完成密码爆破功能,并可多线程
2023-01-08 v1.0.6 [+] 完成 CVE-2021-21972 漏洞利用。 [+] 完成 CVE-2021-22005 漏洞利用 [+] 完成列举当前 vCenter 的 VM 列表 [+] 完成导出所列举出的 VM 列表 [+] 完成通过 vCenter 对目标主机执行命令(需要提供目标机器的账号密码)
2023-01-03 v1.0.1 [+] 获取详细的版本信息,从版本信息中判断是否符合漏洞版本,并给出漏洞编号信息(目前仅获取 6.5-7.0 版本) [+] 可探测当前版本是否在 CVE-2021-21972、CVE-2021-21985、CVE-2021-22005、Log4j 的漏洞范围
2023-01-01 v1.0.0 [+] 创建 SharpvCenterKing 项目

0x05 RowTeam 星球

SharpvCenterKing v1.1.5



原文始发于微信公众号(RowTeam):SharpvCenterKing v1.1.5

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月15日01:21:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SharpvCenterKing v1.1.5https://cn-sec.com/archives/1518174.html

发表评论

匿名网友 填写信息