ICMP路由重定向攻擊

道極發表於2021-07-08

ICMP介紹

ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用於在IP主機、路由器之間傳遞控制訊息。控制訊息是指網路通不通、主機是否可達、路由是否可用等網路本身的訊息。這些控制訊息雖然並不傳輸使用者資料,但是對於使用者資料的傳遞起著重要的作用。

ICMP重定向

ICMP重定向報文是ICMP控制報文中的一種。是用來提示主機改變自己的主機路由從而使路由路徑最優化的一種ICMP報文。其概念理解的要義是原主機路由不是最佳路由,而其預設閘道器提醒主機優化自身的主機路由而傳送的報文。

ICMP重定向原理

ICMP重定向資訊是路由器向主機提供實時的路由資訊,當一個主機收到ICMP重定向資訊時,它就會根據這個資訊來 更新自己的路由表。由於缺乏必要的合法性檢查,如果一個黑客想要被攻擊的主機修改它的路由表,黑客就會傳送 ICMP重定向資訊給被攻擊的主機,讓該主機按照黑客的要求來修改路由表。

 

實驗環境:

攻擊機kali: 192.168.43.103          閘道器192.168.43.1

被攻擊機 centos 7:192.168.43.190    閘道器192.168.43.1

 

在此前需要開啟攻擊機的路由轉發功能,此處使用kali作為攻擊機

在etc/sysctl.conf 將轉發引數改為“1”

ICMP路由重定向攻擊

正常情況下,被攻擊機器ping baidu.com返回如下所示

ICMP路由重定向攻擊

發起攻擊

netwox 86 -f “host {被攻擊主機ip地址}” -g “{新指定的閘道器ip地址}” -i “{當前閘道器ip地址}”

netwox 86 -f "host 192.168.43.190" -g "192.168.43.103" -i "192.168.43.1"  

 

這句話的意思是,嗅探網路中來自主機192.168.43.190的資料包,一旦出現,就以閘道器192.168.43.103的名義,向資料包的源地址傳送一個ICMP重定向報文,使之使用192.168.43.103作為預設的路由。

ICMP路由重定向攻擊

 

被攻擊後,被攻擊機器的資料包被重定向到了指定的閘道器,如下圖所示

ICMP路由重定向攻擊

紅色框中:

第二行:從localhost發出的資料被重定向到了攻擊機192.168.32.103

第三行:由於攻擊機開啟了IPV4轉發,攻擊機將資料包又重定向到了真正的閘道器192.168.32.1

 

關閉攻擊機的IP轉發,再進行測試

在etc/sysctl.conf 將轉發引數改為“0”

ICMP路由重定向攻擊

執行攻擊命令 netwox 86 -f "host 192.168.43.190 " -g "192.168.43.103" -i "192.168.43.1"

ICMP路由重定向攻擊

 

執行ping baidu.com檢視結果,可以看到雖然將目標機器與閘道器通訊的流量重定向到了192.168.43.103(攻擊機IP),但攻擊機沒有對流量進行轉發

ICMP路由重定向攻擊

 

解決方法:

忽略icmp重定向

Centos發行版本的系統可修改 /etc/sysctl.conf新增如下內容

 

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

 

net.ipv6.conf.all.accept_redirects = 0

net.ipv6.conf.default.accept_redirects = 0

相關文章