欢迎光临散文网 会员登陆 & 注册

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

2023-07-01 14:02 作者:DF4D-0555  | 我要投稿

受影响的软件:

  • QQ 9.6.1 ~ 9.7.9 (9.7.10 已修复)

  • TIM 3.4.1 ~ 3.4.6

受影响的组件:

  • QQProtect.exe 4.5.0.9424

  • QQProtect.exe 4.5.0.9426

  • QQProtectEngine.dll 4.5.0.9424

  • QQProtectEngine.dll 4.5.0.9426

1. 概要

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

2. 漏洞

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

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

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

其中 v3 是一个可以被攻击者控制的指针,所以攻击者可以在任何给定的地址 ptr 上写入 std::bit_cast<DWORD>(ptr) + 4 的值。

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

3. 概念证明

poc 代码使用 Rust 语言编写,你需要用 i686-pc-windows-msvc 工具链来编译。

你会得到两个 DLL:

或从 https://github.com/savfile/CVE-2023-34312/releases/tag/v0.0.0-alpha 下载已编译好的版本。

然后把上面的两个 DLL 和 %ProgramFiles(x86)%\Common Files\Tencent\QQProtect\bin\QQProtect.exe 一起放在一个文件夹里。

最后用一条命令获得带有 NT Authority\SYSTEM 权限的外壳:

4. 演示


CVE-2023-34312 腾讯 QQ / TIM 本地提权漏洞的评论 (共 条)

分享到微博请遵守国家法律