1. 程式人生 > >很多網站被掛馬確找不到程式碼,arp掛馬原理剖析

很多網站被掛馬確找不到程式碼,arp掛馬原理剖析

不管是訪問伺服器上的任何網頁,就連404的頁面也會在<>後加入: 
<IFRAME SRC= width =1 height=1 frameborder=0></IFRAME>;,掛馬的位置在標記左右,上面這段惡意程式碼,它會 每隔幾秒加入程式碼,也就是說在輸出具體的東西之前就被掛了,有時有有時又沒有,不是網頁原始碼問題,也沒有在網頁原始碼中加入惡意程式碼,即使重灌伺服器, 格式化重分割槽過第一個硬碟,放上去網站沒多久一樣再會出現這種情況. 

首先就排除了網站被入侵的可能,因為首頁能加在那個位置只能是 title的地方,用js控制也不大可能.然後去看了php.ini的設定也沒有任何的異常,而且這個插入的程式碼有的時候出現有的時候不出現,說明不是網 站的問題了.開啟同伺服器的其他網站也有這個情況發生,而且狀況一一樣.檢查並且搜尋掛馬的關鍵字之後確定不是網站程式的問題. 

那麼 剩下的要麼是IIS自己出了問題,要麼是網路的問題,因為資料是處理沒有問題(這個由程式輸出,而且即使是都會出問題),經過一個一個排查,最後 基本可以確定就是arp欺騙欺騙資料報走向,然後中間人修改一些定義的關鍵字.因為是網路層次有問題(所以重做系統是沒有用的). 

目的:通過arp欺騙來直接掛馬 

優點:可以直接通過arp欺騙來掛馬. 
通常的arp欺騙的攻擊方式是在同一vlan下,控制一臺主機來監聽密碼,或者結合ssh中間人攻擊來監聽ssh1的密碼 
但這樣存在侷限性:1.管理員經常不登陸,那麼要很久才能監聽到密碼 
2.目標主機只開放了80埠,和一個管理埠,且80上只有靜態頁面,那麼很難利用.而管理埠,如果是3389終端,或者是ssh2,那麼非常難監聽到密碼. 

優點:1.可以不用獲得目標主機的許可權就可以直接在上面掛馬 
2.非常隱蔽,不改動任何目標主機的頁面或者是配置,在網路傳輸的過程中間直接插入掛馬的語句. 
3.可以最大化的利用arp欺騙,從而只要獲取一臺同一vlan下主機的控制權,就可以最大化戰果. 

原理:arp中間人攻擊,實際上相當於做了一次代理。 

正常時候: A---->B ,A是訪問的正常客戶,B是要攻擊的伺服器,C是被我們控制的主機 
arp中間人攻擊時候: A---->C---->B 
B---->C---->A 
實際上,C在這裡做了一次代理的作用 

那 麼HTTP請求發過來的時候,C判斷下是哪個客戶端發過來的包,轉發給B,然後B返回HTTP響應的時候,在HTTP響應包中,插入一段掛馬的程式碼,比如 <iframe>...之類,再將修改過的包返回的正常的客戶A,就起到了一個掛馬的作用.在這個過程中,B是沒有任何感覺的,直接攻擊的是 正常的客戶A,如果A是管理員或者是目標單位,就直接掛上馬了. 

下載的Anti ARP Sniffer V3.6 免費版 
*Anti ARP Sniffer V3.6是一款免費的軟體,適合於個人用來監測是否存在ARP欺騙,即使整個區域網部署Anti ARP Sniffer 也不能徹底解決ARP攻擊問題,請使用彩影網盾保護整個網路。 
能查出此伺服器區中,另一臺有問題的MAC地址,告訴了網管,後來網管把這臺伺服器網線給剪了。 

什麼是ARP? 

英文原義:Address Resolution Protocol 
中文釋義:(RFC-826)地址解析協議 

區域網中,網路中實際傳輸的是"幀",幀裡面是有目標主機的MAC地址的。所謂"地址解析"就是主機在傳送幀前將目標
IP
地址轉換成目標MAC地址的過程。ARP協議的基本功能就是通過目標裝置的IP地址,查詢目標裝置的MAC地址以保證通訊的順利進行。 

注 解:簡單地說,ARP協議主要負責將區域網中的32為IP地址轉換為對應的48位實體地址,即網絡卡的MAC地址,比如IP地址為192.168.0.1網 卡MAC地址為00-03-0F-FD-1D-2B。整個轉換過程是一臺主機先向目標主機發送包含IP地址資訊的廣播資料包,即ARP請求,然後目標主機 向該主機發送一個含有IP地址和MAC地址資料**MAC地址兩個主機就可以實現資料傳輸了。 

應用:在安裝了乙太網網路介面卡 的計算機中都有專門的ARP快取,包含一個或多個表,用於儲存IP地址以及經過解析的MAC地址。在Windows中要檢視或者修改ARP快取中的資訊, 可以使用arp命令來完成,比如在Windows XP的命令提示符視窗中鍵入"arp -a"或"arp -g"可以檢視ARP快取中的內容;鍵入 "arp -d IPaddress"表示刪除指定的IP地址項(IPaddress表示IP地址)。arp命令的其他用法可以鍵入"arp /?"檢視 到。 

正常時候: A---->B ,A是訪問的正常客戶,B是要攻擊的伺服器,C是被我們控制的主機 
arp中間人攻擊時候: A---->C---->B 
B---->C---->A 
實際上,C在這裡做了一次代理的作用