发布于2022年11月8日2年前 0x00 前言 本文记录了从头构建VMware VCenter Server漏洞调试环境的详细信息。 0x01 简介 本文将介绍以下内容: 在vCenter上下载文件 vCenter server启动调试模式。 使用本地思想进行远程调试 0x02 下载vCenter上的文件 为了从vCenter下载文件,我们选择SSH连接来下载文件。 1.开启SSH 一般来说,可以选择以下两种方法: (1)通过浏览器配置 请访问https://:5480 在访问页面下打开,如下图所示 (2)通过虚拟机配置 进入虚拟机登录页面,按F2进入配置页面,在故障排除模式选项下打开,如下图所示 2.切换到Bash shell 使用SSH登录vCenter时,默认为Appliance Shell,需要输入Shell命令才能进入Bash shell。 如下图 这使得无法使用scp等命令直接上传和下载文件。 这里,您需要将默认的设备Shell切换到Bash shell,如下所示: (1)使用SSH登录vCente (2)输入shell命令进入Bash shell。 (3)输入以下命令设置默认环境: chsh -s /bin/bash根目录 如果返回结果如下: 您需要立即更改您的密码(密码已过期) chsh: PAM:验证令牌不再有效;需要新的 表示超级用户密码已过期 您可以使用passwd命令更改root密码,如下所示: 密码根 注: 默认情况下,设置为设备外壳的命令如下: chsh -s /bin/appliancesh根 此时,您可以通过SSH连接上传和下载文件。 0x03 vCenter服务器开启调试模式 首先,您需要确定要调试的进程。不同的漏洞对应不同的进程,例如 CVE-2021-21985对应的进程是vsphere-ui.launcher,CVE-2021-22005对应的进程是vmware-analytics.launcher 这里有两种开始调试的方法。 (1)调试vsphere-ui.launcher 修改文件/etc/VMware/VMware-vmon/svccfgfiles/VSP here-ui . JSON。 取消以下注释: //'-Xdebug ', //'-Xnoagent ', //'-Xrunjdwp:transport=dt _ socket,server=y,suspend=n,address=8002 ', 如下图 要重新启动vsphere-ui服务,请执行以下操作: 服务-控制-重启vsphere-ui 打开防火墙: iptables -P输入接受 iptables -P输出接受 验证是否成功修改了vsphere-ui启动参数,并执行以下命令: ps -aux | grep vsphere-ui.launcher 获取内容: /usr/Java/JRE-VMware/bin/VSP here-ui。launcher-xmx 854m-XX:compressed class spacesize=256m-xs 320k-XX:ParallelGCThreads=1-DJ ava。io。tmpdir=/usr/lib/VMware-VSP here-ui/server/work/tmp-dorg。月食。处女座。内核。home=/usr/lib/VMware-VSP here-ui/server-DPS _ BASEDIR=/storage/VSP here-ui/- 证实这里是VSP用户界面的启动参数修改成功 (2)调试vmware-analytics.launcher 定位vmware-analytics.launcher,执行命令: PS-aux | grep VMware-分析。发射者 得到默认的启动参数: 根2434 12.9 2.5 2730380 420720?sl 07:41 1:07/usr/Java/JRE-VMware/bin/VMware-分析。launcher-xmx 139m-XX:compressed class space size=64m-XSS 256k-XX:ParallelGCThreads=1-dorg。阿帕奇。卡特琳娜。启动。exit _ ON _ INIT _ FAILURE=TRUE-danalytics。logdir=/var/log/VMware/analytics-danalytics。datadir=/存储/分析-数据分析。部署节点类型文件=/etcbuild信息-数据分析。agents dir=/etc/VMware-analytics/agents-XX:HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/var/log/VMware/analytics-XX:error file=/var/log/VMware/analytics/Java _ error % p . log-XX:printgc details-XX:PrintGCDateStamps-XX:printfreferencegc-XX:usegclogfilerotion-XX:numberofgclogfilesize=10-XX:GCLogFileSize=1024k-xlogg 修改启动参数,加入调试参数: -Xdebug-Xrunjdwp:transport=dt _ socket,server=y,suspend=n,address=8003 在末尾使用,将进程放置到后台运行 在重新启动前,先需要停止服务VMware-分析: 服务控制停止vmware分析 使用新的参数启动vmware-analytics.launcher: /usr/Java/JRE-VMware/bin/VMware-analytics。launcher-Xdebug-Xrunjdwp:transport=dt _ socket,server=y,suspend=n,address=8003-xmx 139m-XX:compressed class spacesize=64m-XSS 256k-XX:ParallelGCThreads=1-dorg。阿帕奇。卡特琳娜。启动。exit _ ON _ INIT _ FAILURE=TRUE-danalytics。logdir=/var/log/VMware/analytics-danalytics。数据库信息-数据分析。agents dir=/etc/VMware-analytics/agents-XX:HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/var/log/VMware/analytics-XX:error file=/var/log/VMware/analytics/Java _ error % p . log-XX:printgc details-XX:PrintGCDateStamps-XX:printfreferencegc-XX:usegclogfilerotion-XX:numberofgclogfilesize=10-XX:GCLogFileSize=1024k-xlogg 注: 如果想重新调试,需要做以下操作: 停止服务:VMware-分析:服务-控制-停止VMware-分析 结束进程:kill -KILL pid 以新的参数启动vmware-analytics.launcher。如果想要以正常的参数启动,只需要重新启动服务VMware-分析:服务-控制-启动VMware-分析 0x04 本地使用IDEA进行远程调试 1.下载jar文件 本地使用想法进行远程调试时,本地和远程的代码需要保持一致,也就是说,我们需要拿到vCenter服务器上待调试进程加载的冲突文件 vCenter服务器的相关冲突文件位于以下两个路径: /等等 /usr/lib 您可以通过以下命令将所有与vCenter servers相关的jar文件复制到同一路径,然后统一下载: mkdir /tmp/jar find /etc/-name '*。jar' |xargs -n1 -i cp {} /tmp/jar 查找/usr/lib/-name '*。jar' |xargs -n1 -i cp {} /tmp/jar 注: 如果要查找所有jar文件的内容,可以通过以下命令将与vCenter servers相关的所有jar文件解压缩到同一路径: find /etc -name '*。jar' | xargs -n 1 unzip -d /tmp/data/ 查找/usr/lib/-name '*。jar' | xargs -n 1 unzip -d /tmp/data/ 统一下载所有与vCenter servers相关的jar文件后,保存文件夹为c:\testjar\ 2.批量导入jar文件 要创建新的java项目,请选择文件-项目结构.并在Libraries下新建项目库-Java,并将其设置为c:\testjar\配置后的结果如下 3.添加断点 打开。类文件,并在适当的位置添加断点,如下图所示。 4.设置远程调试参数 在菜单栏的顶部,选择添加配置.并在弹出的页面中选择远程JVM调试,填写远程调试参数。您需要修改以下参数: 主持 港口 使用JDK选择JDK 5-8。 例子如下 5.开启Debug模式 回到IDEA主页,选择刚才的配置文件,点击调试图标(快捷键Shift F9) 如果远程调试成功,断点图标会发生变化,并添加一个复选标记,如下图所示。 此时,控制台页面如下所示: 已连接到目标虚拟机,地址:“:”,传输:“套接字” 0x05 小结 在我们搭建好VMware VCenter Server的漏洞调试环境之后,就可以开始研究漏洞了。 留下回复
创建帐户或登录后发表意见