正在阅读:卡巴斯基实验室:win32k.sys又曝出新的零日漏洞卡巴斯基实验室:win32k.sys又曝出新的零日漏洞

2019-04-18 18:18 出处:其他 作者:PConline 责任编辑:liwen1

  【PConline资讯】卡巴斯基实验室在安全公告中称,其安全研究人员在win32k.sys中又发现了一个新的零日漏洞,代号为CVE-2019-0859。2019年3月,卡巴斯基的自动化漏洞利用防护(EP)系统检测到了对微软Windows操作系统中的漏洞尝试。但在进一步分析后,他们发现win32k.sys中确实存在新的零日漏洞,而且这是实验室最近几月内第五次发现被利用的本地提权漏洞。

Win7SP1x64上的win32k!xxxFreeWindow+0x1344弹窗

  2019年3月17日,卡巴斯基实验室向微软提交了漏洞报告,该公司确认了该漏洞,并分配了CVE-2019-0859这个编号。

  万幸的是,微软已经为该漏洞发布了一个补丁,并通过WindowsUpdate进行了推送。

  卡巴斯基实验室称,功劳簿上有VasiliyBerdnikov和BorisLarin这两位安全研究人员的名字。

  至于CVE-2019-0859漏洞的技术细节,主要是CreateWindowEx函数中隐含的Use-After-Free漏洞。

  执行期间,CreateWindowEx会在首次创建时,将WM_NCCREATE消息发送到窗口。

  借助SetWindowsHookEx函数,可在窗口调用过程之前,设置处理WM_NCCREATE消息的自定义回调。

  然而在win32k.sys中,所有窗口都由tagWND结构呈现,其具有“fnid”字段(亦称FunctionID)。

  该字段用于定义窗口的类,所有窗口分为ScrollBar、Menu、Desktop等部分,此前卡巴斯基已经分享过与我们已经写过与FunctionID相关的bug。

  在WM_NCCREATE回调期间,窗口的FunctionID被设置为0,使得我们能够钩子内部为窗口设置额外数据,更重要的是Hook后立即执行的窗口过程的地址。

  将窗口过程更改为菜单窗口过程,会导致执行xxxMenuWindowProc,且该函数会将FunctionID启动到FNID_MENU(因为当前消息等于WM_NCCREATE)。

  在将FunctionID设置为FNID_MENU之前操作额外数据的能力,可强制xxxMenuWindowProc函数停止菜单的初始化、并返回FALSE。

  因此发送NCCREATE消息将被视为失败的操作,CreateWindowEx函数将通过调用FreeWindow来停止执行。

  卡巴斯基实验室发现,野外已经有针对64-bit版本的Windows操作系统的攻击(从Windows7到Windows10),其利用了众所周知的HMValidateHandle漏洞来绕过ASLR。

  成功利用后,漏洞会借助Base64编码命令来执行PowerShell,主要目的是从https//pastebin.com下载执行二、三阶段的脚本。

  其中三阶段脚本的内容很是简洁明了——捷豹shellcode、分配可执行内存、将shellcode复制到已分配的内存、以及调用CreateThread来执行shellcode。

  shellcode的主要目标,是制作一个简单的HTTP反向shell,以便攻击者完全控制受害者的系统。

关注我们

302 Found

302 Found


Powered by Tengine
tengine
最新资讯离线随时看 聊天吐槽赢奖品