JavaScript和VB Script一直以來都是很著名的Client端程式語言,在以往Javascript都被應用於網頁程式寫作上來完成一些特效以及控制項,Javascript由Client端(瀏覽器)執行特性可以降低Web Server部分的負擔,但是由於Javascript在用戶瀏覽器上面可以被停用,所以大部分的檢查作業還是要依賴ServerSide Script Language,如:PHP、JSP、ASP以及PERL等等來完成,直到重視使用者瀏覽經驗的Web 2.0以及AJAX這個名詞被廣泛應用後,Javascript才逐漸的被網頁程式開發者重視,不過,Javascript與VB Script事實上也可以作為Windows系統上面的Script Language使用。

事實上,早在Windows 2000 Server時代,Windows就可以透過Windows Script Host(WSH)來執行VB Script或者Javascript,這些輕量化的Script語言可以取代批次檔(Batch,Bat)作用來幫助Server管理者做更多的事情,下面就是一個VB script的範例trick.vbs:

Set shell = Wscript.createobject("wscript.shell")
a = shell.run ("calc",1)
Wscript.Sleep 5000
a = shell.run ("shutdown -r",0)
Wscript.Sleep 10000
a = shell.run ("shutdown -a",0)

在trick.vbs中,我先開啟了小算盤,停了五秒後接著利用指令讓系統倒數計時重新開機,數了十秒再取消重開,當然你可以寫出更複雜的工具(這只是用來做個惡作劇的小程式),當然Script引擎不是只有WSH一種,除了由目前最大的開源瀏覽器社群Mozilla所維護的rhino(java)以及spidermonkey(C語言)之外還有Linux KDE的KJS以及WebKit(C++),當然不能忽略最近在瀏覽器市場大展雄心的Google V8(C語言),以上都是些耳熟能詳的Javascript引擎,你可以利用這些引擎幫你在Server上面執行javascript幫你完成一點工作。

最近常常在分析惡意網頁的程式碼,但是這些程式碼多半都會透過加密的方式來躲避防毒軟體的偵測(對岸叫加殼),以致於主要靠特徵碼的防毒軟體很難對網頁木馬起到作用,但是加密的木馬在RunTime的時候總得解出來讓瀏覽器執行,這時候強大的Firefox就派上用場了,Firefox的Web Developer跟Firebug套件都是在開發javascript程式Debug的好朋友,有了這些工具還滿容易可以概略的解出這些用javascript寫成的木馬到底在做些什麼,但是問題來了,直接用瀏覽器去開病毒網頁,萬一中毒了怎麼辦?

我左思右想除了在VM Ware裡面架一個拋棄型的分析環境之外,最快的方式就是寫程式把這些javascript自動跑出來,本以為只要叫SpiderMonkey還是rhino幫我跑跑就好,後來發現其實沒這麼簡單,因為Server不像網頁環境裡面有document、window以及nevigator這些元件,所以當你把網頁的javascript拿來給Javascript Engine跑的時候如果有用到這些物件,就會發生錯誤,像是我們在spidermonkey上面執行document.write(),就會出現ReferenceError: document is not defined這個錯誤訊息。

那麼該怎麼解決呢?在diderSteven的網誌上提供了一個很屌的解決方案,那就是直接改Source Code!!!不過若你的C跟我一樣殘廢的話,那你不妨也可以考慮NJ Verenini的解決方案,NJ Verenini的想法是既然沒有Document這個物件跟Write方法,寫一個出來不就好了?說真的,他的想法跟我看到ReferenceError: document is not defined的時候一模一樣,看來我跟他都是土砲一族阿....

若你沒有那個美國時間寫程式,事實上有很多人都寫了工具讓你來反解這些加了密的javascript,你可以參考下列網址:

DecryptJS :

http://www.ukhoneynet.org/tools/decrypt-js/

SpiderMonkey : JavaScript in C

http://www.mozilla.org/js/spidermonkey/

MalZilla : various decoders to try and deobfuscate javascript (on Windows)

http://malzilla.sourceforge.net/

FreShow : filters and decodes obscured script (on Windows)

http://www.jimmyleo.com/work/FreShowStart.htm

Caffeinemonkey :

http://www.secureworks.com/research/tools/caffeinemonkey.html

arrow
arrow
    全站熱搜

    nsysumis94 發表在 痞客邦 留言(0) 人氣()