上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

360:2017年度安全报告––应用漏洞(37页)(37页).pdf

编号:25139 PDF 37页 9.41MB 下载积分:免费下载
下载报告请您先登录!

360:2017年度安全报告––应用漏洞(37页)(37页).pdf

1、360 Computer Emergency Readiness Team, February 2018 文中部分信息直接参考外部文章(见参考),如有侵权或异议请联系 2017 年度安全报告 应用漏洞 Struts2 S2-045/S2-046 漏洞 Struts2 S2-052 漏洞 DotNetNuke CVE-2017-9822 漏洞 IIS 6.0 WebDAV CVE-2017-7269 漏洞 FFmpeg 安全问题 Nginx CVE-2017-7529 漏洞 Cisco WebEx CVE-2017-6753 漏洞 Git ssh CVE- 漏洞 CVE-

2、2017-16943 Exim-UAF 漏洞 Application Vulnerabilities 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 20182 应用程序作为计算机服务的直接提供者,其存在是不可或缺的。除了传统的 CS 应用之外还出现了 各种的 web 应用,相应的还有提供 web 服务的各类 web 容器。应用是广泛的存在于我们的日 常生活中的,如若其中出现了漏洞,将可能直接影响业务的正常运作。本文是 360CERT 对 2017 年应用漏洞的总结。 Application Vulnerabili

3、ties 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 20183 漏洞情况 统计出 2017 年,漏洞最多的 50 个产品,其中系统类 20 个,应 用类 30 个。可以看到漏洞最多的是 Android,Linux Kernel, Iphone OS,分别 841,435,387 枚漏洞。 筛选出应用类产品漏洞 top10,大多来自 Adobe,Microsoft, Apple ,Google 和开源社区的产品。排在首位的是 Image- Magick, 大多数都是文件解析及编辑器方面的漏洞, 多达 357 枚

4、, 大部分是本地 DOS 和溢出,危害低且利用难度大。这也反映了整 体现象:漏洞多,但是价值高的可利用漏洞太少。 简单的说,评判漏洞有三个维度:应用的使用量,漏洞的利用难度, 漏洞造成的危害。接下来,对 2017 年有价值的应用漏洞进行详细 分析。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 20184 2017 年披露的有价值应用漏洞进行梳理 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 20185 2017 年 3 月 6 日

5、,Struts2 发布 了关于 S2-045 的漏洞公告,提 及到可以通过构造好的 Content- Type 值来实现远程代码执行攻 击,影响的版本为 Struts2 2.3.5 - Struts2 2.3.31,Struts2 2.5 - Struts2 2.5.10。由于在默认的情 况下便可触发漏洞,并且有人发出 了可以实现命令执行的 Payload 导致该漏洞的影响不仅广而且利 用成本低,从一些 SRC 平台上对 该漏洞的提交情况也可以看出这 一点。随后在 20 日出来的 S2- 046 是在 S2-045 的基础上还存 在其它的触发点。由于该漏洞造成 的影响非常广,在这里进行回顾。

6、Struts2 S2-045/S2-046 漏洞 Struts2 及漏洞相关背景 Apache Struts2 是一个用于开发 Java EE 网络应用程序的 开放源代码网页应用程序架构。它利用并延伸了 Java Servlet API,鼓励开发者采用 MVC 架构。缘起于 Apache Struts 的 WebWork 框架,旨在提供相对于 Struts 框架的增强和改进,同 时保留与 Struts 框架类似的结构。2005 年 12 月,WebWork 宣布 WebWork 2.2 以 Apache Struts2 的名义合并至 Struts。 由于 Struts2 中的 OGNL 引擎功

7、能比较强大,可通过其来访问 Java 对象的成员变量或方法,如果输入点可控便会造成安全问题。 尽管 Struts2 也有安全管理器来避免通过 OGNL 来执行命令等一 些危险的操作,但是该安全管理器也是一次又一次的被绕过。 漏洞细节 借助 JavaAgent 来查看漏洞利用过程的调用栈 可以看到大体的流程为 : FileUploadInterceptor.intercept() - LocalizedTextUtil. findText() - LocalizedTextUtil.getDefaultMessage() - TextParseUtil.translateVariables()

8、- OgnlTextParser. evaluate() 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 20186 使用 JavaAgent 来查看调用栈的好处在于只有 payload 和 漏洞环境的情况下就可以大致知道漏洞的利用过程,方便接下 来做动态分析。下面再使用动态分析的方式来跟一下漏洞利用 的 整 个 过 程,struts2 会 在 StrutsPrepareFilter 过 滤 器 中 将 HttpServletRequest 请 求 封 装 成 StrutsRequestWrapper 或 是 Mu

9、ltiPartRequestWrapper。 而 这 个 漏 洞 就 是 发 生 在 对 MultiPart 请 求 的 处 理 上, 在 StrutsPrepareFilter 类 中 的 doFilter 方法中下断点即可。对于这里 Get 或是 Post 请求都是一 样的 在这个方法中可以看到它是通过请求头中 Content-Type 的 值中是否包含“multipart/form-data”来决定该请求是否为 MultiPart 请求,这也是为什么 payload 在 Content-Type 中需 要包含“multipart/form-data”的原因,同时也说明了在利用的 时候并不

10、需要去构造一个上传文件的包了,只需要在请求中修改 Content-Type 的值包含“multipart/form-data”就行。接着通 过 getMultiPartRequest 方法来获取 MultiPart 请求的处理类。 往下跟会进入 wrapRequest 方法 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 20187 可以看到该方法从容器中获取了名字为 multipartHandlerName 的 值 的 一 个 实 例 来 作 为 处 理 器。 而 multipartHandlerName 的 值

11、 来 自 于 配 置 中 的 struts.multipart.parser 的 值, 该 值 默 认 为”jakarta“, 也 就 是 说 最 终 获 取 到 的 是 一 个 JakartaMultiPartRequest类的实例, 而问题就是出现在该类中, 这也解释了为啥这个漏洞能影响这么大,因为在默认的情况下就可 以被利用。 继续往下跟的时候会进入 JakartaMultiPartRequest 类中的 parseRequest 方法,再跟入 FileItemIteratorImpl 类中的构造方 法 2017 年度安全报告应用漏洞 360 Computer Emergency Rea

12、diness Team, February 20188 可 以 看 到 这 里 有 一 个 对 ContentType 的 值 得 判 断, 要 不 是 以“multipart/” 开 头 的 话 便 会 抛 出 一 个 InvalidContentTypeException 的 异 常, 跟 下 去 看 它 对 这 里的异常信息是如何处理的,因为这个异常信息里是包含着 Content-Type 的值的,也就是说里面包含着 payload 中构 造好的 OGNL 表达式。再往下跟直到 OGNL 表达式执行就 是一开始通过 JavaAgent 看到的调用栈中的过程了,看一下 translateV

13、ariables 方法: 会通过以 $ 或是 % 字符开头来提取出真正的表达式,所以在 payload 中使用 $ 来写一样是可以的。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 20189 S2-046 是在 S2-045 的基础上的,触发流程一样,触发点不一 样了。在 Streams 类中的 checkFileName 方法会对文件名进行 检查,若是包含空字节的话会抛出 InvalidFileNameException 异 常 其中异常信息含有完整的文件名,这里的异常信息也经过了和 S2-045 一样的处理

14、,也就是说文件名中的 OGNL 表达式也会 被执行。针对该漏洞的利用只需要在模拟文件上传时在 Content- Disposition 的 filename 中加入空字节,并将 OGNL 表达式写到 filename 就好 S2-046 还有一个触发方式是 Content-Length 长度超过 2M,但是这种触发需要配置 struts.multipart.parser 为 jakarta-stream 才行。 Struts2 的安全问题层出不穷,它的漏洞往往影响比较大,同时漏 洞点也经常会别人吐槽。若不是业务必要应该使用安全性更好的框 架来替代它。同时也可以由此去考虑一些别的框架在使用语言表

15、达 式的时候是否会存在一些类似的安全性问题。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201810 Struts2 S2-052 漏洞 漏洞相关背景 Xstream 是一个 Java 类库,用来将对象序列化成 XML 或者通 过 XML 反序列化为对象。Struts2 启用了 rest-plugin 后接收到 XML 格式数据时会使用 XStreamHandler 来处理,也就是通过 XML 反序列化为对象。若 XML 为利用 Gadget 构造好的恶意数 据,在反序列化的过程中可以导致远程代码执行。 漏洞

16、细节 文件 /org/apache/struts2/rest/ContentTypeInterceptor.java 在struts2 rest-plugin 中的处理逻辑里接受到对应格式的消息时, 会调用已经注册的对应 handler 的 handler.toObject 方法对其进 行实例化,在这里传入的 xml 消息,所以就会跳转到已经定义的 XStreamHandler 的 toObject 方法 2017 年 9 月 5 日,Apache Struts 发 布 最 新 安 全 公 告, Apache Struts2 的 REST 插件 存在远程代码执行的高危漏洞, 该漏洞由 的安全研

17、究员 汇报,漏洞编号为 CVE-2017- 9805(S2-052)。Struts2 REST 插件的 XStream 组件存 在反序列化漏洞,使用 XStream 组件对 XML 格式的数据包进行反 序列化操作时,未对数据内容进行 有效验证,存在安全隐患,可被远 程攻击。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201811 在经过此处的 fromXML 方法后导致实例化的恶意对象被执行, 导致恶意代码执行 随即看到计算器被成功弹出 这个漏洞应该是 s2 的官方插件中首次受到 xml 序列化的影响, 而反

18、观之前早已有许多的 php 反序列化和 python 反序列化以及 java 自身的反序列化的问题存在,而过去的这些漏洞应该早已为 我们敲响了序列化这个行为的警钟,对数据进行序列化,势必需要 完整且严密的校验,而这个插件中对传入数据直接进行操作的,明 显开发者没有对这块数据的安全性和合法性产生过重视行为,我们 建议开发者子在开发的时候要基于一切用户输入都是不可信的原则 进行过滤和相应的校验, 这样才能有效的避免一些明显的安全问题。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201812 漏洞相关背景 XmlS

19、erializer 是 .net 中用于在对象和 XML 文档之间进行序列化 和反序列化操作的类,其功能和 Java 中的 Xstream 是一样的, 但是由于语言的特性不一样,它们对序列化和反序列化的实现方式 也是不一样的。所以即使是同样的对 XML 数据反序列化利用,它 们的自动触发和利用方式是不一样的。 漏洞细节 PersonalizationController.cs 66-72 行: 从 Cookie 中 获 取 到 DNNPersonalization 的 值 后 再 传 给 Globals 中的 DeserializeHashTableXml 方法。 Globals.cs 368

20、7-3690 行: 2017 年 7 月 份 的 BlackHat 上 Alvaro Muoz (pwntester)和 Oleksandr Mirosh 的议题中讲述 了在 .net 中使用 JSON 来进行序 列化和反序列存在的一些安全问 题,同时也提及到了另外的一种格 式 XML, 用 到 了 DotNetNuke 中的一处反序列漏洞来做例子。 通过对该漏洞的分析来了解针对 XML 格式反序列化在 .net 中的利 用方式。 DotNetNuke CVE-2017-9822 漏洞 再跟进 XmlUtils 中的 DeSerializeHashtable 方法。 XmlUtils.cs 1

21、84-218 行: 这个方法会使用 item 元素中的 type 属性值来设置类型,并且会 在 208 行这里将该元素的内容进行反序列化,这里便是漏洞的触 发点了。漏洞代码中从可控输入点到最终可利用处的这个过程还是 比较直观的,接下来是针对像这样使用了 XmlSerializer 来反序列 化的漏洞点进行攻击利用分析。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201813 利用分析 XmlSerializer 在对一个类进行序列化或者反序列化的时候都需要 传入该类的类型信息。 先修改下上面的 TestCla

22、ss 类,对其中的成员变量 test 进行封装。 这时候再去观察代码在反序列化时的输出,可以明显知道 setter 被自动调用了,因此 setter 便可以作为利用链的第一步。接下来 就是要去找一些可以被用作攻击使用的类了。 System.Windows.Data.ObjectDataProvider 可以调用任意在 运行时被引用的类的任意方法。一个例子: 相 当 于 调 用 了 TestClass.FuncExample(“JustATest!”), ObjectDataProvider 中的成员变量都进行了封装的,并且每次 调用了 setter 后都会检测参数是否足够,足够了的话便会自动去

23、 调用传入的方法。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201814 其中的过程借用 BlackHat 议题中的一张图来展示。 如此一来要是被序列化的是一个 ObjectDataProvider 类,那么 在反序列的时候便可以做到任意方法调用的效果。再找一个存在 能达到想要的利用效果的方法的类就行了,例如 DNN 中的就存在 一个可以做到任意文件上传效果的类,DotNetNuke.Common. Utilities.FileSystemUtils 中的 PullFile 方法: 总结 在 2015 年和

24、 2016 年间 Java 反序列化漏洞造成的影响非常广而 且威力大引起了人们对该类型漏洞的重视,相对于常见的字符串和 二进制的序列化数据格式,同样我们亦应该关注其它格式的序列化 和反序列化会存在的安全问题,不一样的处理方式意味着可能存在 不一样的利用方法。值得一提的是今年 F5 威胁研究人员发现该漏 洞同 S2-045/046 一起被用到名为 Zealot 的攻击中去。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201815 漏洞相关背景 虽然微软于 2015 年 7 月 14 日停止了对 IIS6.0 的

25、更新支持, 但 在 国 内 仍 然 有 大 量 用 户, 微 软 在 2017 年 6 月 13 推 出 了 相 关 Windows Server 2003 补 丁。 在 2017 年 4 月 14 日 ShadowBrokers 更新的 NSA 黑客工具中,Explodingcan 便是 相关开启了WebDAV服务的Windows 2003 IIS 6.0攻击程序。 WebDAV 是一种基于 HTTP 1.1 的通信协议。扩展了 HTTP1.1, 添加了新的方法,使应用程序可对 WebServer 直接读写,攻击 关键使用的方法 PROFIND,用于返回指定目录的内容。 漏洞细节 漏洞点:

26、qmemcpy 在进行拷贝处理时,没有对长度进行检查,导致溢出 2017 年 3 月 27 日, 来 自 华 南 理工的 zhiniang Peng 和 Chen Wu 在 Github 上公开了一份对 开启了 WebDAV 服务的 IIS6.0 的攻击代码,漏洞编号为 CVE- 2017-7269。并表示在 2016 年 7 月和 8 月份发现该漏洞在野外利 用。 IIS 6.0 WebDAV CVE-2017-7269 漏洞 漏洞触发流程: 对漏洞函数 ScStoragePathFromURL 打断点,并查看栈回 溯。可以发现调用栈中的 DAVPropFind。对 Execute 成员 函

27、数进行分析,调用了 HrCheckStateHeaders,进而调用 HrCheckIfHeader 在 qmemcpy( 其中使用正则: 进行检查,这里的正则并不是十分严格,可以轻松绕过。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201827 verify() 最 后 再 使 用 /.dll$|.bundle$|.app$/ 正 则 以 及 白 名 单 whiteList对GpcComponentName进行检查, 白名单内容如下: 通过白名单之后使用 postMessage: 最后全部检查完毕就调用 s

28、endGoogleAnalyticMessage 发送消 息: 接下来看看 TriggerExploit: GpcComponentName 中我们调用 msvcr100.dll,这个 dll 并 不存在于白名单中,输入的 Message 进入 sendMessage 中的 verify 中: 在解析之前我们看到: 解析之后: 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201828 进入 GpcInitCall 进入 verifyScriptCall 检查: 因为 verifyScriptCall 存在缺陷,

29、GpcInitCall 中的内容在经过 verifyScriptCall 检查后,仍然如下: base64 解码后: 最后白名单检查时,因为存在两个 GpcComponentName,其 中第一个为 atmccli.dll,所以可以通过白名单: 进入 postMessage 的 message 中: 最后可以通过_wsystem(ObjectAddress)的方式成功执行命令。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201829 总结 该 Cisco WebEx 的漏洞主要是由 Web 插件中 JavaS

30、cript 代码 针对 json 解析问题以及黑名单过滤不完整导致页面传入的非法数 据,最终在客户端上的命令执行问题。 浏览器是用户日常使用中频率最高的软件之一,而浏览器上插件的 安全性直接影响浏览器的安全。我们之后也将会持续关注浏览器插 件相关的安全性问题。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201830 Git ssh CVE- 漏洞 漏洞相关背景 git 是一个分布式版本控制软件,最初由林纳斯托瓦兹(Linus Torvalds)创作,于 2005 年以 GPL 发布。最

31、初目的是为更好地 管理 Linux 内核开发而设计。应注意的是,这与 GNU Interactive Tools(一个类似 Norton Commander 界面的文件管理器)有 所不同。 git 最初的开发动力来自于 BitKeeper 和 Monotone。git 最初只 是作为一个可以被其他前端(比如 Cogito 或 Stgit)包装的后端 而开发的,但后来 git 内核已经成熟到可以独立地用作版本控制。 很多著名的软件都使用 git 进行版本控制,其中包括 Linux 内核、 X.Org 服务器和 OLPC 内核等项目的开发流程。 Secure Shell(安全外壳协议,简称 SSH

32、)是一种加密的网络传 输协议,可在不安全的网络中为网络服务提供安全的传输环境。 SSH 通过在网络中创建安全隧道来实现 SSH 客户端与服务器之 间的连接。虽然任何网络服务都可以通过 SSH 实现安全传输, SSH 最常见的用途是远程登录系统,人们通常利用 SSH 来传输 命令行界面和远程执行命令。使用频率最高的场合类 Unix 系统, 但是 Windows 操作系统也能有限度地使用 SSH。2015 年,微 软宣布将在未来的操作系统中提供原生 SSH 协议支持。 在设计上,SSH 是 Telnet 和非安全 shell 的替代品。Telnet 和 Berkeley rlogin、rsh、re

33、xec 等协议采用明文传输,使用不可靠 的密码,容易遭到监听、嗅探和中间人攻击。SSH 旨在保证非安 全网络环境(例如互联网)中信息加密完整可靠。 这两者都是互联网中最被广泛使用的软件,git 的一部分 ssh 协议 的处理会交给本地的 ssh 来处理,而 ssh 这个软件本身是支持传 入一定的命令进行执行。 漏洞细节 该漏洞主要由于 SSH 链接在 hostname 部分,若是用“-”开头, 那么会导致 ssh 命令将 hostname 误认为这是一个选项。因此, 我们可以利用 “-oProxyCommand” 选项来达到命令执行的目的。 在进行 git clone 时候会调用到 git/c

34、onnect.c 中“struct child_ process git_connect(int fd2, const char url,const char *prog, int flags)” 函 数。 其 接 受 到 的 参 数 url 为 命 令 中“git clone xxx:/xxxxxxxxxx/xx(.git)” 的 xxx:/xxxxxxxxxx/xx(.git) 部分。在该函数中会对传入的这个字符串进行 parse,提取其协 议部分。在满足协议为 ssh:/ 的时候会进入该函数的 else 部分。 在 2017 年 8 月 10 日 Junio C Hamano 在 邮 件

35、 组 www.mail- 发布了这一问题。 恶意攻击人员可以通过巧妙构造 “ssh:/.”链接,让受害人在执 行 git 程序等情况下访问该恶意 链接,从而达到命令执行的目 的。该链接可以被放在 git 项目的 .gitmodules 文件下,这样当受 害人对一个项目进行“git clone -recurse-submodules”操 作时,就会引发严重安全问题。 漏 洞 影 响 包 括 但 不 限 于 Git, SVN,CVS,HG,Gitlab, GithubDesktop,SourceTree 等。 2017 年度安全报告应用漏洞 360 Computer Emergency Readi

36、ness Team, February 201831 然后根据下面的流程调用本地的 ssh 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201832 首先获得本地的 ssh 路径,然后 push 进 conn-args 然后获得 url 中 ssh_host 部分再拼接路径 最后调用 start_command 函数进行命令执行 start_command 的定义在 git/run-command.c int start_command(struct child_process *cmd) 将传入的 cmd 经

37、过处理赋值给 argv 经过 execve 这个函数进行命令执行,但是在这个这个命令执行 的内容是 /usr/bin/ssh ssh_host path ssh -oProxyCommand=gnome-calculator xxx 将会在本地打 开 gnome 的计算器 所以如果我们在 clone 操作的时候将连接指定为 git clone ssh:/- oProxyCommand=gnome-calculator/cert 将取得同样的命令 执行的效果 总结 Git ssh 命令注入漏洞核心的原因在于在对 hostname 进行 parser 的过程中存在一定的异议 , 也就导致会可以向本

38、地的 ssh 软体注入一定的参数来执行命令,而和 submodule 的结合 , 更是 提供了更为广泛的攻击面。关于 parser 尤其是会和其他软体进行 交互的处理应该进行更为严格的过滤,遵从一切用户输入都是有 害的不可信的原则进行处理 . 在 2017 的 BlackHat 更是提出了 url parser 在各个语言中存在着的问题,parser 这种接受用户输入作 为主要功能实现的点尤其值得我们进行关注,因为完全由用户输入 作为主要依据来进行功能的选择,但值得庆幸的是,通过这些事件 和报告后,无论是开发人员,还是安全人员都对这些方面投入了更 多的精力去思考去完善。 2017 年度安全报告

39、应用漏洞 360 Computer Emergency Readiness Team, February 201833 CVE-2017-16943 Exim-UAF 漏洞 漏洞相关背景 2017 年 11 月 25 日,Exim 官方修复了一处 use-after-free 的 漏洞,由台湾安全公司 DEVCORE 的研究人员 Meh 发现,CVE 编号为:CVE-2017-16943,并公布了一份 POC,但是根据我 们的分析跟进,该 POC 必须将配置文件中的 dkim 开启才能达到 控制 EIP,造成进程崩溃的效果。2017 年 12 月 11 日,Meh 在 DEVCORE 官网公布

40、该漏洞的具体细节和默认配置下的 POC。 漏洞细节 开启 dkim 配置下控制 rip exim 一共管理着三种堆,定义成枚举类型的全局变量: POOL_MAIN: 表示主要的分配的堆块,可以被释放,消息的处理 会在该堆池中分配。 POOL_PERM: 表示分配的内存是永久的,直到进程结束才会被 释放,保存一些需要共享的信息 , 例如配置信息,host 信息,在使 用这块堆池分配前会将 store_pool 改为 POOL_PERM,再调 用 store_get()。 POOL_SEARCH: 保 存 搜 索 的 数 据, 在 search_tidyup、 search_open、intern

41、al_search_find 函数中被使用。 Exim 会循环读取消息,并动态分配内存,申请内存的函数 包 括:expand_string()、store_get()、string_xxx(),store_ get_perm() 会使用 perm pool。 将配置文件 /usr/exim/configure 中的“control = dkim_ disable_verify”注释,可以触发进程崩溃,进而控制 rip,分析 原因如下: 在 receive_msg 函数中会判断是否开启 dkim,如果开启就 会进入 dkim_exim_verify_init 函数: dkim_exim_veri

42、fy_init 函数里在 perm pool 中申请内存: 使得在堆中分配一块内存,同时不改变 current_block0 中 的值,后续对消息处理时会在 main pool 中分配堆块,分配一块 0 x2010 大小的堆块,释放后,由于之前 perm pool 分配的堆块, 使得释放的堆块不和 top chunk 合并,变成一个 unsorted bin, 此时 fd 和 bk 指向 main arena 区域。再进一次 store extend 后, 通过 store_get 会获得指向 main arena 的指针,之后 memcpy 对 main arena 进行写操作,后续的 fr

43、ee 操作会造成崩溃,RIP 会变成填充的数据。 第 一 个 版 本 的 Exim 是 由 Philip Hazel 在 1995 年编写的,用于剑 桥大学计算服务的电子邮件系统。 它最初是基于一个较老的 MTA, Smail -3,但它的设计和理念已 经 从 Smail-3 中 分 离 出 来 了。 Exim 高度可配置,因此具有其他 MTA 中没有的功能。它的邮件策 略控制功能,为管理员提供了控制 谁可以通过系统发送或中继邮件。 在 4.x 版本中,这已经成熟为基于 访问控制列表的系统,允许非常详 细和灵活的控制。4.x 版本中集成 了一个内容扫描框架,可以更轻松 地整合反病毒和反垃圾邮件

44、措施。 这使得 Exim 非常适合执行不同的 邮件策略。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201834 具体的细节如下图:Exim UAF 流程 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201835 具体控制 rip 的流程如下: Exim UAF-RCE 流程 Default config 默认配置下控制 rip 在 devcore 公司公布具体细节后,我们对默认配置下如何控制 rip 进行了分析。其实原理和开

45、启 dkim 配置类似,需要在 top_chunk 前 分配一块在使用的堆块,防止后面释放的堆块和 top_chunk 合并,作 者的 poc 是利用 DATA 来发送一个足够大的数据来扩展堆块,循环多 次后,期间释放了之前的堆块,变成了一个大的 unsorted bin 块供后 续分配。此时 top_chunk 之前就有了正在使用的堆块,再利用 BDAT 命令达到控制 rip 的目的。 通过上面分析,将 chunking_advertise_hosts 的值设置为空, 这样可以禁用 ESMTP CHUNKING 扩展,使 BDAT 不可用,从而 避免被攻击者利用。 2017 年度安全报告应用

46、漏洞 360 Computer Emergency Readiness Team, February 201836 总结 应用安全不仅仅只有漏洞,一种名为“供应链攻击”的网络攻击行 为也需要我们警惕。它通过一些技术手段在软件的软件开发,软件 分发, 使用升级等环节进行污染, 最后达到盗取用户隐私、 植入木马、 盗取数字资产等目的。比如今年的 XshellGhost 事件,Ccleaner 恶意代码攻击事件,OSX/Proton 后门攻击事件等。这种攻击危 险且难以防御。软件厂商首先要加强自身安全体系建设,并且安全 厂商之间也已经在威胁情报和安全数据等方面进行更为明确化,纵 深化的整合。这样才能

47、有效的抵御供应链攻击。 因为区块链技术的发展和虚拟货币投资的浪潮,2017 年以挖矿 为目的的网络攻击行为特别活跃。这种攻击主要针对服务器,IoT 设备或者浏览器,通过弱口令扫描,漏洞或者 Javascript 挖矿 程序进行恶意挖矿。其中系统漏洞、web 容器和应用方面的漏洞 因为目的性强且回馈率高,成为了黑产的首选。比如 struts2、 WebLogic 挖矿事件,每当有利用难度低的漏洞被披露。都会引 发一波以挖矿为目的的网络攻击。 应用漏洞带来的风险相对比较容易避免,操作系统提供了各种漏洞 缓解机制使得可利用漏洞仅占很小一部分。对于个人用户,从正规 渠道下载软件,并且具有良好的上网习惯

48、,注意更新软件,可以杜 绝大部分的安全问题。对于 web 容器的安全,需要运维人员及时 进行安全更新。 更加希望软件开发者, 从以上的分析带来一些思考, 规避上述漏洞中的一些问题。 2017 年度安全报告应用漏洞 360 Computer Emergency Readiness Team, February 201837 360CERT 全称“360 Computer Emergency Readiness Team”,我们致力 于维护计算机网络空间安全,是 360 公司基于“协同联动, 主动发现, 快速响应” 的指导原则,对重大网络安全事件进行快速预警、应急响应的安全协调团队。 微信公众号

49、新浪微博 关于 360CERT 参考 http:/struts.apache.org/docs/s2-052.html Friday-The-13th-Json-Attacks.pdf the-security-update-for-windows-xp-and-windows-server vulnerability-protection-scenario/ the-security-update-for-windows-xp-and-windows-server http:/whereisk0shl.top/cve-2017-7269-iis6-interesting-exploit. html https:/ht-sec.org/cve-2017-7269-hui-xian-poc-jie-xi/ analysis/ https:/threathunter.org/topic/59428ae855cbee0e1e5cad23 Viral-Video-Exploiting-Ssrf-In-Video-Conve

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(360:2017年度安全报告––应用漏洞(37页)(37页).pdf)为本站 (菜菜呀) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部