交換網路中的嗅探和ARP欺騙

2021-04-24 12:55:05 字數 2921 閱讀 3134

文章提交:refdom (refdom_at_263.net)

乙太網內的嗅探(sniff)對於網路安全來說並不是什麼好事,雖然對於網路管理員能夠跟蹤資料報並且發現

網路問題,但是如果被破壞者利用的話,就對整個網路構成嚴重的安全威脅。至於嗅探的好處和壞處就不羅嗦了。

arp快取表

假設這樣乙個網路:

——————————

|       hub        |

——————————

|      |      |

|      |      |

|      |      |

hosta   hostb   hostc

其中a的位址為:ip:192.168.10.1     mac: aa-aa-aa-aa-aa-aa

b的位址為:ip:192.168.10.2     mac: bb-bb-bb-bb-bb-bb

c的位址為:ip:192.168.10.3     mac: cc-cc-cc-cc-cc-cc

假設b是屬於乙個嗅探愛好者的,比如a機器的arp快取:

c:/>arp -a

inte***ce: 192.168.10.1 on inte***ce 0x1000003

internet address      physical address      type

192.168.10.3          cc-cc-cc-cc-cc-cc     dynamic

這是192.168.10.1機器上的arp快取表,假設,a進行一次ping 192.168.10.3操作,ping主機c,會查詢本地的

arp快取表,找到c的ip位址的mac位址,那麼就會進行資料傳輸,目的地就是c 的mac位址。如果a中沒有c的arp記

錄,那麼a首先要廣播一次arp請求,當c接收到a 的請求後就傳送乙個應答,應答中包含有c的mac位址,然後a接

收到c的應答,就會更新本地的arp快取。接著使用這個mac位址傳送資料(由網絡卡附加mac位址)。

因此,本地快取記憶體的這個arp表是本地網路流通的基礎,而且這個快取是動態的。

集線器網路(hub-based)

很多網路都是用hub進行連線的。資料報經過hub傳輸到其他計算機的時候,hub只是簡單地把這個資料報廣播

到hub的所有埠上。

這就是上面舉例中的一種網路結構。

現在a需要傳送tcp資料報給c。首先,a需要檢查本地的arp 快取表,檢視是否有ip為192.168.10.3即c的arp記

錄,如果沒有那麼a將要廣播乙個arp請求,當c接收到這個請求後,就作出應答,然後a更新自己的arp快取表。並

且獲得與c的ip相對應的mac位址。這時就傳輸這個tcp資料報,ethernet幀中就包含了c的mac位址。當資料報傳輸

到hub的時候,hub直接把整個資料報廣播到所有的埠,然後c就能夠接收到a傳送的資料報。

正因為hub把資料廣播到所有的埠,所以計算機b也能夠收到a傳送給c的資料報。這正是達到了b嗅探的目的。

因此,hub-based的網路基本沒有安全可言,嗅探在這樣的網路中非常容易。

交換網路(switched lan)

交換機用來代替hub,正是為了能夠解決hub的幾個安全問題,其中就是能夠來解決嗅探問題。switch不是把數

據包進行埠廣播,它將通過自己的arp快取來決定資料報傳輸到那個埠上。因此,在交換網路上,如果把上面

例子中的hub換為switch,b就不會接收到a傳送給c的資料報,即便設定網絡卡為混雜模式,也不能進行嗅探。

arp欺騙( arp spoofing)

arp協議並不只在傳送了arp請求才接收arp應答。當計算機接收到arp應答資料報的時候,就會對本地的arp快取

進行更新,將應答中的ip和mac位址儲存在arp快取中。因此,在上面的假設網路中,b向a傳送乙個自己偽造的arp應

答,而這個應答中的資料為傳送方ip位址是192.168.10.3(c的ip位址),mac位址是dd-dd-dd-dd-dd-dd(c的mac地

址本來應該是cc-cc-cc-cc-cc-cc,這裡被偽造了)。當a接收到b偽造的arp應答,就會更新本地的arp快取(a可不

知道被偽造了)。

現在a機器的arp快取更新了:

c:/>arp -a

inte***ce: 192.168.10.1 on inte***ce 0x1000003

internet address      physical address      type

192.168.10.3          dd-dd-dd-dd-dd-dd     dynamic

這可不是小事。區域網的網路流通可不是根據ip位址進行,而是按照mac位址進行傳輸。現在192.168.10.3的

mac位址在a上被改變成乙個本不存在的mac位址。現在a開始ping 192.168.10.3,網絡卡遞交的mac位址是

dd-dd-dd-dd-dd-dd,結果是什麼呢?網路不通,a根本不能ping通c!!

這就是乙個簡單的arp欺騙。

我們來實現這樣的arp欺騙。這裡需要使用乙個winpcap提供的api和驅動。(http://winpcap.polito.it/)

winpcap是乙個偉大而且開放的專案。windows環境下的nmap、snort、windump都是使用的winpcap。

/////

//                arp sender

////           creator:    refdom

//           email:      [email protected]

//           home page:  www.opengram.com

無ARP欺騙的嗅探技術

arp欺騙的攻擊和防禦技術都比較成熟了,這裡也不再闡述。此次重點講解如何不用arp欺騙進行嗅探以及會話劫持的技術原理,實際的攻擊方法是進行mac欺騙。一 原理 在開始之前我們先簡單了解一下交換機 過程 交換機的乙個埠收到乙個資料幀時,首先檢查改資料幀的目的mac位址在mac位址表 cam 對應的埠,...

無ARP欺騙的嗅探技術

arp欺騙的攻擊和防禦技術都比較成熟了,這裡也不再闡述。此次重點講解如何不用arp欺騙進行嗅探以及會話劫持的技術原理,實際的攻擊方法是進行mac欺騙。一 原理 在開始之前我們先簡單了解一下交換機 過程 交換機的乙個埠收到乙個資料幀時,首先檢查改資料幀的目的mac位址在mac位址表 cam 對應的埠,...

利用arp發現網路中的嗅探器

1.sniffer原理 所謂知己知彼方能百戰不殆,要了解探測sniffer的方法,就先得了解sniffer的原理。首先,讓我們來看一看區域網中是怎樣傳輸資料的。當乙個資料報的目的地是區域網內的某台計算機時,此資料報將以廣播的形式被傳送到網內每一台計算機上。而每台計算機的網絡卡將分析資料報中的目的ma...