腾讯QQ&TIM本地提权POC(CVE-2023-34312)

admin 2023年7月24日14:57:39评论51 views字数 1442阅读4分48秒阅读模式

声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,海底生残月及文章作者不为此承担任何责任。


现在只对常读和星标的公众号才展示大图推送,建议大家能把海底生残月设为星标”,否则可能就看不到了啦


0x01 漏洞描述

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

0x02 影响范围

受影响的产品:QQ 9.7.1.28940 ~ 9.7.8.29039TIM 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中)

0x03 漏洞复现

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

腾讯QQ&TIM本地提权POC(CVE-2023-34312)

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

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

腾讯QQ&TIM本地提权POC(CVE-2023-34312)

其中v3是可以被攻击者控制的指针。因此攻击者可以std::bit_cast<DWORD>(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:

targetreleasetinyxml.dlltargetreleaseevil.dll

然后将上面的两个Dll放到%ProgramFiles(x86)%Common FilesTencentQQProtectbinQQProtect.exe一个文件夹中。

NT AuthoritySYSTEM最后用一个命令获取shell:

$ QQProtect.exe <PATH TO evil.dll>

腾讯QQ&TIM本地提权POC(CVE-2023-34312)

0x04 工具下载

点击关注下方名片进入公众号

回复关键字【本地提权】获取下载链接

 

原文始发于微信公众号(海底生残月):腾讯QQ&TIM本地提权POC(CVE-2023-34312)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月24日14:57:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   腾讯QQ&TIM本地提权POC(CVE-2023-34312)https://cn-sec.com/archives/1902624.html

发表评论

匿名网友 填写信息