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中CSV文件处理全攻略

《Python中CSV文件处理全攻略》在数据处理和存储领域,CSV格式凭借其简单高效的特性,成为了电子表格和数据库中常用的文件格式,Python的csv模块为操作CSV文件提供了强大的支持,本文将深入... 目录一、CSV 格式简介二、csv模块核心内容(一)模块函数(二)模块类(三)模块常量(四)模块异常

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

详解如何在SpringBoot控制器中处理用户数据

《详解如何在SpringBoot控制器中处理用户数据》在SpringBoot应用开发中,控制器(Controller)扮演着至关重要的角色,它负责接收用户请求、处理数据并返回响应,本文将深入浅出地讲解... 目录一、获取请求参数1.1 获取查询参数1.2 获取路径参数二、处理表单提交2.1 处理表单数据三、

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

一文带你搞懂Redis Stream的6种消息处理模式

《一文带你搞懂RedisStream的6种消息处理模式》Redis5.0版本引入的Stream数据类型,为Redis生态带来了强大而灵活的消息队列功能,本文将为大家详细介绍RedisStream的6... 目录1. 简单消费模式(Simple Consumption)基本概念核心命令实现示例使用场景优缺点2

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

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

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