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

栏目: 编程工具 · 发布时间: 7年前

卡巴斯基的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窗口没有真正地初始化,因此就可以获取释放的内存块的地址的控制权。

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

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

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

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

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

第3阶段PowerShell脚本

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

· 解压shellcode

· 分配可执行文件内存

· 复制shellcode到分配的内存

· 调用CreateThread来执行shellcode

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

PowerShell脚本中的Shellcode

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

永无止境

永无止境

[美] 道格拉斯•艾德华兹 / 刘纯毅 / 中信出版社 / 2012-12-15 / 59.00元

★ 值得中国初创公司反复思考的企业传记 ★ 互联网行业必读书 ★ Google高管揭开Google的神秘面纱 ★ 探寻“G力量”重塑人类知识景观的心路历程 ★ Google走过的路,Google未来的路 ★ 编辑推荐: 它是目前被公认为全球最大的搜索引擎!它是互联网上五大最受欢迎的网站之一! 它在操作界面中提供多达30余种语言选择,在全球范围内拥有无数用户......一起来看看 《永无止境》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具