偽裝攻擊 IP地址的洪水Ping攻擊詳解
Ping是通過發(fā)送ICMP報文(類型8代碼0)探尋網(wǎng)絡(luò)主機是否存在的一個工具,很久以前,一部分操作系統(tǒng)(例如win95),不能很好處理過大的Ping包,導(dǎo)致出現(xiàn)了Ping to Death的攻擊方式(用大Ping包搞垮對方或者塞滿網(wǎng)絡(luò)),隨著操作系統(tǒng)的升級,網(wǎng)絡(luò)帶寬的升級、計算機硬件的升級。
目前,大Ping包基本上沒有很大的攻擊效果(分布式攻擊除外),如果一定要使用Ping包去攻擊別的主機,除非是利用TCP/IP協(xié)議的其他特性或者網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的缺陷放大攻擊的力度(所謂正反饋)
正常情況下,Ping的流程是這樣的:
主機A發(fā)送ICMP 8,0報文給主機B
主機B回送ICMp 0,0報文給主機A
因為ICMP基于無連結(jié),所以就給了我們可乘之機,假設(shè)現(xiàn)在主機A偽裝成主機C發(fā)送ICMP 8,0報文,結(jié)果會怎么樣呢?顯然,主機B會以為是主機C發(fā)送的報文而去回應(yīng)主機C,結(jié)構(gòu)如下:
偽裝為主機C 錯誤的回復(fù)主機A--------------------->主機B------------------>主機C
這種情況下,由于主機A只需要不斷發(fā)送Ping報文而不需要處理返回的EchoReply,所以攻擊力度成倍的增加,同時實際上主機B和主機C都是被進(jìn)攻的目標(biāo),而且不會留下自己的痕跡,是一種隱蔽的一石二鳥的攻擊方法。
上面的方法用SOCK_RAW偽裝IP就可以輕松實現(xiàn),不過即使放大了兩倍,對于比較強壯的操作系統(tǒng)和較大的帶寬,也不見得有多大的效果,難道我們又來組織運動?不好吧,還是讓敵人給我們放大好了,TCP/IP中有一個概念叫做廣播。
所謂廣播的意思是說有一個地址,任何局域網(wǎng)內(nèi)的主機都會接收發(fā)往這個地址的報文(就像電臺廣播一樣),如果我們往廣播地址發(fā)送一個ICMP ECHO報文(就是Ping廣播地址一下),結(jié)果會得到非常多的回應(yīng)。
以太網(wǎng)內(nèi)每一個允許接收廣播報文的主機都會回應(yīng)一個ICMP_ECHOREPLY,如果你想試驗,可以在unix的機器上Ping一下你局域網(wǎng)的廣播地址,會看到很多回應(yīng)的的dup包,就是重復(fù)的應(yīng)答。
windows系統(tǒng)上不會有這樣的結(jié)果,因為微軟的Ping程序不對多個回應(yīng)進(jìn)行解包,收到第一個包以后就丟棄后面的了,同樣微軟的系統(tǒng)默認(rèn)也不回應(yīng)廣播地址的包,所以你最好在一個大量unix主機的局域網(wǎng)內(nèi)測試。
當(dāng)我們偽裝成被攻擊主機向一個廣播地址發(fā)送Ping請求的時候,所有這個廣播地址內(nèi)的主機都會回應(yīng)這個Ping請求,這樣,相當(dāng)于是N倍的攻擊力度!(N=廣播地址內(nèi)回應(yīng)Ping包的主機數(shù)量)
偽裝為主機C 所有廣播主機都會錯誤的回復(fù)
主機A--------------------->廣播地址=========================>主機C
FakePing的工具,可以在Http://www.patching.net/shotgun/FakePing.exe下載。
使用方法是FakePing.exe FakeIP TargetIP [PacketSize],如果TargetIP是廣播地址,那么FakeIP是被攻擊目標(biāo)。
IP地址的洪水Ping攻擊的過程就已經(jīng)向大家介紹完了,至于代碼部分,我們會在以后的文章中為大家整理出來。
【編輯推薦】