腾讯QQ/TIM本地特权提升(CVE-2023-34312)

2024-06-09 15:04

本文主要是介绍腾讯QQ/TIM本地特权提升(CVE-2023-34312),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

受影响的产品:

QQ 9.7.1.28940 ~ 9.7.8.29039
TIM 3.4.5.22071 ~ 3.4.7.22084


受影响的组件:

QQProtect.exe 4.5.0.9424(在 TIM 3.4.5.22071 中)
QQ权限.exe 4.5.0.9426(QQ 9.7.1.28940 中)
QQProtectEngine.dll 4.5.0.9424(在 TIM 3.4.5.22071 中)
QQ引擎.dll 4.5.0.9426(QQ 9.7.1.28940中)

⼀、总结
腾讯QQ和TIM是深圳市腾讯计算机系统有限公司开发的两款即时通讯软件。它们都有⼀个组件QQProtect.exe,位
于 %ProgramFiles(x86)%\Common Files\Tencent\QQProtect\bin . QQProtect.exe作为名为**QPCore的
Windows 服务安装,并 NT Authority\SYSTEM 在系统启动时⾃动运⾏。组件QQProtect.exe及其依赖的DLL
QQProtectEngine.dll均存在任意地址写⼊漏洞。低权限攻击者可以结合这两个漏洞在QQProtect.exe进程中加载恶
意DLL并获取 NT Authority\SYSTEM shell。

2. 漏洞
第⼀个漏洞是QQProtect.exe+0x40c9f8处的代码:
其中 a2 是⼀个可以被攻击者控制的指针, dword_41a740 是⼀个全局变量,其值为 0x00000001 。因此攻击者可
以在任何地址写⼊该值 DWORD(1) 。

第⼆个漏洞是QQProtectEngine.dll+0x3B4F6处的代码:
其中 v3 是可以被攻击者控制的指针。因此攻击者可以 std::bit_cast<DWORD>(ptr) + 4 在任何给定地址写⼊该
值 ptr 。
QQProtect.exe 由于 QQProtect.exe 没有ASLR保护,攻击者可以轻易篡改驻留的函数指针并利⽤ROP链执⾏任
意代码。

3. 概念证明
 poc代码是⽤Rust语⾔编写的。您应该使⽤ i686-pc-windows-msvc ⼯具链来编译它。

cd poc
cargo +stable-i686-pc-windows-msvc build --release --config "build.rustflags = [\"-C\",
\"target-feature=+crt-static\"]"

你将得到两个 DLL:

target\release\tinyxml.dll
target\release\evil.dll


然后将上⾯的两个Dll放在 %ProgramFiles(x86)%\Common Files\Tencent\QQProtect\bin\QQProtect.exe ⼀
个⽂件夹中。


NT Authority\SYSTEM 最后⽤⼀个命令获取shell:

$ QQProtect.exe <PATH TO evil.dll>

参考链接
https://github.com/vi3t1/qq-tim-elevation

这篇关于腾讯QQ/TIM本地特权提升(CVE-2023-34312)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo