【802.1D生成樹協議弱點及攻擊方式研究】前提:
本文所討論的STP協議的攻擊方式都是站在交換機連接你的攻擊所用PC上的端口上運行了生成樹協議的基礎上 。
1、搶占根橋
在一個存在冗余二層連接的網絡中,根橋的正確選擇是網絡有效性的要害 。如下圖一的典型的二層冗余連接的一個示例拓樸:(紅色代表被BLOCKING的鏈路)
[見下圖一]
如上圖,兩臺核心交換機間互相連接并使用冗余連接到分布層交換機(我們假設它在一個二層網絡中,雖然實際上網絡拓樸有區別,但沒關系,只要是通過STP技術做的冗余連接就一個道理) 。這時左邊交換機成為根橋,右邊交換機連接到分布層交換機的鏈路被BLOCKING 。
看下圖:
[見下圖二]
假如一臺PC接到接入層的第二臺交換機上,我們將在這臺PC上運行一個生成樹的實例,這個生成樹實例用于搶占根橋 。圖上已經表示了,假如搶占根橋成功,核心交換機間的鏈路將被BLOCKING而且核心層與分布層交換機間的連接也將變成如圖所示 。
注:
在PVST(按VLAN的生成樹環境下),當然攻擊所影響的僅僅局限于本VLAN內的生成樹實例 。
2、偽裝根橋導致交換機上聯鏈路失效
[見下圖三]
如圖,設SW1本為根橋,下聯SW2&SW3為100M鏈路,開銷為推薦值19,SW2&SW3分別與SW4&SW5相連 。
正常情況下:
這本身是一無環拓樸,生成樹得到良好收斂 。
攻擊情況:
設PC連接至SW4-PORT2上,該端口參數為SW4-Port2-0x0002-100-10M即端口ID為2,開銷為100,鏈路為10M 。
我們在PC上運行一生成樹實例,本實例在初始化的時候首先偵聽當前根橋的BPDU參數(如根ID、根配置相關參數-FR_DELAY/hello_time/max_age等)然后以當前真實的根橋的ID運行一個生成樹實例,用于欺騙SW4,似乎在SW4-PORT2直接連接到了SW1的某個端口一樣 。這時將產生以下變化:
SW4重新計算生成樹將改變根端口從PORT1->PORT2(因為在PORT2上的根路徑成本只有100,PORT1上的根路徑成本有119),
SW4的PORT1不再是根端口,然而它在和SW2的PORT2之間進行指定端口選舉的時候,SW4-PORT1將失敗(不能成為指定端口,因為SW4-PORT1的指定成本為100,SW2-PORT2的指定成本為19),所以本端口既不能成為根端口也不能成為指定端口,它將進入BLOCKING狀態 。
3、升序偽造配置BPDU耗費交換機處理資源
先看看配置BPDU接收的處理:
void receive_config_bpdu(int portno,strUCt _stp_config *bpdu)
{
int isroot;
isroot=root_bridge();
if(!port[portno].flag)
return;
if(port_info[portno].state==DISABLED)
return;
DEBUG_WRAP(printf("Receive config bpdu okn");)
if(supersedes_port_info(portno,bpdu)){ 將接收到的BPDU與端口相關數據結構進行比較,是否有必要進行下一步的更新動作
record_config_information(portno,bpdu);記錄配置信息到端口數據結構里面
configuration_update(); 執行配置更新即重新選舉根及其它
port_state_selection();端口狀態的重新決定
if((!root_bridge())&&isroot){假如以前是根橋,而現在不再是根橋
stop_hello_timer();
if(bridge_info.topology_change_detected==TRUE){
stop_topology_change_timer();
transmit_tcn();
start_tcn_timer();
}
}
if(portno==bridge_info.root_port){假如說收到配置BPDU的端口成為了根端口
record_config_timeout_values(bpdu);要記錄配置超時值
config_bpdu_generation();并在所有的指定端口上生成BPDU
if(bpdu->tp_change_ack)
topology_change_acknowledged();
}
}
else if(designated_port(portno))
推薦閱讀
- 玉樹怎么養才,玉樹的養殖技巧
- 粗干大幸福樹怎么養才茂盛 幸福樹怎么養才長得茂盛
- 使用painter繪畫出叢林樹枝外觀效果圖形具體操作方法
- 櫻桃籽能不能培育出櫻桃樹
- 妄想山海侍從怎么砍樹
- 玉樹怎么養才最好,玉樹好養嗎應該注意點什么
- 墓地適合栽種什么樹
- 金錢樹夏天怎么養
- 如何讓紫薇樹長得更快一些
- 梨樹怎么養才旺盛,梨樹好養嗎
