中間人攻擊(MITM)之數據截獲原理 - The data interception principle of the man in the middle attack (MITM)
交換式局域網中截獲和監聽數據的方式主要有站表溢出、ARP欺騙、DHCP欺騙和ICMP重定向。廣域網中主要使用路由器欺騙。
1、站表溢出
交換機根據站表轉發MAC幀,站表中的項通過以太網幀的源MAC地址學習獲得,當交換機在站表中無法找到以外網幀的目標MAC地址時,會廣播該幀給所有端口。而且站表中的每一項都有生命周期,如果在周期內一直沒有收到與源MAC地址匹配的對應幀時,就會將該項從站表中刪除。當站表被填滿時,交換機停止學習直到某項因超時被刪除。攻擊者可以發送大量虛假源MAC地址的幀來占滿站表。使得后面再經過交換機轉發的信息都是以廣播形式發送的,這樣攻擊者就可以截獲所有經過交換機的報文。
防御:限制每個端口允許學習的最大地址數,使得當某個端口學習的地址數達到上限時將不再記錄。
2、ARP欺騙
在局域網中,主機通信前需要通過ARP協議將IP地址轉化為MAC地址,ARP欺騙就是通過偽造IP地址與MAC地址的映射關系實現的一種欺騙攻擊。因為在局域網中都是以MAC地址進行識別通信,發送方檢查ARP緩存中是否存在目標IP的MAC地址,不存在就會以廣播的形式發送ARP請求報文,這時所有主機都會收到報文但是只有目標IP的主機會響應發送ARP應答報文,發送方收到應答后便立即更新自身ARP緩存。攻擊者可以發送偽造的ARP報文請求或應答報文,使得目標主機的IP與MAC地址綁定為自己構造的。這時可以構造一個告訴被攻擊目標攻擊者主機為路由器,告訴路由器攻擊者主機為被攻擊者主機,使得所有發往被攻擊者的報文和攻擊者發送的報文都將被攻擊者截獲。
防御:
1、客戶端靜態綁定網關的真實MAC地址(arp -s 網關ip地址 網關mac地址)
2、在交換機和路由器上設置端口與MAC地址靜態綁定
3、定期檢查自身ARP緩存,是否有同一MAC地址對應多個IP地址的表項
4、使用防火牆持續監控ARP緩存
3、DHCP欺騙
DHCP用於自動配置終端接入網絡所需的信息,主要包括IP地址、掩碼和默認網關等。由於此過程中主機沒有對DHCP服務器進行任何認證,攻擊者可以偽裝成DHCP服務器,使得主機在剛接入網絡時就被分配虛假的網關,隨后主機的所有通信都會經過攻擊者指定的虛假網關。
防御:通常終端無法識別是否是DHCP欺騙,防御DHCP欺騙嗎必須在交換機上配置。通常是將交換機分為信任端口和非信任端口,交換機只轉發信任端口發出的DHCP應答報文,管理員必須將與DHCP服務器相連的端口和連接不同交換機的端口設置為信任端口,其他端口一律設置為非信任端口,這樣虛假的DHCP應答報文都會被交換機丟棄。
4、ICMP路由重定向
ICMP重定向報文是ICMP控制報文中的一種。在特定的情況下,當路由器檢測到一台機器使用非優化路由的時候,它會向該主機發送一個ICMP重定向報文,請求主機改變路由。路由器也會把初始數據報向它的目的地轉發。
(以下解釋 轉載自 http://www.cnblogs.com/KevinGeorge/p/7866840.html)
ICMP重定向技術,是用來提示主機改變自己的主機路由從而使路由路徑最優化的一種ICMP報文。其概念理解的要義是原主機路由不是最佳路由,而其默認網關提醒主機優化自身的主機路由而發送的報文。
2、ICMP重定向細節:
(1)報文格式:
幀首部 |
IP首部 |
ICMP重定向首部 |
ICMP重定向數據 |
ICMP重定向負載部分
類型:5 |
代碼:0(0~3) |
校驗和 |
建議使用的最優路由next-hop地址 |
||
IP首部 |
||
IP報文有效載荷的前8bytes |
代碼0~3代表的含義:
代碼 |
描述 |
0 |
網絡重定向 |
1 |
主機重定向 |
2 |
服務匹配條件下網絡重定向 |
3 |
服務匹配條件下主機重定向 |
·建議使用的最優路由地址:
路由器或其他網關類設備的接口地址。
·IP首部:
原ICMP報文IP報頭。
·IP報文有效載荷的前8bytes:
原ICMP報文中的類型、代碼、校驗、序列號等字段。
(2)發生條件:
·數據包的入接口和路由后的指定的出接口是同一個接口。
·數據包的源IP地址和該包應走的下一跳IP屬於同一網段。
·數據報非源路由的(這種情況應該比較少見了,源路由多見於Token Ring)。
·系統開啟重定向功能。
·受到ICMP重定向攻擊。
(3)系統響應:
·大部分windows系列OS會選擇添加一條主機路由作為默認動作。
·部分UNIX系列和UNIX-LIKE系列OS同樣選擇添加一條主機路由作為默認動作。
·部分UNIX系列和UNIX-LIKE系列OS以及一般而言絕大多數路由類網絡設備會忽略。
·Linux等可以作為路由器的OS針對ICMP重定向有着不同的標准動作選擇。
3、ICMP重定向應用:
(1)單純的提供路由優化選項建議。
(2)定向改變數據流傳輸路由路徑。
(3)通過優化路由改善服務的質量。
(4)進行非法的網絡攻擊入侵行為。
4、ICMP重定向攻擊:
從安全的角度來講,ICMP重定向報文沒有協議狀態檢查,以及合法性機制驗證,十分類似ARP報文,可以輕而易舉的進行欺騙攻擊。
當然不同的操作系統對於受到的ICMP重定向報文也會按照自己的一些標准進行過濾,例如Windows之接受來自其自身默認網關的ICMP重定向報文,其余來源ICMP重定向報文則被丟棄,但偽造網關發送報文十分容易。
ICMP攻擊可以達到的目的:流量的嗅探劫持、中間人代理權(這兩點差不多)
過程說明:
(1)正常時,user通過交換機Switch連接到網關設備Gateway,利用默認網關與跨網段的 服務器Server通信。
(2)異常情況下,攻擊者Attacker可以偽造網關向user發送ICMP重定向報文,可以結合 ARP欺騙技術,然后用戶user主機路由變成流量要通過Attacker來進行轉發通信。
(3)攻擊者可以截獲、提取、分析、修改、重放用戶user的數據包,造成多種安全威脅。
防御:
(1)網關端:
·關閉ICMP重定向(no ip redirects)。
·變長子網掩碼划分網段。
·使用網絡控制列表(ACL)和代理。
(2)主機端:
可以使用防火牆等過濾掉ICMP報文,或使用反間諜軟件監控。