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