• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

CVE-2019-1458 0 day漏洞分析


This Wind

Recommended Posts

研究人员在Operation WizardOpium攻击活动中发现了Windows 0 day漏洞CVE-2019-1458在野利用。

2019年11月,Kaspersky研究人员在Operation WizardOpium攻击活动中成功检测到一个Google Chrome浏览器的0 day漏洞利用。在调查过程中,研究人员在攻击活动中还发现了另一个0 day漏洞利用。该漏洞CVE编号为CVE-2019-1458,是一个0 day权限提升漏洞,用于在受感染的机器中获取更高权限,或从Chrome进程沙箱中逃逸出来。该漏洞利用与著名的0 day开发者Volodya开发的漏洞利用非常相似。

该权限提升漏洞利用包括2个部分:一个小的PE加载器和真实的漏洞利用。在通过有漏洞的JS代码获取浏览器渲染进程的读写原语后,PE漏洞利用就会破坏内存中的一些指针来重定向代码执行到PE加载器中。这是通过绕过沙箱限制来实现的,因为PE漏洞利用不能简单地通过原始winAPI函数来开始新的进程。

PE加载器用真实的漏洞利用定位了嵌入DLL文件的位置,并且在原始Windows PE加载器中重复相同的过程,分析PE header,处理输入、输出等。之后,代码执行会被重定向到DLL的入口点——DllEntryPoint函数。然后PE代码会创建一个新的线程,就是漏洞利用本身的入口点,主线程在其停止前会一直等待。

CVE-2019-1458 0 day漏洞利用

攻击活动中的EoP漏洞利用

封装了该漏洞利用的PE文件header如下:

CVE-2019-1458 0 day漏洞利用

编译的时间戳Wed Jul 10 00:50:48 2019与其他二进制文件是不同的,表明之前已经用过了。

研究人员进一步分析该权限提升漏洞发现,该漏洞是win32k.sys驱动中的一个漏洞,该漏洞是0 day漏洞的原因是在最新版的Windows 7系统和一些Windows 10系统上也可以工作。

该漏洞本身与Windows切换功能有关,比如使用Alt + Tab键的组合来进行切换。这也是为什么漏洞利用代码中使用了许多winAPI调用(GetKeyState/SetKeyState)来模拟键盘输入操作。

开始的时候,漏洞利用会尝试使用ntdll.dll的RtlGetVersion调用来确定操作系统的版本,该调用的作用是在内存中找出一些设置虚假kernel GDI对象所需的offset值。同时,漏洞利用会尝试使用一些知名的技术来泄露kernel指针以达到泄露kernel内存地址的目的。之后,会尝试使用一些到CreateAcceleratorTable/DestroyAcceleratorTable的调用来在堆中创建含有漏洞的特殊内存布局。然后,会执行一些CreateBitmap调用,使用handle表数组就达到了泄露地址的目的。

CVE-2019-1458 0 day漏洞利用

触发漏洞利用代码路径

之后,会创建一些弹窗窗口和使用Window handles来调用系统调用NtUserMessageCall。此外,还会用任务切换窗口(#32771)的类来创建一个特殊的窗口,在驱动中触发该漏洞利用是非常主要的。在这一步,漏洞利用会尝试模拟alt键,然后调用SetBitmapBits来构造一个含有可以控制的指针值来构造一个GDI对象,该指针值会在漏洞利用调用第二个系统调用NtUserMessageCall时,kernel驱动的代码中使用到。这就是如何获取一个任意的kernel 读写原语。

CVE-2019-1458 0 day漏洞利用

获取任意R/W所需的原语

然后该原语会被用来在目标系统上执行权限提升。这一过程是通过使用现有系统驱动进程中的token值来覆写当前进程的EPROCESS结构的token值来实现的。

CVE-2019-1458 0 day漏洞利用

覆写EPROCESS结构的token值

Kaspersky研究人员称此类威胁可以通过沙箱技术来检测。

本文翻译自:https://securelist.com/windows-0-day-exploit-cve-2019-1458-used-in-operation-wizardopium/95432/
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now