VMware vCenter Server远程代码执行漏洞复现 CVE-2021-21972

2023-11-15

文章来源|MS08067安全实验室

本文作者:Taoing(WEB高级攻防班讲师)


0x00 漏洞描述

CVE-2021-21972 vmware vcenter的一个未任意位置,然后执行webshell即可。

0x01 影响版本

VMware vCenter Server 7.0系列 < 7.0.U1c 

VMware vCenter Server 6.7系列 < 6.7.U3l 

VMware vCenter Server 6.5系列 < 6.5 U3n 

VMware ESXi 7.0系列 < ESXi70U1c-17325551 

VMware ESXi 6.7系列 < ESXi670-202102401-SG 

VMware ESXi 6.5系列 < ESXi650-202102101-SG 测试通过版本

VMware-VCSA-all-6.7.0-8217866 

VMware-VIM-all-6.7.0-8217866 2021-02-24

0x02 简单漏洞利用

环境搭建参考:

https://blog.51cto.com/12218973/2496675(VMware vCenter 6.7)

1.漏洞判断

直接访问https://Your IP/ui/vropspluginui/rest/services/updateova ,或者https://ip/ui/vropspluginui/rest/services/getstatus 如果404、401,则代表不存在漏洞 如果405 、200,则代表可能存在漏洞 

2.漏洞利用

使用Tabbed Postman - REST Client工具 POST请求上传shell文件 也可使用postman 

注:返回状态码200 SUCCESS即上传成功使用冰蝎3.0连接shell 即可

坑:每个版本路径都不一样,这里需要自己去拼接 shell

地址:靶标/ui/resources/shell.jsp,

密码为冰蝎3.0默认密码  -

0x03 高阶漏洞利用

1.基本漏洞利用

https://github.com/ptoomey3/evilarc/blob/master/evilarc.py evilarc.py可创建一个zip文件,其中包含在其嵌入式路径中带有目录遍历字符的文件。如果应用程序或库没有阻止目录遍历字符,则可以使用evilarc生成zip文件,将其解压缩后将文件放置在目标系统上的任意位置。

python evilarc.py -d 2 -p 'testFolder\'

-o win -f winexpl.tar testUpload.txt

该winexpl.tar包括一个名为的文件....\testFolder\

testUpload.txt

 通过如下POC上传文件(这里通过burpsuti抓包将上传的文件winexpl.tar重命名为.ova) 可直接上传到C:\testFolder\testUpload.txt下

通过如下POC上传文件(这里通过burpsuti抓包将上传的

文件winexpl.tar重命名为.ova)

 可直接上传到C:\testFolder\testUpload.txt下

可上传到C:\testFolder\testUpload.txt


2、Windows上获取RCE

1.需要找打创建文件的可写路径

2.找到的文件路径映射到可访问的Web根目录的文件夹结构中,够运行.jsp脚本,并且不需要授权 通过上面上传的testUpload.txt文件属性,可知道用于该文件执行的用户是vsphere-ui

  

并且在windows目录下载,默认安装C:\ProgramData\VMware\vCenterServer\data\perfcharts\tc-instance\webapps\statsreport\该目录含有JSP执行文件权限(无需登录执行访问) 

根据以上信息,可以指定一个tar文件

python evilarc.py -d 5 -p 'ProgramData\

VMware\vCenterServer\data\perfcharts\

tc-instance\webapps\statsreport' -o win -f

winexpl.tar testRCE.jsp

3、Linux上获得RCE

使用vsphere-ui用户的权限上传任意文件。如果我们将公钥上传到该用户的主目录,并尝试使用私钥通过SSH连接到服务器. 生成公钥对 ssh-keygen -t rsa  使用生成的公共密钥创建.tar 打包tar:

python evilarc.py -d 5 -p 'home/vsphere-ui/.ssh' -o unix -f linexpl.tar authorized_keys ssh vsphere-ui@Your IP POC使用: 

修复方法:

按照官方提示,关闭插件https://kb.vmware.com/s/article/82374

Reference:

工具:https://github.com/horizon3ai/CVE-2021-21972

分析:https://swarm.ptsecurity.com/unauth-rce-vmware/ https://mp.weixin.qq.com/s/NWVe4jxpWMqQNHIAmYHI6g POC:https://github.com/QmF0c3UK/CVE-2021-21972-vCenter-6.5-7.0-RCE-POC Exp payload:https://github.com/NS-Sp4ce/CVE-2021-21972

Taoing老师主讲

WEB高级攻防实战班 第1期  来袭

课程围绕:外围打点、边界突破、PHP审计、SRC漏洞挖掘、应急响应

课程大纲(最新)

*大纲仅作为参考,会根据当期进度有所变化(加客服获取高清课程导图)

课程目录(最新)

课程费用

每期班定价2999第一期班首发价:2499前50名送365元Web安全知识星球名额),每个报名学员都可享受一次免费的重听权益,一次没学懂就再来一遍,后续培训可任选一期来听。请有意参加培训的学员抓紧报名!

支持支付宝、信用卡、花呗分期,对公转账,可开发票!

学习资源

前50名报名同学,送365元Web知识星球名额,可提前先行学习Web安全相关知识,并提供课程中需要的相关软件和环境。

上课时间

每周一、二、三、四的晚上 19:00-21:00 ,共24天,48课时,为期6周。如果无法准时参加直播课程,在线培训的每节课程都会被录制成视频上传到学员区,可随时下载观看。

上课方式

培训采用在线直播+随堂录播+微信群解答的形式,无需等待,报名后立即进入“Web星球”开始预习。

讲师介绍

Taoing:MS08067安全实验室核心成员,Web安全知识星球合伙人,安恒信息安全高级工程师,擅长企业安全研究、情报分析、渗透测试,安全开发。

TtssGkf:MS08067安全实验室核心成员,Web安全知识星球合伙人,Defcon Group 86021议题分享者,致力于漏洞分析、代码审计、漏洞挖掘。


如何提前预习

  • 为更顺利的完成课程相关内容,请同学一定要提前预习相关知识点,已经报名的同学,请购买实验室出品《Web安全攻防:渗透测试实战指南》一书或在赠送的MS08067实验室“Web安全知识星球”中学习相关的内容。

    为什么选择MS08067直播培训     

MS08067近年来在安全界的口碑还是有目共睹的,特别是对信安感兴趣的学生、爱好者做了些有意义的事情,是真心实意的为读者,绝无半点虚假,做星球的初衷也是为了满足读者对于图书配套视频的需求,不像一些培训把心思花在宣传、花在“卖教程”上,实验室4年出版了4本原创图书就可以看出我们的初心和技术能力。

此次培训围绕红队攻击中的实战应用,重点突出实战、干货、思路、深度。负责讲解的老师也是MS08067的资深核心骨干成员,拥有多年的实战工作经验,让您所学的技术可以在企业中真正用得上。

很多读者跟我反映过开始都是看视频、看书自学,但是一旦遇到实验报错就没法解决,遇到不懂的技术点也没人解答,本应该重点掌握的技术也没有掌握,100%的初学者都会或多或少的走些弯路,学了1-2年还是效率低、进步慢,有的甚至就放弃了信安这个行业,学习信安要有圈子,也要有方法,自学当然没有问题,但该花的钱一分也不能少花。

最后再说下现在的信安培训也是鱼龙混杂,有很多挂羊头卖狗肉的也有很多商业化很成熟的机构,我们只希望做自己、多出书,然后做些小而精的培训,仅此而已。

    你距离大佬,只差一个决定       

详情咨询请联系小客服

扫描下方二维码加入星球学习

加入后邀请你进入内部微信群,内部微信群永久有效!

 

 

来和5000+位同学一起加入星球学习吧!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VMware vCenter Server远程代码执行漏洞复现 CVE-2021-21972 的相关文章

  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • CoAP数据包的大小是多少?

    我是这项技术的新手 有人可以帮助我了解一些疑问吗 Q 1 CoAP数据包的大小是多少 我知道有 4 字节固定标头 但是包括标头 选项和负载在内的最大大小限制是多少 Q 2 有像MQTT那样的Keep Alive的概念吗 它在UDP上工作 它
  • Gtk-ERROR **:检测到 GTK+ 2.x 符号

    我正在使用 gcc 编译我的 c 应用程序 并使用以下标志 gcc evis c pkg config cflags libs gtk 2 0 libs clutter gtk 1 0 libs gthread 2 0 Wall o evi
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • 如何自动将清单添加到新的 github PR 中?

    创建 Github 拉取请求时 如果能自动将 代码审查 清单添加到 PR 中 那就太好了 然后 PR 提交者可以填写此内容 审核者将能够看到提交者在发送审核之前已经完成了他应该做的事情 这有可能吗 最好的解决方案是在创建 PR 时自动显示清
  • 在我的例子中,GIT 添加恢复(保留更改)

    在我对文件进行更改之后 我用git add FILE NAME 然后 我想将其恢复为未添加但与此同时保留更改 这个怎么做 git reset FILE NAME会做的 See the git reset manual https git s
  • 高效的内存屏障

    我有一个多线程应用程序 其中每个线程都有一个整数类型的变量 这些变量在程序执行期间递增 在代码中的某些点 线程将其计数变量与其他线程的计数变量进行比较 现在 我们知道在多核上运行的线程可能会无序执行 一个线程可能无法读取其他线程的预期计数器
  • 在 Mac OSX 上交叉编译 x86_64-unknown-linux-gnu 失败

    我尝试将我的 Rust 项目之一编译到 x86 64 unknown linux gnu 目标 cargo build target x86 64 unknown linux gnu Compiling deployer v0 1 0 fi
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • PyQt5 - 无法使用 QVideoWidget 播放视频

    from PyQt5 QtWidgets import from PyQt5 QtMultimedia import from PyQt5 QtMultimediaWidgets import from PyQt5 QtCore impor
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • 从 systemd bash 内联脚本创建 filename_$(date %Y-%m-%d)

    我正在尝试执行systemd计时器并希望将执行脚本的输出保存在每个日期的文件中 这是我的ExecStart脚本中的 service file ExecStart bin bash c echo date Y m d gt gt home u
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed

随机推荐

  • 判断input输入框的值,用到input事件,blur事件,focus事件

    需求 当输入框有字或者正在输入时 右边的圆形取消按钮才出现 否则不出现
  • 网络h

    注 所有标题带h的博客不保证准确性和正确性 写这篇博客原因是因为网络知识学了又忘 忘又学 翻来覆去 所以做个笔记 正如上文注明 此篇博客所写内容不够准确和专业 甚至不正确 只是为了便于理解记忆 概念 以太网 ethernet 双绞线 同轴线
  • Tkinter中字体大小与部件大小的关系

    我是小鱼 今天是2022年2月10日 之前用python在做扫雷游戏时 发现总是拿不准部件大小与字体之间的关系 为此 当时还特地写了一篇BLOG Tkinter中的标签 Lable 与按钮 Button 的大小问题 扫雷写完后我有时间慢慢回
  • Centos下yum安装nginx本地仓库无nginx源解决方案

    一 问题描述 在CentOS下使用yum install nginx y 命令时 出现如下错误 root docker 05 yum install nginx y 已加载插件 fastestmirror Loading mirror sp
  • Hadoop Hbase 升级

    Hadoop HDFS 与Hbase升级笔记 由于之前使用了hadoop1 0 2 hbase 使用的是hbase 0 92 1 但是一次事故导致元数据丢失 且修复元数据的类本身有BUG 所以摆在眼前的只有两条路 1 修改hbase源码重新
  • CNI Plugin 介绍

    CNI 插件包括两种类型 CNI Plugin 和 IPAM IP Address Management Plugin CNI Plugin 负责为容器配置网络资源 IPAM Plugin 负责对容器的 IP 地址进行分配和管理 IPAM
  • Mac 下配置 Python3 和 Selenium3 环境

    Selenium 是一套 Web 测试框架 Selenium2 中新增加了 Webdriver 可以用了测试 UI 层 控制浏览器执行爬虫等操作 而 chromedriver 是 Selenium 控制浏览的必要驱动 一 安装 seleni
  • CCP协议

    CCP协议 2021 11 12 标定流程 将标定数据保存在Flash中 在程序初始化过程中 标定数据映射至RAM当中 程序从RAM中调取数据 标定过程开始时 在上位机中建立Flash存储区镜像 并保存至HEX文件 标定过程中 通过DNLO
  • cookie中文乱码问题

    下面是写入cookie的代码 csharp view plain copy Cookie nameCookie new Cookie name 张三 nameCookie setMaxAge 60 60 24 30 response add
  • 多普勒超声波流量计工作原理及优缺点

    多普勒超声波流量计是是利用声波在流体中传播的多普勒效应 通过测定流体中运动粒子散射声波的多普勒频移 即可得到流体的速度 结合内置压力式水位计 利用速度面积法 即可测量液体的流量 适合于明渠 河道及难以建造标准断面的流速流量测量以及于各种满管
  • 河道堤防GNSS位移监测系统

    一 方案背景 我国河系众多 海岸线漫长 在江边 河边 海边修筑修筑着几万公里的提防设施保卫着沿江 沿海居民的生命安全 也保卫着经济发展的累累硕果 近年来 因台风暴雨造成河道堤坝决堤 产生的经济损失越来越大 各对方对防洪堤 海堤的安全检查要求
  • 【数据可视化】利用 Flourish 制作动态排名条形图(无需代码,超简单)

    利用 Flourish 制作动态排名条形图 一 Flourish 介绍 数据可视化不仅是一项技术 也是一门艺术 当然 数据可视化的工具也非常多 仅 Python 就有 matplotlib plotly seaborn bokeh 等多种可
  • ubuntu16.04,如何修改网卡名称为eth0?(转)

    一开始没有注意 输入ifconfig显示的是 ens33 lo 觉得没有影响 就是一个名字的事情 但是百度以后发下 强迫症 具体看知乎大佬的连接 https www zhihu com question 45796677 感谢 流沙 大佬
  • labuladong 公众号的使用方法

    先给大家说句抱歉 前段时间 labuladong 有些事情在忙 所以更新频率比较慢 以后就恢复正常了 自开号以来 labuladong 的算法文章开了 靠套路刷题 的先河 一直被模仿 从未被超越 GitHub 开源 fucking algo
  • Maven 安装和使用详解详解(windows 环境)

    目录 1 maven 安装步骤 1 从 Apache 官网下载 maven 压缩包 2 解压 maven 压缩包 即可使用 3 配置 maven 环境变量 方便全局使用 3 检测是否安装配置成功 2 Maven 使用详解 1 修改 sett
  • IntelliJ IDEA无法运行新建的java类,灰色运行标志【终于找到!!】

    问题 创建新类 但是就是不能运行 运行的按钮都是灰色的 只有下面默认的自带的main函数能够运行 鼠标右键找不到运行函数类似图二 但是这个错误首先请确保自己的JDK没有问题 如图 鼠标右键也找不到运行标志 结果发现 从c 过来的编译习惯 总
  • No2.7 前端面试题 1. token 2. 浏览器页面渲染的过程 3. SVG格式 4. 精灵图和base64

    1 token 什么是token token是验证身份的令牌 一般是用户通过账号密码登录后 服务端把这些凭证通过加密等一系列操作后得到的字符串 token都存在哪里 有什么区别 存localstorage里 后期每次请求接口时都需要把它当做
  • 索尼的hlg是什么_索尼HLG的使用方法

    近几年HLG的出现 让我们普通的摄影爱好者 可以直接的拍摄高动态范围的影像 尤其是小型的团队和独立的视频制作人 HLG能让我们在拍摄完素材够后 稍微调整就可以得到很不错的画面效果 能让我们省去很多后期调色的麻烦 这对于没有调色基础的摄影爱好
  • ABAP DIALOG 读取屏幕字段和tablecontrol内字段

    在POV事件中 因为没有经过PAI直接进入POV中的MODULE 所以直接调用屏幕中的字段并没有值 所以要 用DYNP VALUES READ读取屏幕字段的值 且读取的值格式为输入的格式 当使用DYNP VALUES READ时 所读取的屏
  • VMware vCenter Server远程代码执行漏洞复现 CVE-2021-21972

    文章来源 MS08067安全实验室 本文作者 Taoing WEB高级攻防班讲师 0x00 漏洞描述 CVE 2021 21972 vmware vcenter的一个未任意位置 然后执行webshell即可 0x01 影响版本 VMware