CVE-2024-7479 & CVE-2024-7481:利用TeamViewer中一个漏洞的概念证明,用户到内核的权限提升


CVE-2024-7479 & CVE-2024-7481:利用TeamViewer中一个漏洞的概念证明,用户到内核的权限提升

此存储库包含 TeamViewer 中漏洞的利用概念验证,该漏洞允许非特权用户将任意内核驱动程序加载到系统中。我要感谢 Zero Day Initiative 与他们协调报告并负责任地披露该漏洞。

  • https://www.cve.org/CVERecord?id=CVE-2024-7479

  • https://www.cve.org/CVERecord?id=CVE-2024-7481

  • https://www.zerodayinitiative.com/advisories/ZDI-24-1289/

  • https://www.zerodayinitiative.com/advisories/ZDI-24-1290/

  • https://www.teamviewer.com/en/resources/trust-center/security-bulletins/tv-2024-1006/

细节

关于这些漏洞的研究细节可以在我博客上的以下三部分博客系列中找到。它们更详细地介绍了这些漏洞,还展示了我在此过程中失败的地方。第三部分很有趣 :P。

  • https://pgj11.com/posts/Finding-TeamViewer-0days-Part-1/

  • https://pgj11.com/posts/Finding-TeamViewer-0days-Part-2/

  • https://pgj11.com/posts/Finding-TeamViewer-0days-Part-3/

PoC 视频📺

该漏洞的视频可以在这里找到:

  • https://youtu.be/lUkAMAK-TPI

  • https://youtu.be/3R0aBYd0Qn4

  • https://youtu.be/kOjjFgkJQoc

概括

在连接到 SYSTEM 服务 IPC 时,能够欺骗(如博客中所述,只是一些简单的身份验证)有效的 TeamViewer 客户端后,可以触发任意驱动程序安装。TeamViewer 未验证正在安装的驱动程序的签名。

因此,借助 TeamViewer,可以将 USER 权限提升至 KERNEL 权限。

最好的方法之一是使用众所周知的BYOD 技术(自带易受攻击的驱动程序),将有效签名的驱动程序加载到 Windows 内核,然后利用它来从用户级别执行特权操作,例如使用特权令牌更改任意进程的令牌。

当 TeamViewer 安装在系统上时,它会创建一个以 SYSTEM 身份运行的服务,即TeamViewer_service.exe

此服务是客户端执行某些任务的助手。因此,客户端不会以提升的权限运行,并且某些任务会委托给该服务。

与服务 (IPC) 的通信是通过套接字 (使用Overlapped I/O和IoCompletionPort ) 实现的。默认情况下,TeamViewer SYSTEM 服务在 localhost 上监听5939/tcp 。

TeamViewer 不会过滤客户端发送的请求驱动程序安装或签名检查等参数。

因此,我们的想法是:我们将欺骗电视客户端,要求安装VPN 驱动程序,但指示另一个 INF。我重新利用了 TeamViewer 的相同原始 INF,但在另一条(非特权)路径中将“坏”驱动程序重命名为teamviewervpn.sys,因为这是原始 INF 所针对的驱动程序名称。

重要提示

这也可以绕过 TeamViewer 选项“更改需要此计算机的管理权限”。

此检查仅通过 GUI 有效,因为当使用非特权用户单击按钮时, TeamViewer 选项将被禁用。但可以连接到套接字并执行任意驱动程序加载。

重要提示二

该漏洞依赖于版本,因为客户端在 IPC 消息中指定了其 PID 和版本中的其他数据。客户端的版本必须与 SYSTEM 服务的版本相匹配。必须在 Main.cpp 中将漏洞修改为目标 TeamViewer_service.exe 版本(第 140 行至第 143 行)。

因此,基本上,我们欺骗 TeamViewer 客户端连接 SYSTEM 服务并请求安装任意驱动程序。TeamViewer 服务会将其加载到内核中。

CVE-2024-7481 分支

TeamViewer 还有另一条 IPC 消息,与我首先发现的第一条消息非常相似(单击“安装 VPN 驱动程序”时抛出)。这条消息用于安装“打印机驱动程序”。

因此,从本质上讲,CVE-2024-7479 和 CVE-2024-7481 是相同的,但 TeamViewer 犯了两次相同的错误。消息虽然不同,但非常相似。它们有不同的 IPC方法 ID。

结果是一样的,可以加载任意驱动程序。

项目地址:

https://github.com/PeterGabaldon/CVE-2024-7479_CVE-2024-7481


感谢您抽出

CVE-2024-7479 & CVE-2024-7481:利用TeamViewer中一个漏洞的概念证明,用户到内核的权限提升

.

CVE-2024-7479 & CVE-2024-7481:利用TeamViewer中一个漏洞的概念证明,用户到内核的权限提升

.

CVE-2024-7479 & CVE-2024-7481:利用TeamViewer中一个漏洞的概念证明,用户到内核的权限提升

来阅读本文

CVE-2024-7479 & CVE-2024-7481:利用TeamViewer中一个漏洞的概念证明,用户到内核的权限提升

点它,分享点赞在看都在这里

原文始发于微信公众号(Ots安全):CVE-2024-7479 & CVE-2024-7481:利用TeamViewer中一个漏洞的概念证明,用户到内核的权限提升

相关文章