探索交换机的秘密--底层网络协议漏洞分析与利用
BugBank
交换机支持的基本协议介绍
1、什么是交互机:
2、eNSP华为模拟器:通过eNSP搭建模拟环境,1个交换机下配3个主机,来观察数据包:包括arp广播、应答等。
3、在模拟环境中,对比集线器和交换机的区别:
- 集线器不会形成MAC地址表,但也可以使网络设备之前互相连通
- 交换机的原理是转发
- 集线器的原理是广播,把收到的信号放大,在发给各个接口,所以是不安全的。
4、广播风暴——环路的产生
SW1和SW2如图连接,当PC1向SW1发送ARP请求包,是广播,所以会向除了SW1的1口以外的接口发送数据包,当然就包括自身的接口3,当SW2的接口1收到数据包,同样向除了本接口的其他接口发送数据包,通过SW2的接口2发送到SW1的接口4,至此,陷入一种循环,会急剧消耗这两台交换机的内存、CPU性能。
5、Spanning-Tree Protocol(生成树协议)
- 作用:
- 消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
- 链路备份:当活动路径发生故障时,**备份链路,及时恢复网络连通性。
- 工作原理:
- 选举一个根桥。
- 每个非根交换机选举一个根端口
- 每个网段选举一个指定端口
- 阻断非根、非指定端口
6、DHCP(动态主机分配协议):
7、VLAN(虚拟局域网)
底层网络协议设计存在的缺陷
1、ARP协议的设计缺陷——ARP欺骗攻击
原本是PC1要和PC2之间通信,PC1发了一个ARP的数据包,PC2应答,说我的IP是1.2,MAC是5D-A5,然后PC1中会存一个ARP表,ARP表记录了IP与MAC的对应关系。这时,PC3作为一个攻击机,不断向SW1发送ARP的数据包,说我是1.2,然后我的MAC是0E-34,这时,PC1要访问1.2就会直接访问MAC地址0E-34,也就是PC3。
2、VLAN的设计缺陷——DTP协议与双标签跳跃攻击
比如说,能否实现跨VLAN攻击,PC1-VLAN1能否发送数据包到PC3-VLAN10?
在PC1端数据包可以先打一个VLAN10的标签,再在外面打一个VLAN1的标签,SW1默然不接受任何带标签的数据,但是会接受带有当前VLAN标签的数据,所以当此数据到达SW1时,会解掉外层的VLAN1标签,然后又会发现还有一个VLAN10标签,这样PC3、PC5就都会收到数据包;但是这个方法有一个缺陷,就是PC3或者PC5的响应数据包回不去,PC3的数据包是正常的,到了SW1会打上一个VLAN10的标签,VLAN10的标签是到不了VLAN1的接口的,所以这种攻击只能是单向的。
DTP协议攻击:https://www.cnblogs.com/blacksunny/p/7019431.html(要做实验模拟一下)
3、生成树协议的设计缺陷
交换机出厂默认都会自动开启stp协议,开启stp协议后每台交换机都会认为本身为RootBridge。通过相互发送BPDU,先比较桥ID,若桥ID相同则比较MAC地址,小者为根桥。
攻击思路:可以自己构造出一个BPDU包,巧妙的构造出最小的MAC地址以及最小的桥ID。来实现对根桥的抢夺,从而达到生成树欺骗攻击。
4、DHCP协议设计存在的缺陷
- DHCP Server仿冒攻击
- DHCP报文泛洪攻击
- 仿冒DHCP报文攻击
- DHCP Server服务拒绝攻击
5、交换机本身设计的缺陷——降级交换机为集线器(MAC地址泛洪攻击)
交换机可以学习各端口的MAC地址并产生MAC地址表。转发数据帧也一样根据对应的MAC地址表转发。交换机默认没有规定单端口可以学习多少个MAC地址,所以默认单端口是可以无限学习MAC地址的。但交换机的MAC地址表是有限的。当交换机的MAC地址表被恶意填充满的话,此时要是有新的MAC地址出现时,交换机将不会学习该MAC地址并转发。从而只能执行数据广播。故此,一旦交换机的MAC地址表被填充满。那么交换机将被降级成集线器,抓包也会抓到所有来自交换机任何端口的数据包。(要做实验)
使用Python来实现对交换机的渗透测试
1、Scapy
- Scapy是一个Python模块,他可以轻松的构造网络数据包(无论正经,或者不正经的数据包均可构造)。并可以直接将数据包发送至网卡,是一个非常强大的网络数据包操作攻击。
- Scapy设计目的:可随心所欲撩网络协议栈
- 简单的构造数据包——构造ARP数据包:可以在eNSP中,添加一个云,使本地数据和模拟器中的数据可以互达,基于此再来做实验。
- 根据ARP协议的设计缺陷来实现ARP欺骗攻击(要做实验)
- 利用ARP协议实现MAC地址泛洪攻击(但是模拟器一部分特性,与实际产品的特性是不同的)
- 根据STP协议破坏生成树实现环路攻击
如何避免这种漏洞的产生
1、避免交换机被mac地址泛洪
- 启用MAC地址学习限制规则
2、对交换机进行配置避免被ARP攻击
- 配置ARP表项固化
- 配置ARP防网关冲突
- 配置ARP优化应答
- 配置ARP报文合法性检查
- 配置ARP表项严格学习
- 配置DHCP触发ARP学习
3、避免交换机遭受生成树攻击
- 配置交换设备的BPDU保护功能
- 配置交互设备的TC保护功能
- 配置端口的ROOT保护功能
- 配置端口的环路保护功能
4、避免交换机遭受DHCP攻击
- 开启设备根据DHCP Snooping绑定表生成接口的静态MAC表项功能
- 使能设备对DHCP报文上送DHCP报文处理单元的速率进行检测的功能
- 配置防止仿冒DHCP报文攻击
- 配置防止DHCP Server服务拒绝攻击
其他:
- 很多内网交换机都是默认密码
- Switch提权
- Switch出厂设置一般默认都没开防护
- 《硬件安全攻防大揭秘》
好好学习,多挖洞。