QEMU Guest Agent本地提权漏洞处理(CVE-2023-0664)

2023-11-23 19:28

本文主要是介绍QEMU Guest Agent本地提权漏洞处理(CVE-2023-0664),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、漏洞描述

QEMU Guest Agent(qga)类似于vmware中的 vmtools,相关安全报告显示它的Windows版本安装程序存在本地提权高危漏洞(CVE-2023-0664),攻击者可利用该漏洞进行本地权限提升,获得SYSTEM特权运行的交互式命令行界面,可能对各类云主机产品产生一定影响,漏洞详细信息请见附件。它在windows中已qemu-ga服务和QEMU Guest Agent VSS Provider存在。
在这里插入图片描述

QEMU Guest Agent是一种QEMU虚拟机中的通用API,它提供了从主机到客户机的一系列工具和服务,包括安全的虚拟机控制、信息传递和虚拟硬件监控,为客户机提供更好的集成体验。详见:bug声明。

The custom action uses cmd.exe to run VSS Service installation
and removal which causes an interactive command shell to spawn.
This shell can be used to execute any commands as a SYSTEM user.
Even if call qemu-ga.exe directly the interactive command shell
will be spawned as qemu-ga.exe is a console application and used
by users from the console as well as a service.As VSS Service runs from DLL which contains the installer and
uninstaller code, it can be run directly by rundll32.exe without
any interactive command shell.Add specific entry points for rundll which is just a wrapper
for COMRegister/COMUnregister functions with proper arguments.

漏洞影响:所有FedoraOS,windows 虚拟机2023年3月之前的qga版本;

相关链接:rockylinux

二、修复处理

1)官方修复说明

参见:QGA installer fixes; qemu-kvm 8.0.0-rc0中已经得到修复,如下所示:

qga/win32: Remove change action from MSI installer
qga/win32: Use rundll for VSS installation

qga/installer/qemu-ga.wxs | 11 +++++±----
qga/vss-win32/install.cpp | 9 +++++++++
qga/vss-win32/qga-vss.def | 2 ++
3 files changed,

安装过程:

  1. 获取软件
  2. 安装驱动 virto serial driver
  3. 更新 balloon 驱动 (需要区分 2012, win7 版本的使用方法)
  4. 安装 qemu-ga
  5. 注册并重启 balloon 服务
  6. 测试可用性

注意事项:

1 balloon 服务只能够运行在 administrator 用户下
2 假如你只属于 administrators 组, 那么请你切换成 administrator 用户
3 假如 administrator 用户被隐藏, 那么需要管理员身份运行 cmd , 输入下面命令, 再切换用户:net user administrator /active:yes

2) 软件获取

wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install virtio-win
#iso 软件存放在
ls /usr/share/virtio-win/virtio-win.iso
#或者
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
//或直接下载: 2023-09-19 06:30  9.7M 
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-106.0.1-1.el9/qemu-ga-x86_64.msi
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-gt-x64.msi#

3)安装

#windows server 2012挂载 virtio-win.iso
#双击virtio-win.iso打开,其下有三个重要目录:1)guest-agent (含安装的二进制文件 (qemu-ga-x64.msi, qemu-ga-x86.msi)
2)vioserial ( virto-serail driver )
3)balloon (用于注册 balloon 服务):只能超级管理员运行

在这里插入图片描述
1)如上图所示,先更新 VIRTO-SERAIL DRIVER

即设备管理界面,更新 pci 简单通讯控制器 (使用 vioserail 目录中的驱动):

在这里插入图片描述
在这里插入图片描述
2)安装 BALLOON PCI 驱动 (WINDOWS 2012)
在这里插入图片描述
在这里插入图片描述
完成后重启云主机;
3) 双击安装qemu-ga-x86.msi 或 qemu-ga-x64.msi后,启动qemu guest agent 服务

4)启动 BALLOON 服务 (WIN2012)

复制光盘中 balloon 目录到 c:\Program Files,然后注册 balloon 服务后 重启,执行:

mkdir "c:\Program Files\balloon\2k12\amd64"
copy d:\balloon\2k12\amd64\*  "c:\Program Files\balloon\2k12\amd64\."
cd c:\Program Files\balloon\2k12\amd64
blnsvr.exe -i
net stop balloonservice
net start balloonservice

5)建议找你的云厂商来协助升级,不建议自行升级qga版本

3、附录

3.1 redhat和Fedora的关系

在这里插入图片描述

1)在centos8之前:

Fedora ==》RedHat ==》CentOS

简单理解:Fedora 是RedHat的“试验场”,很多新功能和特性先加入Fedora 稳定后再加入RedHat(收费),然后从RedHat再拉出CentOS(免费,培养用户和生态)

2)在centos8这之后

Fedora ==》CentOS stream ==》 RedHat

上面是IBM(收购了redhat)取消CentOS,改为在Fedora 和 RedHat 之间滚动发布CentOS stream,这就使得Centos不再像之前那样可靠稳定,适合生产环境了。

在这里插入图片描述

这篇关于QEMU Guest Agent本地提权漏洞处理(CVE-2023-0664)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/420189

相关文章

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St