卡巴斯基的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,这可以帮助攻击者完全控制受害者系统。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何做好漏洞管理的漏洞修复工作
- 漏洞预警 | ThinkPHP5远程命令执行漏洞
- 漏洞预警 | MetInfo最新版本爆出SQL注入漏洞
- 通过关键字获取漏洞平台最新漏洞信息
- [浏览器安全漏洞一] dll劫持漏洞
- 宝塔漏洞 XSS窃取宝塔面板管理员漏洞高危
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ASP.NET 2.0技术内幕
埃斯帕斯托 / 施平安 / 清华大学出版社 / 2006-8 / 68.00元
《ASP.NET2.0技术内幕》围绕着ASP.NET 2.0是Web开发的重要分水岭这一主题,采用自顶向下的方式介绍ASP.NET 2.0的最新编程实践,从更广泛的特征到具体的实现和编程细节,充分展示了ASP.NET的最新编程实践。全书共15章,主题涉及HTTP运行库、安全性、缓存、状态管理、控件、数据绑定和数据访问。 《ASP.NET2.0技术内幕》主题丰富,讲解透彻,包含大量实例,是......一起来看看 《ASP.NET 2.0技术内幕》 这本书的介绍吧!