探索网络安全新技术
攀登黑客技术最高峰

CVE-2023-34312:腾讯QQ/TIM本地提权漏洞

漏洞介绍

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

影响版本

受影响的产品

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 中)
QQProtect.exe 4.5.0.9426(在 QQ 9.7.1.28940 中)
QQProtectEngine.dll 4.5.0.9424(在 TIM 3.4.5.22071 中)
QQProtectEngine.dll 4.5.0.9426(在 QQ 9.7.1.28940 中)

漏洞分析

第一个漏洞是QQProtect.exe+0x40c9f8处的代码:

CVE-2023-34312:腾讯QQ/TIM本地提权漏洞-威武网安

其中a2是一个可以被攻击者控制的指针,dword_41a740是一个全局变量,其值为0x00000001。因此攻击者可以在任何地址写入该值DWORD(1)。

第二个漏洞是QQProtectEngine.dll+0x3B4F6处的代码:

CVE-2023-34312:腾讯QQ/TIM本地提权漏洞-威武网安

其中v3是可以被攻击者控制的指针。因此攻击者可以std::bit_cast(ptr) + 4在任何给定地址写入该值ptr。

QQProtect.exe由于QQProtect.exe没有ASLR保护,攻击者可以轻易篡改驻留的函数指针并利用ROP链执行任意代码。

漏洞证明

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

漏洞演示

CVE-2023-34312:腾讯QQ/TIM本地提权漏洞-威武网安

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《CVE-2023-34312:腾讯QQ/TIM本地提权漏洞》
文章链接:https://www.wevul.com/1751.html
本站所有内容均来自互联网,只限个人技术研究,禁止商业用途,请下载后24小时内删除。

评论 1

  1. #1

    靓哦 大佬 :dinosaur-shy:

    迪仔7个月前 (07-21)回复

如果文章对你有帮助 可以打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册