檢視你的IPv6位址元件不要讓他再易受攻擊

2021-12-29 20:20:12 字數 2668 閱讀 6880

在部署ipv6無狀態位址自動配置(slaac)時都需要ipv6節點。在slaac中,本地路由器將ipv6網路配置資訊提供給本地主機,而本地主機利用這一資訊來建立起ipv6連線,這包括ipv6位址的配置等。與動態主機配置協議版本6不同,這裡沒有位址「租用」。相反地,主機會自己自動配置(或「租用」)ipv6位址。slaac採用路由器請求和路由器通告訊息來請求和傳達ipv6網路及ipv6位址管理配置資訊。自動配置過程的運作大致如下:

1. 主機配置鏈路本地位址;

2. 主機檢查位址是否唯一,即主機對(暫時)位址執行重複位址檢測(dad);

3. 主機傳送路由器請求訊息;

4. 在接收路由器通告(ra)後,主機為接收的路由器通告中的每個字首配置乙個或多個暫時ipv6位址;

5. 主機檢查位址是否唯一,即對暫時位址執行dad;

6. 如果位址是唯一的,它通常會成為「首選」位址,可以積極用於網路通訊。

在本質上,這意味著乙個節點首先配置乙個鏈路本地ipv6位址,然後基於ra訊息中的字首資訊配置乙個或多個全域性ipv6位址。ra訊息可能獲取其他網路配置資訊,例如到特定網路的ipv6路徑、遞迴網域名稱系統伺服器的ipv6位址以及採用的最大傳輸單元(即最大資料報大小)。

有些ipv6部署未能對ra訊息中的資訊執行驗證檢查,或者未能執行對相應資料結構的大小限制。

例如,有些部署會對ra訊息中的每個字首配置乙個位址,而不會對它們配置的ipv6位址的最大數量進行任何限制。因此,攻擊者可以對具有多個ra訊息(包含多個自動配置字首)的受害者採用洪水式攻擊,受害者將自動配置很多ipv6位址,最終將會崩潰或停止響應。

為了幫助了解這種攻擊的基礎,it管理員可以利用si6 networks的ipv6工具包中的ra6工具來執行這種攻擊,如下:

ra6 -i eth0 --flood-prefixes 10 -d ff02::1 -l -z 1 -v

這個命令將會向所有本地節點傳送乙個ra訊息,每秒包含10個(隨機)字首。這將導致每個節點為每個隨機字首配置乙個ipv6位址。

在unix系統中,ifconfig命令可以部署在任何受害者的節點來檢查已經自動配置的ipv6位址。

圖1 ifconfig命令可以用來探測自動配置的位址

當然,在現實世界攻擊中,ra訊息將以更高的速率傳送,例如每秒至少100。然而,由於這種攻擊可能讓所有本地節點崩潰,本例中採用了更保守的資料報速率來執行攻擊。

所有ra訊息包含路由器壽命值,這表明路由器傳送訊息多久後可以作為預設路由器。本地主機從ra訊息獲取這個數值,並通過本地定時器來追蹤它。本地路由器通過定期傳送(未請求的)ra訊息來試圖「更新」本地主機的相關定時器。因此,在正常情況下,路由器的壽命永遠不會到期。然而,攻擊者可以利用這個定時器或引數來用於拒絕服務(dos)目的。如果攻擊者能夠模擬本地路由器,並傳送路由器壽命值為0(或其他小數值)的ra訊息,受害者節點將從預設路由器列表中刪除假冒路由器,從而發生拒絕服務的情況。

假設特定子網的合法本地路由器是fe80::1,攻擊者會按如下命令利用ra6來向所有本地節點來執行dos攻擊:

ra6 -i eth0 -s fe80::1 -d ff02::1 -t 0

「-i eth0」表明發動攻擊所使用的網路介面;「-s fe80::1」表明攻擊資料報的源位址(合法本地路由器被假冒);「-d ff02::1」表示攻擊資料報被傳送到「所有節點鏈路本地多播位址」,而「-t 0」設定「路由器壽命值」為0。

netstat命令可以用來檢查受害者節點的路由表,並確認指向fe80::1節點的預設路徑已被刪除。

在ipv6位址被用於網路通訊之前,該位址需要檢查唯一性—這通常被稱為重複位址檢測。dad的工作原理大致如下:

·願意使用ipv6位址的節點將為上述位址傳送乙個鄰居請求(ns)訊息

·如果在響應中收到鄰居通告(na),該位址被認為是重複的,那麼dad失敗。

·如果沒有收到該位址的na訊息(可能是在一系列ns訊息重發後),該位址被認為是唯一,dad成功。

dad相應的ns訊息被傳送,其中包含設定為未指定位址(::)的源位址,因此這很容易區別於用於位址解析(而不是重複位址檢測)的ns訊息。

攻擊者可以通過如下命令利用na6工具來輕鬆地執行針對本地節點的dos攻擊:

na6 -i eth0 -b :: -l -v

這個命令指示na6監聽(「-l」)網路介面eth0中包含源位址設定為未指定位址(「-b::」)的ns訊息,當收到這種訊息時響應na。因此,當節點被引導並嘗試自動配置ipv6位址時,它試圖配置的每個位址都會被認為是重複位址,則slaac會失敗。

ifconfig命令可以用來檢查受害者網路介面卡的配置,如下:

圖2 檢查網路介面卡的配置

從上面的截圖中來,至少要注意兩件事情。首先,鏈路本地位址被標記為「重複」。其次,這個介面沒有配置全域性ipv6位址,原因在於,當暫時鏈路本地位址的dad失敗時,slaac被終止。因此,dos攻擊會發生。

網路不可達檢測(nud)是ipv6的另乙個元件,包括測試到相鄰節點的路徑,如果當前路徑失效還可以允許選擇替代路徑。最重要的是,攻擊者為感染nud唯一能做的事情是讓該協議來相信失敗路徑可以正常工作。

與其他基於nd的攻擊相比,這個漏洞並不是那麼吸引攻擊者,因此,大家並不需要過多擔心這個攻擊方法。

IPv6 位址格式

ipv6 位址大小為 128 位。首選的 ipv6 位址表示為 x x x x x x x x 其中每個 x 是代表乙個 4 位的十六進製制數字。ipv6 位址範圍從 0000 0000 0000 0000 0000 0000 0000 0000 至 ffff ffff ffff ffff ffff...

IPV6位址格式

一 單播位址 unicast ipv6addresses 1.可聚合的全球單播 aggregatable global unicast 即global位址,全球範圍內可達 2.鏈路本地位址 link local 用於同乙個鏈路上相鄰節點之間通訊。ipv6的路由器不會 鏈路本地位址的資料報。link ...

IPv6位址格式

ipv6 位址格式 ipv6 的位址長度是 128位 bit 將這128位的位址按每 16位劃分為乙個段,將每個段轉換成十六進製制數字,並用冒號隔開。例如 2000 0000 0000 0000 0001 2345 6789 abcd 這個位址很長,可以用兩種方法對這個位址進行壓縮,前導零壓縮法 將...