漏洞的关键点在于以下一行的代码,在EPS中forall指令会对第一个参数中的每一个对象执行处理函数proc(即第二个参数),此处由于对第二个参数的类型判断不严格,导致0xD80D020这个攻击者之前通过堆喷控制的内存地址被作为处理函数的地址,从而esp堆栈被控制,致使最后的代码执行:

3) 相关CVE
CVE编号
漏洞说明
CVE-2015-2545
UAF漏洞
CVE-2017-0261
Save,restore指令中的UAF漏洞
CVE-2017-0262
forall参数类型校验不严格导致代码执行
4) 相关APT组织
由于EPS漏洞本身利用难度较大,且EPS自Office 2010之后就处于沙箱中隔离执行,因此往往还需要提权漏洞辅助,因此该系列漏洞的使用者往往是知名的大型APT组织。
相关APT组织
CVE编号
未披露
CVE-2015-2545
Turla
CVE-2017-0261
APT28
CVE-2017-0262
5) 相关APT事件
APT28组织通过发送鱼叉邮件(CVE-2017-0262/CVE-2017-0263)攻击影响法国大选,邮件为附件为一个名为Trump’s_Attack_on_Syria_English.docx的Office文件,导致当时马克龙竞选团队多达9G的数据被上传到外网。

6) 补丁及解决方案
个人用户下载打开来源不明的文档需要非常谨慎,使用360安全卫士之类的防病毒木马流氓软件的工具进行扫描以尽可能降低风险,如果有条件尽量使用虚拟机打开陌生文档。
软件厂商微软已经发布了漏洞相应的补丁:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2015-2545
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-0261
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-0262
7. Windows提权漏洞
近年来针对Windows客户端的漏洞攻击越来越多,这直接导致各大厂商对其客户端软件引入了“沙盒”保护技术,其核心思想即是将应用程序运行在隔离环境中,隔离环境通常是一个低权限的环境,也可以把沙盒看做是一个虚拟的容器,让不是很安全的程序在运行的过程中,即便客户端软件遭受恶意代码的入侵也不会对使用者的计算机系统造成实际威胁。
引入了“沙盒”保护的常客户端程序有:IE/Edge浏览器、Chrome浏览器、Adobe Reader、微软Office办公软件等等。而客户端程序漏洞如果配合Windows提权漏洞则可以穿透应用程序“沙盒”保护。
1) 漏洞概述
在对Office办公软件的EPS(EncapsulatedPost Script)组件进行漏洞攻击的过程中,由于Office 2010及其高版本上的EPS脚本过滤器进程fltldr.exe被保护在低权限沙盒内,要攻破其中的低权限沙盒保护措施,攻击者就必须要使用远程代码执行漏洞配合内核提权漏洞进行组合攻击。所以我们选择Win32k.sys中的本地权限提升漏洞(CVE-2017-0263)这一个配合EPS类型混淆漏洞(CVE-2017-0262)进行组合攻击的提权漏洞作为典型代表。
2) 漏洞详情
CVE-2017-0263漏洞利用代码首先会创建三个PopupMenus,并添加相应的菜单。由于该UAF漏洞出现在内核的WM_NCDESTROY事件中,并会覆盖wnd2的tagWnd结构,这样可以设置bServerSideWindowProc标志。一旦设置了bServerSideWindowProc,用户模式的WndProc过程就会被视为内核回调函数,所以会从内核上下文中进行调用。而此时的WndProc则被攻击者替换成了内核ShellCode,最终完成提权攻击。
3) 相关CVE
CVE编号
漏洞说明
CVE-2015-2546
Win32k内存损坏特权提升漏洞
CVE-2016-7255
Win32k本地权限提升漏洞
CVE-2017-0001
Windows GDI权限提升漏洞
CVE-2017-0263
Win32k释放后重用特权提升漏洞
4) 相关APT组织
相关APT组织
CVE编号
未披露
CVE-2015-2546
Turla
CVE-2016-7255、CVE-2017-0001
APT28
CVE-2017-0263
5) 相关APT事件
针对日本和台湾的APT攻击以及APT28针对法国大选等攻击事件。
6) 补丁及解决方案
个人用户下载打开来源不明的文档需要非常谨慎,使用360安全卫士之类的防病毒木马流氓软件的工具进行扫描以尽可能降低风险,如果有条件尽量使用虚拟机打开陌生文档。
软件厂商微软已经发布了漏洞相应的补丁:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2015-2546
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2016-7255
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-0001
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-0263
8. Flash漏洞
Flashplayer因为其跨平台的普及性,一直为各个APT组织关注,从2014年起,Flash漏洞开始爆发,尤其到2015年,HackingTeam泄露数据中两枚0-day漏洞CVE-2015-5122/CVE-2015-5199,Flash漏洞相关的利用技术公开,Flash漏洞开始成为APT组织的新宠,尽管之后Adobe和Google合作,多个Flash安全机制陆续出炉(如隔离堆,vector length检测),大大提高了Flash漏洞利用的门槛,但也不乏出现CVE-2015-7645这一类混淆漏洞的怪咖。这里我们选择不久前发现的在野0-day CVE-2018-4878作为这类漏洞的典型代表。
1) 漏洞概述
2018年1月31日,韩国CERT发布公告称发现Flash0day漏洞(CVE-2018-4878)的野外利用,攻击者通过发送包含嵌入恶意Flash对象的Office Word附件对指定目标进行攻击。
2) 漏洞详情
CVE-2018-4878通过Flash om.adobe.tvsdk包中的DRMManager对象进行攻击,如下代码所示,triggeruaf函数中创建一个MyListener对象实例,通过initialize进行初始化,并将该实例设置为null,之后的第一个LocalConnection().connect()会导致gc回收该实例内存,第二次LocalConnection().connect()时触发异常,在异常处理中会创建一个新的MyListener实例,内存管理器会将之前MyListener对象实例的内存分配给新对象,即此处的danglingpointer,设置timer,在其回调函数中检测uaf是否触发,成功则通过Mem_Arr进行站位:
[4]
(责任编辑:admin) |