【看雪2017安全开发者峰会演讲回顾0x5】Flash 之殇:漏洞之王 Flash Player 的末路

发布者:Editor
发布于:2017-11-25 18:43

看雪编辑按:7 月份的时候,Adobe 公司正式宣布于 2020 年底停止支持 Flash Player,较之“老兵不死,只是逐渐凋零”平添了几分悲情。时光倒回几年前,那时对挖漏洞的人来说 Flash 是再熟悉不过了,每次更新都伴随着一堆 CVE 的修复,此外 Flash 漏洞还备受黑客组织的青睐,被集成到了各种 EK 工具包中。但事物的发展总有其特定规律,无法做到适应的终将被历史所淘汰。本次分享的议题是由看雪『二进制漏洞』版主、来自兴华永恒的仙果带来的有关 Flash 漏洞的繁华往昔及作为漏洞之王的陨落,跟着演讲者过一遍 Flash 漏洞的利用思想也许会为你在研究其它类型漏洞时带来新的灵感。以下内容为仙果演讲实录,由看雪学院(微信公众号:ikanxue)整理。


仙果:刚刚看到一个十几岁的小朋友很认真的在翻简页,感觉到四个字:后生可畏。给自己的感觉是压力很大,心情是越来越紧张。

下面开始我们的议题:议题的名字是Flash漏洞之殇,曾经的漏洞之王的末路。大家可以简单跟着我聊一下Flash是怎么流行的,flash漏洞是怎么回事,又是怎么样利用的,高级的漏洞定义技巧又是什么?大家可以带着这些疑问跟我一块来听一下。

首先自我介绍。我们公司专门做漏洞攻防对抗以及攻防研究的对抗,公司比较久了,来公司已经呆了快十年了,方向是研究漏洞攻防,研究软件漏洞、硬件漏洞以及路由器的漏洞,包括虚拟化的漏洞也会研究,研究的面是比较广的。专注软件漏洞的利用研究以及对抗分析。平时呢我其实是比较逗的人,工作中是这样子的,基本上是回到家“修电脑”的人。

第一是FlashPlayer的往昔盛景,第二是FlashPlayer的成也平台,败也平台。第三,是FlashPlayer漏洞面面观。第四,漏洞缓解措施和对抗,第五,Adobe最后的努力以及放弃。


Flash Player的往昔盛景



研究漏洞的人年龄比较大,对这些有印象。像刚刚小朋友肯定没有这种印象。首先,为什么会流行?当时的网络很卡,10KB,还是在一个猫(音)的阶段。当时很流行一句话,多图杀猫。你的流量很卡,但是如果用FlashPlayer打开非常流量,而且图象不会失真,非常小巧,非常好用。在那个时候它就相当于是一个超人,小巧高效,而且Flash小游戏称霸天下。包括现在很多的页游,就是用Flash进行开发的。


这个图我不知道大家是否有印象,年龄比较大的网虫肯定有印象,闪客帝国和闪吧,我不知道大家是否对这两个还有印象?这对于当时来说非常流行、非常火的两个网站。而且绝大多数是Flash游戏开发以及周边开发都是在这两块发起的。从这个可见,当时FlashPlayer是有多火。


我们可以看到它火的一个流程:

1996年发布的Flash,

1998年开始了Flash3,

1994年Flash4,

2000年Flash5,包括一直到Flash10的阶段,一直到2008年都是很火的。

通过了十年的发展,它占领了互联网、多媒体的半壁江山,一直到了2005年,是最鼎盛的时候,占有了多媒体浏览98%以上。

大家新安装以及XP系统默认安装Flash的组建,不知道大家是否有注意到这个情况。它火了之后,安全人员以及漏洞挖掘人员就会针对Flash进行挖掘,2008年开始一直到今年,2015年是Flash鼎盛之年,2016、2017年也在不断的发展。

大家是否注意到漏洞一些利用包很多都是用的Flash的漏洞,包括APT28,就是这段时间疑似操作美国大选的攻击组织,我们通过分析发现它也使用了Flash的漏洞。


成也平台,败也平台


截止到2015年Flash早已经从最简单二维矢量网络动画制作软件发展成为跨网络、本地移动设备的应用设计、开发和发布平台。这样就有一个疑问,它为什么会成了一个平台,为什么还要放弃?

它就像一个小孩,就像一个婴儿,他承担了一个年轻人,一个中年人,他要承担的份量,这个时候肯定会存在一个问题,它根本就不能承受那么大的重量,而且还发展的那么好,这是一个畸形的发展。


Flash已经成为了一个平台,已经占领了互联网那么大的江山。但是,你在这其中发现了什么?大家能否注意到问题的真正所在?

发展那么大,占用那么大的江山,但是它还是浏览器的组建,还是浏览器的插件,它的命掌握在别人手里面,说禁用就禁用,说不用就不用,相当于自己的命根子掌握在别人的手里面一样,这就是它的问题所在。

像IE11还支持Flash,其他浏览器的已经不支持Flash。如果浏览器不支持,就会慢慢消亡。


当苹果iOS发布的时候,移动端的iOS已经不再支持Flash,而互联网的发展从现在回头往前看,是移动端者得天下。像iOS和安卓打架诺基亚死掉一样,诺基亚当时多火,但是还是死掉了。

Flash放弃了Linux的平台,同时安卓平台也放弃了。很多应用端的游戏,用到的Flash但是已经不算是FlashPlayer了。

Flash Player漏洞面面观

看一下FlashPlayer的攻击面:最鼎盛的时候Flash是支持了很多平台,像windows linux 等等,支持这么多的平台,但是它一旦有了漏洞,它的影响面很大,同时一个漏洞影响多个平台。就像曾经的漏洞之王,Java一样,也是一个跨平台的,一个漏洞影响多个平台,会波及整个互联网。

图片解析,这是Flash的源码截取一部分针对图片解析的文件夹,ICO还是比较常建见的,WX是什么?大家知道WX是什么图片?它是具有图片解析的程序,很大可能性是存在漏洞的。


正则表达式,这个很奇葩。我们在研究的时候就发现真的是解析出现问题。连正则表达式都会出现问题,这是很奇怪的。视频各式解析,这是它解析FIV格式的漏洞,给我的感觉是什么概念呢?只要是Flash支持的组件,支持的格式,都会存在着漏洞。

它就像一个千疮百孔一样,任何人都可以插一脚。Action script 3自身,这个不用举例了,很多的漏洞都是自身数据结构上的问题。包括跨域、XSS等等的漏洞。


它的影响面,一个Flash漏洞,攻击者怎么应用这个?它的影响除了在操作系统层面还会顾及到什么层面,这是播放的一个视频,在Word的视频,这个视频是Flash的模式。Flash它影响到了office,包括一些的Adobe组建都会受影响,还有国内的软件WPS,它也支持Flash的组件。

大家可能不太清楚,这是在Flash里面来利用IE漏洞,这样做出来有一个非常大的好处,是攻击者进行漏洞攻防对抗的时候,就有非常大的好处。免杀以及通用性非常大。而且,Flash本身是支持很多操作系统的判断以及浏览器的判断更准确,影响面更大,可以做的事情更多。这是一个漏洞,可以针对w7、W8。只不过这个攻击者没有写相应的XP。

操作系统层面,从应用层的层面,包括多功能组合的层面,都会有很大的问题。最奇葩的一个问题是,之前我们测试过的是,PDF的漏洞可以结合多个Flash的漏洞,做到什么程度呢,你只有你想不到,没有做不到。

可能大家看到漏洞演示比较多的是一个网页,计算器弹出来了大家很高兴。下面大家看这一种,打开Flash,操作系统里面安装的软件,补丁就全部泄露出来了,操作系统是Win7,除了Flash是低版本,其他的全都是最新版本。电脑所有安装软件以及补丁全部都有泄露出来,漏洞的威力是非常大的,是很典型文件信息泄露的,是文件读取以及信息泄露的漏洞,这个漏洞可能没有你在本地打开计算器的漏洞危害大,好处是:稳定、好用、高效。

在APT攻击流程里面,信息探测占到非常大比例,这个漏洞就是非常好的信息探测的漏洞。你比如说把这个放到局域网里面可以做到什么效果,我不知道大家是否有这样的想法,所有信息全部被泄露了。


不知道大家是否见过这个软件,DoSWF,就是刚刚开始用这个软件进行混淆之后,把它应用到漏洞攻防的EXP混淆的时候,所有操作软件,所有的防御软件全部是绕过的。针对这个检测,安全人员是无从下手的,包括国外的研究人员他们是怎么把这个解析出来,他们是条形加载,解析到流程全部走完之后再从内存里面找到原始有的漏洞放出来,生生的把漏洞扣出来的一个高强度混淆的软件。


现在用的比较多的还有另外一个,这个软件是国外用的比较多,SecureSWF,混淆的强度还是比较大的。


在2015年的Flash漏洞直线上升,其实荣升了漏洞之王的称号。再来回顾一下漏洞利用的历史,这是2009年、2010年左右的时候Flash是这样利用的,很粗略、很粗糙,现在回头来看这是非常粗糙的,也是最原始的。这个时候IE只能够做到稳定的控制堆,进行堆风水,Flash能做到什么大家不知道,但是正式测试的时候发现可以很好的进行堆填充。


这个编号是cve-2011-2011,漏洞原因是函数参数导致的问题,三个点来触发的漏洞。牵扯到另外一个问题,很明显的是在进行IE的漏洞,刚才提到了HTML怎么利用的?像刚刚2011一样,有三个点的A,这个利用漏洞是怎么样,直接在Flash里面执行windons。这是payload,这样执行起来非常简单。


漏洞缓解措施和对抗


在2015年漏洞之后,Adobe针对vector对象引入了Cookie和lenght检测机制,使得Vector的力利用方式被封堵。引入了隔离堆机制,当然还有一些没有加入堆隔离的对象,对象的大小以及不同对象虽然隔离了,但是对于普通对象还是会分到同类的堆里面,包括对象保存的这样机制,延迟释放的这样一些机制。既然是机制,就不可能把每一个对象,因为Flash的对象太复杂了,还是有突出的一些。那怎么办?


Adobe 最后的努力和放弃


很明显,Adobe公司已经不要Flash了,它已经把它抛弃了,就像一个很明显的是:爸爸不要你了。

这是我的演讲过程,希望能跟大家进行漏洞研究方面的交流,谢谢大家!

本演讲PPT:https://bbs.pediy.com/thread-222956.htm


声明:该文观点仅代表作者本人,转载请注明来自看雪