欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

攻击者正在利用Windows的0 day漏洞攻击北美地区100多家企业

来源:本站整理 作者:佚名 时间:2017-03-27 TAG: 我要投稿


写在前面的话
FireEye旗下的Mandiant公司在周二发布了2017年M-Trends研究报告,这份报告中的数据是基于该公司对真实攻击事件的分析所得出的。报告指出,在过去的几年里随着黑客技术的不断发展,很多以经济利益为目的的黑客团伙变得越来越复杂,而有些犯罪团伙的技术水平已经达到了国家黑客的高度。
在2013年以前,安全专家将大多数网络犯罪分子所进行的黑客活动称之为“smash and grab”攻击,在这种攻击中犯罪分子几乎不会隐藏自己的活动踪迹,并且会持续从目标系统中窃取数据。而2013年以后,以经济利益为目的的攻击者跟国家黑客之间的界限也变得越来越模糊了,而很多犯罪组织的黑客技术水平已经跟国家黑客不相上下了。在此之前,以经济利益为目的的黑客使用的是WebShell、用Perl2Exe编译的恶意代码、以及远程C&C服务器,而现在他们会根据目标系统的特性来开发具有针对性的自定义后门,并利用合法网站来完成C&C通信。

Mandiant的安全研究人员在2016年发现,很多的攻击活动或多或少都与启用了恶意宏的文件有关。在这些攻击场景中,攻击者会在电子邮件或恶意文件中嵌入指令来尝试诱骗用户开启宏,有些攻击者甚至还会给目标用户打电话并通过社工技术来说服他们启用宏。
其中,零售商成为了他们最大的攻击目标。这不仅是因为攻击者可以从他们身上获取巨额利益,而且他们的网络系统安全系数非常低。由于很多零售商的网络系统没有进行分段隔离,当攻击者成功入侵了PoS系统之后,他们将能够破坏零售商整个PCI环境。
因为攻击者可以从攻击中获利,所以他们自然会在这方面下大功夫。在FireEye调查的一起攻击事件中,黑客团伙利用了一个Windows系统的0 day漏洞攻击了不下一百家企业的计算机系统并成功实现提权。除此之外,他们还利用了非常复杂的技术躲过了安全产品的检测并实现了持久化感染,而其中最有意思的一项技术就是在操作系统启动之前通过修改卷引导记录(VBR)来加载后门。接下来,我们会给大家详细分析一下这个Windows的0 day漏洞以及攻击者所使用的技术。
事件背景
2016年3月,一个以经济利益为目的的黑客团伙针对零售商、餐馆和酒店发动了多次具有针对性的网络钓鱼攻击。经过研究人员的分析,钓鱼邮件中包含嵌入了宏的恶意Word文档,当用户启用宏之后便会自动下载并执行恶意文件下载器(报告称其为PUNCHBUGGY)。
PUNCHBUGGY是一个DDL(动态链接库)文件下载器,具有32位和64位两种版本,它可以通过HTTPS获取额外代码。攻击者会通过这个下载器来与受感染的系统交互,并尝试感染同一网络环境下的其他系统。
FireEye发现北美地区已经有超过一百家企业成为了这种攻击的受害者。FireEye对其中多起事件进行了调查,并且发现攻击者利用了一个未知的提权漏洞和POS机内存提取工具(PUNCHTRACK)。
CVE-2016-0167:Windows系统的0 day提权漏洞
在某些攻击场景中,犯罪分子利用了一个此前未知的Windows提权漏洞有选择性地获取到了大量受感染设备的SYSTEM权限。

我们发现这个问题之后便立刻将漏洞信息上报给了微软,而微软也在2016年4月12日发布了相应的修复补丁(MS16-039)。
攻击者信息
我们认为利用会这个漏洞实施攻击的犯罪组织肯定是以经济利益为主要目的的攻击者。在去年,我们只发现有一个组织使用过这种类似的攻击技术和策略,而且也只有这一个组织使用过下载器PUNCHBUGGY和POS机恶意软件PUNCHTRACK。需要注意的是,PUNCHTRACK是通过一个高度混淆的启动器加载的,而且这个加载器不会在目标系统中保存。
这个黑客组织所进行的一般都是大规模攻击活动,不仅攻击速度非常快,而且效率也很高,他们会根据攻击目标来制定专门的漏洞利用代码,并通过前期侦查来修改发送给目标用户的钓鱼邮件。
漏洞利用细节
Win32k!xxxMNDestroyHandler Use-After-Free
CVE-2016-0167是一个存在于win32k Windows图形子系统中的本地提权漏洞,一个可以实现远程代码执行(RCE)的攻击者将能够利用这个漏洞来实现提权。首先,攻击者需要通过钓鱼邮件附件文档中的恶意宏来完成远程代码执行,然后下载并以STSTEM权限运行CVE-2016-0167的漏洞利用代码。
微软已经在2016年4月12日修复了漏洞CVE-2016-0167,所以攻击者的漏洞利用代码已经无法在已更新的系统中使用了。微软还在2016年5月10日发布了一个额外的更新(MS16-062),并进一步提升系统安全性以防止类似的攻击再次发生。
漏洞分析
首先,漏洞利用代码会调用CreateWindowEx()方法来创建一个主窗口,它会将WNDCLASSEX.IpfnWndProc域的内容传递给一个名叫WndProc的函数。接下来,这个函数会使用SetWindowsHookEx()和SetWinEventHook()方法来安装两个钩子,我们可以把这两个函数钩子称为MessageHandler和EventHandler,也就是消息处理器和事件处理器。
然后,漏洞利用代码会用SetTimer()创建一个计时器(IDEvent0x5678),当计时器timeout之后,WndProc会收到WM_TIMER信息并调用TrackPopupMenuEx()方法来显示一个快捷菜单。之前所设置的事件处理器(MessageHandler)将会从TrackPopupMenuEx()捕捉到EVENT_SYSTEM_MENUPOPUPSTART事件并将相应消息发送给内核。在处理消息的过程中,内核会调用包含漏洞的exxxMNDestroyHandler()函数,而这个函数将会调用内核模式的消息处理器回调函数,此时事件处理器在调用DestroyWindow()时将会触发用后释放(UAF)漏洞。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载