交換機網絡嗅探方法之欺騙交換機緩存
嗅探(sniff),就是竊聽網絡上流經的數據包,而數據包里面一般會包含很多重要的私隱信息,如:你正在訪問什么網站,你的郵箱密碼是多少,你在和哪個MM聊QQ等等......而很多攻擊方式(如著名的會話劫持)都是建立在嗅探的基礎上的。下面讓我們看一下交換機網絡嗅探方法中的欺騙交換機緩存的方式:
cncert的一個很出名的會話劫持工具SSCLONE就是采用這種方法進行嗅探的,它的網站上也有專門的文章說明“欺騙交換機緩存”的嗅探方法(見參考資料)。我在這里大概說一下原理吧。
交換機里面有一張CAM表,記錄了Mac-Port信息(這個端口對應的機器的MAC地址是什么),MAC信息的獲取是:交換機從轉發的數據包中提取。所謂欺騙交換機緩存,就是修改這張CAM表以達到欺騙交換機的目的!比如現在有一個4端口的交換機,它的CAM表如下:
- port1 -- 11-11-11-11-11-11
- port2 -- 22-22-22-22-22-22
- port3 -- 33-33-33-33-33-33
- port4 -- 44-44-44-44-44-44
現在port1的機器A(IP是192.168.1.11,MAC地址為11-11-11-11-11-11)想要嗅探port2的機器B(IP是192.168.1.22,MAC地址為22-22-22-22-22-22),怎么辦呢?呵呵~流程如下:
機器A對外發送一個數據包,如下:
SrcIP:192.168.1.11 ScrMac:22-22-22-22-22-22
DstIP:xxx.xxx.xxx.xxx(隨便寫),DstMac:xx-xx-xx-xx-xx-xx(隨便寫)
此時,交換機收到這個包,發現在原來CAM里面,port1對應的機器MAC地址是11-11-11-11-11-11,怎么現在變為:22-22-22-22-22-22了呢??哦,應該是這臺機器的MAC地址變了吧~好!那我更新CAM表!
更新后的交換機CAM表如下:
- port1 -- 22-22-22-22-22-22
- port2 -- 22-22-22-22-22-22
- port3 -- 33-33-33-33-33-33
- port4 -- 44-44-44-44-44-44
現在有port1和port2對應的MAC地址是一樣的。如果現在網關(假設現在port4連接的是網關)來了一個數據包是給機器B(IP是192.168.1.22,MAC地址為22-22-22-22-22-22),交換機會順序查詢此刻的CAM表來確定該數據包轉發去哪個端口!
在查詢port1時,發現此端口對應MAC地址和數據包里的MAC地址相同,交換機直接就把包轉發到port1的機器A了,由于該包已轉發完畢,交換機繼續處理下一個數據包......就這樣,數據包又再次落入充滿窺探欲望的人手中!
這里也需要注意幾個問題:
1).A收到包后,還是需要轉發給B的,不然B和外面的對話就中斷了。
2).當A把包轉發給B時,需要修復交換機的CAM表。
當你看完以上這兩點注意時,可能會發現利用這種的一些缺陷:
1).A在轉發包給B時需要恢復CAM表,轉發后又要再次欺騙。如果在轉發包時,網關來了一個數據給B,此時的CAM表是正確的,交換機會把這個數據會直接發給B,A無法監聽到這個包,由于每次轉發都需要完成以上操作,導致CAM表刷新相當頻繁,最后的結果是,A監聽到的數據很不完整。
2).你接的交換機的端口號決定著你的命運!
如果B接的port1端口,A接的是port2端口,那么,用這種方式,A將永遠也嗅探不到B的信息,更悲觀的想一下,如果你連接的是這個交換機最后一個端口呢??!:<
3).跨交換機進行嗅探丟包非常多!
看下圖:
現在交換機A連接交換機B的port1,機器C連接port2,如果沒有機器B的話,機器A還是能比較順利監聽機器到C的信息的,但是有了機器B就不同了,交換機的CAM表里port1這條記錄,會因為機器A和機器B的發包而經常改變。導致的問題大家也可以想到了。
防止欺騙交換機緩存的方法只有在交換機處綁定port-mac這對信息,但由于這和交換機原先設計的理念有矛盾,故這個是無法實現的,也就是說,沒有辦法防止,值得一說的是,現在無線網已經興起了,和集線器時代一樣,在無線網絡監聽別人的信息是不費吹灰之力的事情,無線網的安全也值深思!
交換機網絡嗅探方法中欺騙交換機緩存的方式就為大家敘述完了,如果讀者想了解其他的方法請閱讀:
【編輯推薦】