關于嗅探與ARP欺騙的原理,網絡上有很多很好的帖子和文章,但大部分都忽略了數據在網絡中的轉發(fā)過程。實際上用嗅探和ARP欺騙來做標題有點忽悠的成分,因為嗅探本身就包含了主動嗅探和被動嗅探,而ARP欺騙又是一個單獨的技術,欺騙的目的只是讓數據經過本機,即:主動嗅探=ARP欺騙+抓包。在了解嗅探和ARP欺騙原理之前,我們必須對數據包在各種(交換網絡、共享網絡等)網絡環(huán)境中的傳輸過程,筆者在這邊也只針對交換網絡和共享網絡進行探討。 若未加說明,文章中的三層指的是網絡層,二層指的是數據鏈路層。 一.數據在網絡中的轉發(fā)過程: 1.數據在交換網絡中的傳輸過程如下圖(PC1發(fā)包給PC2) 注:此圖是以公網網絡為基礎,如果PC為內網或者加入私有網絡則在出口要考慮NAT等情況 a)PC1發(fā)現(xiàn)目標IP110.1.1.2(網絡號110.1.1.0)與本機不在同網段(掩碼為24位,所以本機網絡號為1.1.1.0),因此PC1會將數據包丟給網關,為了數據報文能夠到達網關,PC1封裝的報文里頭會以網關的MAC作為目的MAC(網絡數據傳輸,原目的IP不變,原目的MAC通過三層網絡時會不斷改變)。 b)數據報文到達二層交換機(這里只涉及二層交換,如果是三層交換機并設置了端口IP,則會有所不同)后,由于二層交換機拆解數據報文時只拆解到二層(只拆解到原目的MAC),根本看不懂IP,所以會查找MAC-接口映射表(所謂的建立虛擬鏈路),發(fā)現(xiàn)網關MAC對應的是E5口,則將數據包從E5口丟出去。 c)路由器R1收到數據報文后查看原目的IP(路由器屬于三層設備,拆解數據包到IP層),查看數據包的目的IP為110.1.1.1,進而查找路由表,發(fā)現(xiàn)數據要到達目的網絡,數據包必須往下一跳218.1.1.2發(fā)送,因此路由器對數據包進行重封裝,查看ARP表,原、目的IP保持不變,將原MAC修改成R1出接口(連接到R2的那個端口)的MAC地址,目的MAC改成R2的進接口(R2接R1的接口MAC地址),接下來和二層傳輸一樣,將數據包丟給R2。 d)R2收到數據包后與R1做的操作一樣,直到數據報文到達目標。根據之前的步驟可以推出數據報文到達目標后,原IP、目的IP不變,原MAC為R2接PC2的接口MAC、目的MAC為PC2的MAC。PC2發(fā)現(xiàn)數據報文的目的IP和目的MAC與本機相符(非攻擊者),從而拆解數據包,獲得數據報文內容?;貜蛨笪牡臅r候和之前的傳輸一樣。
2.數據在共享網絡中的傳輸圖(PC1發(fā)包給PC2)
數據報文在共享網絡中的傳輸和交換網絡唯一的不同在于第二個步驟,交換網絡中交換機會根據MAC-端口對應表進行傳輸,也就是說除了網關(以圖為例),其他同交換機下的PC機無法收到數據報文(沒出現(xiàn)攻擊的情況下)。而在共享網絡中,由于HUB屬于一層設備,對于到達本身的數據報文,HUB會對報文進行廣播(除了收到報文的那個接口),因此接在同HUB的所有PC都能收到該報文。注:通常情況下,網卡都是工作在非混雜模式,也就是說即使收到數據報文,網卡會判斷目的MAC是否和自己的一樣,不一樣的話代表數據包不是給自己的,因此會丟棄,只接收那些目的MAC和自己一樣的數據報文。在嗅探時必須開啟混雜模式,在該模式下,網卡不對數據報文進行判斷,一鍋端!二.ARP欺騙:1.欺騙過程及原理從上面的數據報文傳輸過程可以知道二層傳輸是通過MAC進行傳輸的,在傳輸過程中PC需要查詢ARP表。因此攻擊者只要可以改變目標的ARP表就能實現(xiàn)攻擊,從而將數據牽引到自己的機器上,如圖
a)在正常情況下,PC1通過本地ARP表知道網關1.1.1.2的MAC地址為1.1.1.10260.8c01.1111,所以PC1封裝包的時候會將目的MAC設置成路由器的MAC地址。交換機通過MAC-端口對應表能夠正常的將數據報文從E1口轉發(fā)給路由器,實現(xiàn)數據傳輸。 b)黑客對PC2有完全的控制權,通過不斷發(fā)送(假冒的)ARP報文告訴PC1,自己才是1.1.1.1對應的MAC是0260.8c01.1113。 c)PC1收到黑客發(fā)的ARP報文后,刷新自己的ARP表,將1.1.1.1的MAC誤認為是0260.8c01.1113。 d)PC1將要訪問外網數據報文的目的MAC設置成0260.8c01.1113(PC2的MAC,目測PC1被自己的ARP表給騙了)。 e)交換機通過拆解包發(fā)現(xiàn)目的MAC對應的端口為E4(PC2的那個接口,連鎖反應了!),就將數據報文從E4口丟出。 f)PC2成功得到PC1發(fā)往外網的請求報文。偷看后重新封包,原IP、目的IP不改變,將原MAC改成PC2的MAC,目的MAC改成網關的(數據包恢復正常,看起來和沒攻擊時PC1發(fā)出的報文完全一樣),PC2修改完后將數據包丟給交換機,從而欺騙實現(xiàn),當然對于該包的回應報文,由于路由器ARP表沒被污染,所以能夠正常的將返回報文直接丟給PC1。 2.如何選擇欺騙方向 在欺騙過程中,選擇正確的欺騙方向也是很重要的,通過閱讀我們可以看到上面的欺騙方向是PC1à網關。那么我們如何確定正確的欺騙方向呢? a) 員工工作網絡,我們知道正常請求報文里面含有大量的敏感信息,如網站管理后臺賬戶密碼等。而請求包的走向是員工PCà網關,如果黑客控制的電腦與員工內部同一網段,那么正常情況下黑客會欺騙員工的PC機自己是網關,從而截獲請求報文 b)服務器網絡,而在機房(服務器網絡)中,管理員一般會在外部進行訪問,即請求報文是由網關轉發(fā)給服務器,也就是說請求報文的走向是網關à服務器,如果黑客控制的是機房里的一臺服務器,為了截獲到請求報文中的服務器登錄密碼等敏感信息,攻擊者一般會對網關發(fā)起欺騙,告訴網關自己是某臺或者某些服務器。 c) 實際上不管在員工網絡或者機房內部網絡,黑客比較習慣與進行雙向欺騙,一方面告訴網關自己是某些終端,另一方面告訴同網段的其他終端自己是網關,但是該方法會產生大量的垃圾信息,因為在回應報文中基本上不會攜帶敏感的信息。 3. ARP欺騙的瓶頸為了得到更多的敏感信息,很多人會使用雙向+批量的欺騙方式,一方面告訴網關自己的MAC對應的IP是網段內所有的IP(這樣無論數據報文是給哪臺機子的,只要是發(fā)送給同網段機器網關都會轉發(fā)給攻擊者);另一方面欺騙所有同網段終端自己是網關(實際上欺騙同網段所有的終端比較容易,直接將ARP包的目的mac設置成FFFFFFFFF就行了),從而所有終端發(fā)出的報文都會經過攻擊者的機器。但是如果這樣子做,攻擊者控制的機器直接承載了整個網段的數據流量,要對整個網段的數據進行處理,重封裝、再轉發(fā),這在服務器的性能和配置上要求可不是一般的苛刻,所以選擇好欺騙對象和方向顯得非常重要。 三.嗅探和ARP欺騙的區(qū)別 a) 嗅探一般存在于共享網絡中,在共享網絡中一般使用HUB作為接入層,經過HUB的數據報文不管長得什么樣,因為HUB工作在第一層,看不懂二層以上的報文是啥樣子的,所以一律以廣播處理,在同一網段的計算機只要將網卡設置成混雜模式即可。 b) 嗅探在交換網絡中不適用,因為交換機是通過MAC-端口對應表來轉發(fā)數據報文的,所以在交換網絡中如果只將網卡設置成混雜模式,而不進行ARP欺騙,其結果只能接受到網絡中的廣播包。 c) 共享網絡中適用ARP欺騙,那是多此一舉,適用ARP欺騙的方式會對影響網絡流量,對網絡造成很大的影響,另外適用ARP欺騙會產生大量的ARP報文,很容易被發(fā)現(xiàn)。而嗅探對整個網絡幾乎沒有影響,因為嗅探只是做監(jiān)聽,而不會產生多余的數據報文。 四.加密是否安全 很多人說使用HTTPS或者VPN等手段就可以防止嗅探或者ARP欺騙,這是不全面的。具體要看什么網絡及什么技術。下面筆者針對HTTPS和VPN在共享、交換網絡中進行探討。 1. 共享網絡+嗅探 a) 在共享網絡使用HTTPS確實可以很好的解決數據被竊取的問題(當然個人證書泄露除外),由于監(jiān)聽的機器沒有證書也就無法進行解密。 b) 在共享網絡中使用VPN技術不一定能夠防止,部分VPN技術只是在原有的數據報文多加一個IP報頭,對于數據內容本身未做加密,攻擊者使用監(jiān)聽技術獲取該類數據還是能正常獲取報文的內容的 2. 交換網絡+ARP嗅探從原理上講,該類型的攻擊屬于中間人攻擊,可以偽造任何證書,因此對于HTTPS等來說,攻擊者只要偷梁換柱,偽造證書就可以成功獲得數據的明文信息。但對于部分使用秘鑰不通過公網傳輸的協(xié)議(例如使用publikey驗證的SSH,KEY不通過網絡傳輸)就無法截取明文信息,也無法偽造。 3. 共享網絡+ARP欺騙該類型攻擊和第2中攻擊沒啥兩樣,就不做詳細討論了五.如何防止ARP欺騙及嗅探。實際上網上已經有很多種解決方案了,但在這邊還是小提一下簡單的防止方式。第四點也有提到了一部分。在交換網絡中一般使用雙向綁定就可以解決ARP欺騙的問題了,有些牛人說可以直接偽造MAC欺騙交換機,這也是一種繞過方法,但實際上這種方法可行性不高,雖然有時候確實能夠截獲到數據報文,但會時交換機的MAC-端口對應表產生混亂,另外報文若發(fā)給你就不會發(fā)給目標服務器,會產生拒絕服務攻擊。在共享網絡中使用雙向綁定理論上是沒效果的,因為只要經過HUB的數據都會進行廣播,即使綁定,所有終端也會收到數據報文。Hub不像二層交換,有MAC-端口對應表。當然對于嗅探和ARP攻擊的原理、利用和防御不止文中提到的這些,文章只是筆者的一點心得體會,僅供參考。說這么多,實際上要進行ARP攻擊的話,一個cain、一個sniffer、一個ettercap就可以完全搞定了。 【編輯推薦】
|
|
來自: NaturalWill > 《待分類1》