Flash动画凭借着绚丽奇特的动画效果和各种实用易用的功能风靡互联网,如今Flash已经由当年需要特别下载安装的网页控件变成了浏览器默认的标准控件,今天互联网中几乎每一个网站都会有它的身影,然而当Flash成为一种标准之时,暗藏涌动的危险也开始来临……
Flash0DAY的杀伤力
在七月夏日炎炎的高温中,最近在互联网中却出现了一个极度危险的网络幽灵。这个幽灵最早出现在CanSecWest2008 Pwn2Own黑客大赛中,Security Objectives组织的黑客Shane Macaulay利用Adobe公司的Flash软件中的一个安全漏洞突破了运行Windows Vista操作系统的富士通U810笔记本电脑。他的成功使他赢得了一台富士通笔记本电脑和5000美元奖金。
小知识:Flash 是Adobe公司推出的交互式矢量图和 Web 动画的标准。网页设计者使用 Flash 创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。
伴随着这条新闻,Flash0DAY很快引起了众多黑客的注意。在国内很多黑客网站也跟风开始销售这种Flash0DAY网页木马,目前国内网络上已有数十个黑客论坛、QQ黑客群在私下出售此类木马,病毒作者在帖子里宣称“最新Flash ODAY网马,中率70%以上,过IE7。只为赚名不为赚钱跳楼价:5000,购买请联系QQ群:*****”。
小知识:0day通常是指没有补丁的漏洞利用程序,提供该利用程序的人通常是该漏洞的首发者或是第一个公开该漏洞利用细节的人。
这些在网络中出售的Flash0DAY木马生成器号称中马率70%以上,可以过IE7、免杀、不卡不弹窗、过全补丁。而事实也的确如此,因为这次木马感染是通过Flash插件漏洞,该漏洞除了影响到IE浏览器,也可能会影响到Firefox或其它第三方浏览器,甚至影响到所有与Flash相关的应用,例如QQ秀等。正因为如此,很多盗号者开始利用该0DAY在暑期疯狂盗号。
Flash漏洞原理
与以往的Flash出现的漏洞相比,这一次Flash漏洞危害极大。而且根据Adobe公司提供的公告,这一次共有7个Flash出现的问题需要修补,它们分别是:
(1)处理Declare Function (V7)标签时存在堆溢出漏洞;
(2)处理多媒体文件时存在整数溢出漏洞;
(3)在将主机名绑定到IP地址时的错误可能导致DNS重新绑定攻击;
(4)在发送HTTP头时的错误可能导致绕过跨域策略文件;
(5)强制跨域策略文件中的错误可能导致在承载该文件的Web服务器上绕过某些安全限制;
(6)在处理“asfunction”协议时没有正确地验证对某些参数的输入便将其返回给了用户,这可能导致在用户浏览器中注入任意HTML和脚本代码。
简单说来,造成此次漏洞的主要原因是Flash9.0版本之后使用的一个名为ActionScript Virtual Machine(AVM)的虚拟机功能。这个虚拟机被用来执行Flash中使用的ActionScript脚本,但是在执行ActionScript脚本之前,AVM会先检查脚本是否可信并且合法。因为不可信和未经过验证的ActionScript脚本可以让FlashPlayer执行任何代码命令,也就意味着黑客可以构造出任何攻击性程序,但是AVM的严格验证一直让Flash很安全。
此次的Flash漏洞严格意义上说威胁并不大,它只是一个空指针碰撞问题,但是一名黑客巧妙的想到了利用这个空指针来破坏AVM验证ActionScript的过程,让自己构造的恶意脚本能够绕过AVM验证成功的在Flash中运行。于是利用这种手段,黑客们通过命令Flash下载并执行远程程序的脚本,轻松的实现了跨平台、跨浏览器的Flash漏洞。而且由于Flash Player在Windows Vista操作系统上没有使用ASLR安全技术,所以这个漏洞也可以顺利的在Vista上使用,一跃成为了本年度最具威胁的黑客利器。
Flash0DAY利用方式
泛滥的Flash0DAY木马目前主要有两种制作方式,一种是通过Flash0DAY木马生成软件自动生成包含有恶意代码的SWF文件,另外一种则是通过修改编译已经构建好包含恶意代码的SWF文件。那么黑客是如何利用这些工具制作出Flash0DAY木马的呢?其实目前Flash0DAY的制作步骤很简单,通常情况下只需要在木马生成器中输入一个木马链接地址就可以生成出SWF的木马,但是生成SWF木马之后如何在网页中伪装却需要非常多的技巧,接下来我们近些天一些黑客使用的伪装步骤分解讲解。
【案例一】SWF论坛嵌入
第一步:首先打开Flash0DAY木马生成器,在生成器输入窗口中输入配置好的木马地址,然后点击“Click”按键,生成出SWF木马(图1)。
图1
第二步:打开“Flash文件加密器”,点击“选择&添加文件”按键添加进刚才生成的SWF文件。然后在“选择加密方式”一项中选择第三项“加密后无需密码即可播放”之后点击“执行加密”按键(图2)。
图2
第三步:首先将加密的SWF文件通过网站空间或者博客上传到网络服务器上,然后在浏览器中查看源代码将SWF文件的URL地址提取出来。接下来的论坛发布过程我们以PHPWind论坛为例,在注册论坛ID后,首先点击“发帖”按键,然后点击编辑窗口上方的“插入Flash动画”按钮,设置Flash窗口大小可以使用默认值,然后输入SWF文件的URL链接地址,在点击“确定”之后,可以在编辑窗口中看到调用Flash文件的代码,此时你只需要点击发布之后浏览该帖子且没有打补丁的用户就会中招了。
各个论坛的Flash发布代码都不同,黑客往往会根据具体的情况判断自己如何发布。
特点分析:很多黑客采用这种方式在论坛中散步病毒与木马,这种方式的中马几率非常高,但是也很容易被杀毒软件查杀和论坛管理员发现。
【案例二】SWF文件内嵌技术
第一步:在Flash动画网站中下载一个点击率相对较高的SWF格式Flash动画文件,然后打开Flash反编译软件“Sothink SWF Decompiler”,点击软件界面中的“快速打开”按钮,打开我们下载回来的SWF动画文件,在点击临近的“导出FLA”按钮,将SWF格式的动画转换保存为FLA格式。
第二步:接下来打开Flash动画制作软件“Flash CS3”。软件打开后点击“文件”菜单选择“打开”,导入刚才转换保存的FLA文件。然后“右键”单击动画帧点击“动作”,在展开编辑界面的“动作/帧”栏中选择“ActionScript1.0&2.0”选项,之后在弹出的菜单中选择“loadMovie”命令,然后在右边窗口中的“not_set_yet.loadMovie("0day文件名.swf", mySquare)”。
第三步:填写完毕后保存文件,然后点击菜单“文件”选择“发布”命令,将动画重新导出为SWF格式。接着将用生成器生成的Flash0DAY木马SWF文件与发布的文件保存在同一文件目录下。此时用IE浏览器打开刚才生成的Flash动画木马,可以看到随着Flash动画打开播放时,SWF文件里面将会显示隐藏的木马。
特点分析:这是一种高伪装的SWF木马隐藏方式,黑客选择这种手段往往因为它的伪装性高,不容易引起受害者察觉。但是使用这种手段需要有自己的网站空间,因此具有一定局限性。
Flash0DAY防范技术
虽然此次的Flash漏洞威胁很大,但是用户仍然可以通过登陆Adobe Flash的官方网站更新下载新的Adobe Flash Play的升级版本。
此外,在你做出升级动作之前,也可以通过点击IE浏览器菜单中的“工具”,选择“管理加载项”中的“启用或禁用加载项”,然后在弹出的窗口中选择显示“Internet Explorer中已经使用的加载项”,目录更新后点击选择目录中的“Shockwave Flash Object”,然后在设置中点击“禁用”后确定即可(图3)。
图3
Firefox浏览器用户可以首先点击菜单中的“工具”,选择“附加组件”选项,在新弹出的对话框中点击“插件”按键,然后在下方的列表中找到“Shockweva Flash”,点击“禁用”即可。


