區域網癱瘓 源自傀儡主機DDoS攻擊

2021-05-12 13:16:59 字數 2457 閱讀 2490

接到客戶求助,最近進行了一次網路「出診」。這是乙個由傀儡主機的ddos攻擊引發的網路故障,案例比較典型,排錯過程也頗曲折。筆者就還原其過程,與大家分享。

1.網路環境

這個客戶是一家化工企業,網路規模不大。十多台交換機組成的區域網,節點大約150個左右。沒有劃分vlan,—部分主機執行ipx協議,另一部分執行tcp/ip協議。其中只有少數主機可以訪問internet,接入模式為adsl路由器直接連線網路中的一台交換機。adsl路由器中啟用了其自帶防火牆功能,所有可以上網的主機安裝了防病毒軟體。

2.故障描述

最近的某一天,整個網路突然癱瘓。可以看到所有交換機埠指示燈急速閃爍,測試得知網路中任意兩台主機之間不能相互ping通,所有網路應用均不能正常進行。在拔掉部分網線(交換機之間的級連線)後,症狀有所減緩,最後恢復正常。將拔掉的網線逐一插回原位,故障現象未重新出現。此後這種現象不定時、無規律地出現。

3.故障分析

基於故障發生時交換機埠指示燈急速閃爍、網路中任意兩台主機之間相互不能ping通這一現象,初步斷定此時網路中充斥了大量的廣播包,耗盡了網路資源。那麼這些突然出現的巨量廣播包是**來的呢?為查詢廣播源,在故障出現時,使用sninffer軟體捕捉資料報。結果發現,網路中並沒有出現原來估計的廣播包,卻有大量的不正常單目ip資料報。

4.排除故障

通過分析發現,這些資料報是主機172.*.*.1l傳送給主機219.*.*.88的,傳送速度不小於每秒l萬5千個。詢問管理員得知,172.*.*.1l是內網的一台可以訪問internet的主機。這明顯是不正常的,將該可疑主機斷開後,問題解決。

5.深入分析

網路故障雖然排錯,但筆者感覺一切並沒有這麼簡單。因為按常理,傳送給主機219.*.*.88的資料報不是廣播包,不應該被傳送到執行sniffer主機所在的交換機埠。很明顯,這些資料報在網路中以廣播的形式被傳送了。如此數量的廣播包充斥網路,正是造成網路癱瘓的罪魁禍首。

(1).區域網主機成了傀儡

(2).adsl路由器被「淹沒」

另乙個問題是,這些攻擊包應該是從傀儡機傳送到adsl路由器,然後到internet中目標主機的,並不是通常所說的廣播包,為什麼交換機以廣播的形式傳送這些廣播包呢?分析可能原因只有乙個:此時交換機的位址**表(cam)中沒有adsl路由器內網介面的實體地址,引起交換機將單目包廣播到所有交換機埠。

開始時,交換機位址**表中包含adsl路由器的實體地址。那麼,傀儡機開始攻擊後,網路中形成乙個穩定的攻擊資料流:傀儡機→若干交換機→adsl路由器→被攻擊的目標主機。此時對內網的影響僅僅是某些交換機的埠和adsl路由器,adsl路由器因為忙於處理大量的攻擊包而被「淹沒」,會導致內網中主機訪問互連網出現問題。

(3).互動導致的廣播風暴

什麼原因導致交換機的位址**表丟棄了adsl路由器內網介面的實體地址暱?有兩種情況:一是預設情況下,5分鐘內,如果交換機沒有接到某個裝置傳送的資料幀,則認為該裝置已經宕機,為節省資源,將從cam表中刪除該位址。二是當stp協議探測到網路拓撲有改變時,將清空所有未重新整理的cam表項。假定此時有人因為不能上網而重新啟動主機,或插撥網線,則會引起交換機埠狀態發生變化。此時,交換機認為網路拓撲發生了變化,它的下—個動作是通知所有交換機,15秒內清除未被重新整理的位址**表表項。

這裡的「未被重新整理」是指,交換機沒有收到以該實體地址為源位址的資料幀,也就是說,該裝置沒有傳送資料幀經過交換機到其他裝置,那麼該裝置的實體地址在交換機的位址**表中將被清除。以後,所有以該裝置實體地址為目的位址的資料幀,雖然不是廣播幀,也將被傳送到交換機的所有埠,這就是平時所說的廣播風暴。

(4).故障形成過程

通過上面的分析,最後回到我們的例子理一理這次故障形成的過程。在傀儡機的攻擊行為開始後,小小的adsl路由器每秒要接收、處理不少於l5o00個資料報,它縱然是有三頭六臂,也沒機會向交換機傳送資料報了。也就是說,它現在是只有接受沒有傳送,沒辦法重新整理交換機cam表中的相關表項。那麼,快的話15秒後,慢的話5分鐘,交換機就會清除adsl路由器的實體地址記錄。別忘了,此時攻擊資料流並沒有停止,而這些攻擊資料幀恰恰是以adsl路由器實體地址為目的位址的,這樣,災難發生了,所有資料幀被廣播到網路中每台交換機中的每—個埠。

6.解決方案

這此網路故障從表面上看是由一台傀儡主機引起的,具有一定的偶然性。但從根本上來說是必然,不合理的網路結構是造成這次故障的關鍵因素。筆者給出的解決方案是:

(1).將充當傀儡機的電腦從網路中斷開後,重新安裝系統,徹底杜絕隱患。

(2).加強本地網路安全防範措施的同時,對原網路結構進行調整:據不同應用分成幾個vlan,將可以上網的機劃分到某個特定vlan中,限定此類故障的影響範圍。

(3).將連線主機的埠配置為stp速埠,不參與stp協議,可以減少網路中交換機不必要的拓撲改變操作。

就這次網路排錯筆者的啟示是:網路排錯類同於醫生治病,庸醫往往是「頭痛醫頭,腳痛醫教」不會從根上進行醫治,而高明的醫生卻往往是治本。網路排錯何嘗不是呢?

區域網 有IP位址定位主機

最近一段時間發現單位電腦莫名會分配到2002開頭的ipv6位址。根據該ip位址的字首,可以得知該電腦的ipv4位址。關於如何由ipv6位址檢視相應分配該位址的ipv4位址,可以參考 此時,如果是集體單位,並且分配電腦時,mac有所記錄,則可以方面找出該電腦。現在自己單位的機器分配沒有記錄mac位址,...

Python 區域網掃瞄存活主機開放埠

python 區域網掃瞄存活主機開放埠 by 鄭瑞國 1 ping指定ip判斷主機是否存活 2 ping所有ip獲取所有存活主機 3 nmap掃瞄存活主機開放埠 注 若在linux系統下 ping n 改為 ping c 若在windows系統下 ping n 不變 import nmap impo...

nmap掃瞄區域網存活主機 nmap的基本使用

首先nmap是一款黑客常用的掃瞄工具,功能強大,有 諸神之眼 之稱。話不多說,直奔主題。1 了解命令之前我們先來看一看掃瞄的埠狀態 埠狀態 open 表示埠處於開啟狀態 closed 表示埠處於關閉狀態 filterd 表示埠處於過濾無法收回到返回值的probe狀態 unfilterd 表示埠收到返...