分享
 
 
 

802.1D生成树协议弱点及攻击方式研究

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

前提:

本文所讨论的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 ok\n");)

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))

reply(portno);

else

;

return;

}

这种攻击方式的思路是:

在PC上发送配置BPDU声明自己为根,发送的配置BPDU的根ID以降序发送。就是第二个配置BPDU发送总比第一个配置BPDU要具有更好的根抢占选举的条件,以不断的要求上面的交换机对发送的BPDU实施生成树协议的计算及更新,耗费交换机的资源。

注:

1. 第一种方式完全可以实现,并且在PC上运行生成树实例的代码已经完成,它是第二、三种攻击方式实现的基础。

2. 第二种攻击方式经过测试已经成功,但有一点不足是“在PC所连接的交换机到根交换机间跨过N个交换机的时候,无法精确控制哪个交换机的上联链路被BLOCKING,因为它跟链路成本计算有关”。

3. 第三种攻击方式未作过测试,因为手头确实缺乏能够用来作测试的交换机(前面的测试都是托朋友做滴)。假如哪位仁兄能有环境作个测试当然是再好不过。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有