APP下载

APT使用的10类安全漏洞

2018-09-10刘锲

计算机与网络 2018年14期
关键词:攻击者补丁文档

刘锲

APT攻击,即:高级持续性威胁(Advanced Persistent Threat)是利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。APT攻击的原理相对于其他攻击形式更为高级和先进,其主要体现在精确的信息收集、高度的隐蔽性以及使用各种复杂的目标系统或应用程序漏洞等方面。

为了能够更加全面的了解全球APT研究的前沿成果,360威胁情报中心对APT攻击中最重要的部分(APT组织所使用的安全漏洞)进行了梳理,结合360威胁情报中心对APT攻击这类网络战的理解,筛选出近年来APT组织所使用的10类安全漏洞。

1.防火墙设备漏洞

防火墙作为网络边界设备,通常不属于攻击者攻击的目标,尤其在APT领域中针对防火墙设备的漏洞就更为少见,直到2016年第一批Shadow Broker泄露的工具中大量针对防火墙及路由设备的工具被曝光,某些组织多年来直接攻击边界设备的活动才被彻底曝光,此处我们选择CVE-2016-6366作为这类漏洞的典型代表。

(1)漏洞概述

2016年8月13日黑客组织ShadowBrokers声称攻破了为NSA开发网络武器的黑客团队Equation Group,并公开其内部使用的相关工具,EXBA-extrabacon工具,该工具基于0-day漏洞CVE-2016-6366,为Cisco防火墙SNMP服务模块的一处缓冲区溢出漏洞。

(2)漏洞详情

CVE-2016-6366(基于Cisco防火墙SNMP服务模块的一处缓冲区溢出漏洞),目标设备必须配置并启用SNMP协议,同时必须知道SNMP的通信码,漏洞执行之后可关闭防火墙对Telnet/SSH的认证,从而允许攻击者进行未授权的操作。

(3)补丁及解决方案

及时更新网络边界设备固件,软件厂商思科已经发布了漏洞相应的补丁:https://blogs.cisco.com/security/shadow-brokers。

2. SMB通信协议漏洞

SMB(Server MessageBlock)通信协议是微软和英特尔在1987年制定的协议,主要是作为Microsoft网络的通讯协议。2017年4月14日ShadowBrokers公布了之前泄露文檔中出现的Windows相关部分的文件,该泄露资料中包含了一套针对Windows系统相关的远程代码利用框架(涉及的网络服务范围包括SMB、RDP、IIS及各种第三方的邮件服务器),其中一系列的SMB远程漏洞0-day工具(EternalBlue,Eternalromance,Eternalchampoin和Eternalsynergy)之后被集成到多个蠕虫家族中,同年5月12日爆发的WanaCry当时就集成了EternalBlue。

(1)漏洞概述

EternalBlue工具使用了SMB协议中的三处漏洞,其中主体的越界内存写漏洞隶属于微软MS17-010补丁包中的CVE-2017-0144,通过该集成的工具,攻击者可以直接远程获取漏洞机器的控制权限。

(2)漏洞详情

EternalBlue中的核心了漏洞为CVE-2017-0144,该漏洞通过SMB协议的SMB_COM_TRANSACTION2命令触发,当其中的FEALIST字段长度大于10 000时将导致内存越界写,由于SMB_COM_TRANSACTION2命令本身FEA LIST的长度最大为FFFF,因此这里就涉及到第二处漏洞,即SMB_COM_ TRANSACTION2可被混淆为SMB_COM_NT_TRANSACT,从而实现发送一个FEA LIST字段长度大于10 000的SMB_COM_TRANSACTION2命令,实现越界写,最后通过第三个漏洞进行内存布局,最终实现代码执行。

(6)补丁解决方案

及时更新操作系统补丁,软件厂商微软已经发布了漏洞相应的补丁:https://docs.microsoft.com/zh-cn/security-updates/ Securitybulletins/2017/ms17-010。

3. Office OLE2Link逻辑漏洞

Office OLE2Link是微软办公软件(Office)中的一个重要特性,它允许Office文档通过对象链接技术在文档中插入远程对象,在文档打开时自动加载处理。由于设计不当,在这个处理过程中出现了严重的逻辑漏洞,而我们选择CVE-2017-0199为这类漏洞的典型代表。

(1)漏洞概述

2017年4月7日McAfee与FireEye的研究员爆出微软OfficeWord的一个0-day漏洞的相关细节(CVE-2017-0199)。攻击者可以向受害人发送一个带有OLE2link对象附件的恶意文档,诱骗用户打开。当用户打开恶意文档时,Office OLE2Link机制在处理目标对象上没有考虑相应的安全风险,从而下载并执行恶意HTML应用文件(HTA)。

(2)漏洞详情

CVE-2017-0199利用了OfficeOLE2Link对象链接技术,将恶意链接对象嵌入在文档中,之后调用URL Moniker将恶意链接中的HTA文件下载到本地,URLMoniker通过识别响应头中content-type的字段,最终调用mshta.exe执行HTA文件中的攻击代码。

在影响面方面,CVE-2017-0199几乎影响了所有版本的Office软件,是历来Office漏洞中影响面最广的漏洞之一,并且易于构造,触发稳定,这使得其在2017年的BlackHat黑帽大会上被评为“最佳”客户端安全漏洞。

(3)补丁及解决方案

尽量不要打开来源不明的文档,也可以使用360安全卫士之类的防病毒软件对文档进行扫描后再打开以尽可能降低风险,如果有条件尽量使用虚拟机打开陌生文档。

微软已经发布了漏洞相应的补丁:

https://portal.msrc.microsoft.com/en-US/security-guidance/ advisory/CVE-2017-0199;

https://portal.msrc.microsoft.com/en-US/security-guidance/ advisory/CVE-2017-8570。

4. Office公式编辑器漏洞

Microsoft公式编辑器(EQNEDT32.EXE),该组件首发于Microsoft Office 2000和Microsoft 2003,以用于向文档插入和编辑方程式,虽然从Office 2007之后,方程式相关的编辑发生了变化,但为了保持版本的兼容性,EQNEDT32.EXE本身也没有从Office套件中删除。而该套件自17年前编译之后就从未被修改,这就意味着其没有任何安全机制(ASLR,DEP,GS cookies…)。并且由于EQNEDT32.EXE进程使用DCOM方式启动而独立于Office进程,从而不受Office高版本的沙盒保护,所以该类漏洞具有天生“绕过”沙盒保护的属性,危害巨大。此处我们选择该组件下发现的第一个漏洞CVE-2017-11882作为该类漏洞的典型。

(1)漏洞概述

2017年11月14日,Embedi发布博文《Skeletonin the closet. MS Office vulnerability you didnt know about》,该文章就EQNEDT32.EXE中出现的CVE-2017-11882漏洞的发现和利用进行了分析,CVE-2017-11882为公式Font Name字段解析时的缓冲区溢出漏洞,通过构造带有非法公式的Doc/RTF文档,可导致代码执行。

(2)漏洞详情

CVE-2017-11882为一处栈溢出漏洞,其Font Name字段最终会导致栈溢出,返回地址被覆盖为00430c12,该地址指向 WinExe函数,父函数第一个参数正好指向构造字符,从而导致WinExe执行构造字符中的命令。

(3)补丁及解决方案

个人用戶下载打开来源不明的文档需要非常谨慎,可用360安全卫士之类的防病毒木马流氓软件的工具进行扫描以尽可能降低风险,如果有条件尽量使用虚拟机打开陌生文档。

微软已经发布了漏洞相应的补丁:

https://portal.msrc.microsoft.com/en-US/security-guidance/ advisory/CVE-2017-11882;

https://portal.msrc.microsoft.com/en-US/security-guidance/ advisory/CVE-2018-0802;

https://portal.msrc.microsoft.com/en-US/security-guidance/ advisory/CVE-2018-0798。

5. OOXML类型混淆漏洞

OOXML是微软公司为Office2007产品开发的技术规范,现已成为国际文档格式标准,兼容前国际标准开放文档格式和中国文档标准“标文通”,Office富文本中本身包含了大量的XML文件,由于设计不当,在对其中的XML文件进行处理的时候,出现了严重的混淆漏洞,最典型的包括CVE-2015-1641,CVE-2017-11826,这里我们选择近年来最流行的OOXML类型混淆漏洞CVE-2015-1641作为典型代表。

(1)漏洞概述

2015年4月,微软修补了一个CVE编号为CVE-2015-1641的Office Word类型混淆漏洞。OfficeWord在解析Docx文档displacedByCustomXML属性时未对customXML对象进行验证,造成类型混淆,导致任意内存写,最终经过精心构造的标签以及对应的属性值可以造成远程任意代码执行。这是第一个利用成功率非常高且被APT组织频繁使用的OOXML类型混淆漏洞。

(2)漏洞详情

CVE-2015-1641中,由于OfficeWord没有对传入的custom XML对象进行严格的校验,导致可以传入比如smartTag之类的对象,然而smartTag对象的处理流程和customXML并不相同,如果customXML标签被smartTag标签通过某种方法混淆解析,那么smartTag标签中的element属性值会被当作是一个地址,随后经过简单的计算得到另一个地址。最后处理流程会将moveFromRangeEnd的id值覆盖到之前计算出来的地址中,导致任意内存写入。然后通过写入可控的函数指针,以及通过Heap Spray精心构造内存布局,最终导致代码执行。

(6)补丁及解决方案

个人用户下载打开来源不明的文档需要非常谨慎,可用360安全卫士之类的防病毒木马流氓软件的工具进行扫描以尽可能降低风险,如果有条件尽量使用虚拟机打开陌生文档。

微软已经发布了漏洞相应的补丁:

https://portal.msrc.microsoft.com/en-US/security-guidance/ advisory/CVE-2017-8570。

6.脚本解析漏洞EPS(EncapsulatedPost Script)

EPS全称EncapsulatedPost Script,属于Post Script的延伸类型,适用于在多平台及高分别率输出设备上进行色彩精确的位图及向量输出,因此在Office中也引进了相应的支持,但是自2015年起多个Office中EPS相关的漏洞被利用,其中包括CVE-2015-2545,CVE-2017-0261,CVE-2017-0262,最终导致微软不得不禁用Office中的EPS组件,此处们选择以CVE-2017-0262作为典型代表。

(1)漏洞概述

2017年5月7日FireEye研究员在文章《EPSProcessing Zero-Days Exploited by Multiple Threat Actors》中披露了多个EPS0-day漏洞的在野利用,其中就包含CVE-2017-0262,CVE-2017-0262为ESP中forall指令中的一处漏洞,由于forall指令对参数校验不当,导致代码执行。

(2)漏洞详情

CVE-2017-0262的利用样本中首先对实际的EXP进行了四字节的xor编码,key为c45d6491。

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

(3)补丁及解决方案

个人用户下载打开来源不明的文档需要非常谨慎,可用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漏洞利用代码首先会创建三个Popup Menus,并添加相应的菜单。由于该UAF漏洞出现在内核的WM_NCDESTROY事件中,并会覆盖wnd2的tagWnd结构,这样可以设置bServerSideWindowProc标志。一旦设置了bServer Side Window Proc,用户模式的WndProc过程就会被视为内核回调函数,所以会从内核上下文中进行调用。而此时的WndProc则被攻击者替换成了内核ShellCode,最终完成提权攻击。

(3)补丁及解决方案

个人用户下载打开来源不明的文档需要非常谨慎,可用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安全机制陆续出炉(如隔离堆,vectorlength检测),大大提高了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进行站位。

(3)补丁及解决方案

个人用户下载打开来源不明的文档需要非常谨慎,可用360安全卫士之类的防病毒木马流氓软件的工具进行扫描以尽可能降低风险,如果有条件尽量使用虚拟机打开陌生文档。

adobe已经发布了漏洞相应的补丁:

https : / /help x.adob e.com/security/products/flash-player/ apsb18-03.html;

https : //helpx.adobe .com/security/products/flash-player/ apsb17-32.html。

9. iOS三叉戟漏洞

iOS三叉戟漏洞是目前唯一一个公开披露的针对iOS系统浏览器的远程攻击实例,并真实用于针对特点目标的APT攻击中。

(1)漏洞概述

iOS三叉戟漏洞是指针对iOS9.3.5版本之前的iOS系统的一系列0-day漏洞,其利用了3个0-day漏洞,包括一个 WebKit漏洞,一个内核地址泄露漏洞和一个提权漏洞。通过组合利用三个0-day漏洞可以实现远程对iOS设备的越狱,并且安装运行任意恶意代码。

(2)漏洞详情

iOS三叉戟漏洞利用载荷可以通过访问特定的URL触发,所以可以通过短信、邮件、社交网络或者即时通讯等发送恶意链接诱导目标人员点击打开链接实现漏洞的触发。由于WebKit JavaScript Core库存在任意代码执行漏洞,当Safari浏览器访问恶意链接并触发恶意的JavaScript载荷执行,其利用代码进入Safari Web Content进程空间。其随后利用另外两个漏洞实现权限提升,并越狱掉iOS设备。最后三叉戟漏洞可以实现下载和运行用于持久性控制的恶意模块。

(3)补丁及解决方案

苹果公司在2016年8月25日发布iOS 9.3.5,修补了三叉戟漏洞。

10.Android浏览器remote2local漏洞利用

该Android浏览器漏洞利用代码的泄露揭示了网络军火商和政府及执法机构利用远程攻击漏洞针对Android用户的攻击和监控,并且该漏洞利用过程实现几乎完美,也体现了漏洞利用技术的“艺术特点”。该漏洞利用代码几乎可以影响当时绝大多数主流的Android设备和系统版本。

(1)漏洞概述

Android浏览器remote2local漏洞利用是2015年7月Hacking Team遭受入侵并泄露內部源代码资料事件后,其泄露源代码中包含了针对Android 4.0.x-4.3.x系统版本的浏览器的攻击利用代码,其可以达到远程代码执行,并执行提权代码提升至root权限,最后达到静默安装恶意程序的目的。

该漏洞利用的组合了GoogleChrome的三个N-day漏洞和针对Android系统的提权漏洞完成完整的利用攻击过程。

(2)漏洞详情

该Android浏览器漏洞利用主要因为WebKit中关于XML语言解析和XSLT转换的libxslt库,其利用过程实际上是基于多个漏洞的组合利用过程。其首先利用一个信息泄露漏洞获取内存地址相关信息,并利用内存任意读写构造ROP攻击最终实现执行任意代码的目的。其最后执行提权代码,该漏洞利用中使用的提权漏洞为CVE-2014-3153,其产生于内核的Futex系统调用。当提权获得root权限以后,执行静默安装恶意APK应用。

(5)补丁及解决方案

Google在发布的Android4.4系统版本中已经修复了上述问题。

猜你喜欢

攻击者补丁文档
基于贝叶斯博弈的防御资源调配模型研究
浅谈Matlab与Word文档的应用接口
补丁
有人一声不吭向你扔了个文档
轻松编辑PDF文档
人生的补丁
正面迎接批判
Word文档 高效分合有高招
高效为上补丁下载安装不走寻常路
软件生病有补丁 补丁生病怎么办?