CVE-2019-0859:win32k.sys 0 day漏洞 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

CVE-2019-0859:win32k.sys 0 day漏洞

ang010ela 漏洞 2019-04-17 10:33:59
155202
收藏

导语:​卡巴斯基研究人员又发现win32k.sys中的一个0 day漏洞——CVE-2019-0859。

卡巴斯基的automatic Exploit Prevention (EP)系统又发现Windows操作系统中的一个漏洞利用。研究人员进一步分享发现是win32k.sys中的一个0 day漏洞。这是卡巴斯基近期发现的Windows系统中的第5个本地权限提升漏洞,前4个分别是:

· CVE-2018-8453

· CVE-2018-8589

· CVE-2018-8611

· CVE-2019-0797

2019年3月17日,卡巴斯基将漏洞报告给了微软,CVE编号为CVE-2019-0859,目前微软已经发布了该漏洞的补丁。

技术细节

CVE-2019-0859是一个CreateWindowEx函数中的UAF(Use-After-Free)漏洞。CreateWindowEx在首次创建和执行过程中会发送WM_NCCREATE消息到窗口。通过使用SetWindowsHookEx函数,可能会设置一个可以在调用窗口步骤后处理WM_NCCREATE消息的定制的回调函数。

在win32k.sys中,所有的窗口都用tagWND结构呈现,结构中有一个名为fnid的域,也叫做Function ID。该域用来定义窗口的类,所有的窗口都回被分成不同的类,比如ScrollBar, Menu, Desktop等。研究人员之前就发现了Function ID相关的漏洞。

在WM_NCCREATE回调过程中,窗口的Function ID会被设置为0,这就允许在hook中为窗口设置额外的数据。然后在hook之后可以修改要执行的窗口步骤的地址。到menu窗口步骤的窗口步骤的修改会导致xxxMenuWindowProc的执行,而且因为当前消息等于WM_NCCREATE,因此函数会初始化Function ID为FNID_MENU。

最重要的是修改设置Function ID为FNID_MENU之前的数据可以迫使xxxMenuWindowProc函数停止菜单的初始化,并返回false。因此,发送NCCREATE消息会认为是一个失败的操作,CreateWindowEx也会停止执行。因为MENU-class窗口没有真正地初始化,因此就可以获取释放的内存块的地址的控制权。

 

最新Windows 7 SP1 x64上的win32k!xxxFreeWindow+0x1344

研究人员发现的漏洞利用是针对64位Windows系统的,而且使用了著名的HMValidateHandle技术来绕过ASLR。

成功利用之后,漏洞利用会执行含有Base64编码的命令的PowerShell。该命令的主要目标是从https//pastebin.com下载第二阶段的脚本,第二阶段PowerShell会执行第3阶段的PowerShell脚本。

 

第3阶段PowerShell脚本

第3阶段的脚本非常简单,功能是:

· 解压shellcode

· 分配可执行文件内存

· 复制shellcode到分配的内存

· 调用CreateThread来执行shellcode

 

PowerShell脚本中的Shellcode

Shellcode的主要目的是进行HTTP逆向shell,这可以帮助攻击者完全控制受害者系统。

  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务