使用 Kali Linux 实现 Smurf 攻击

一、介绍

Smurf攻击是一种分布式拒绝服务(DDoS)攻击,利用IP协议中的ICMP(Internet Control Message Protocol)请求和网络的广播特性,使目标系统被大量ICMP回复包淹没,从而导致系统无法正常提供服务。以下是对Smurf攻击的详细介绍:

1.1 攻击原理

  1. ICMP Echo请求

    • 正常情况下,ICMP Echo请求(也称为Ping)用于测试网络连通性。主机A发送ICMP Echo请求给主机B,主机B回复ICMP Echo应答。
  2. 广播地址

    • 网络中的广播地址允许将一个数据包发送给网络内的所有设备。例如,一个IP子网的广播地址是该子网中的最高IP地址。
  3. 伪造源地址

    • 攻击者伪造源IP地址为目标系统的IP地址,向广播地址发送ICMP Echo请求。
  4. 流量放大

    • 广播地址上的所有主机会收到该ICMP Echo请求,并各自发送ICMP Echo应答到目标系统。由于这些应答数据包都是目标系统主动请求的,防火墙和路由器通常不会阻止这些返回流量。

1.2 攻击步骤

  1. 攻击者伪造源IP地址

    • 攻击者构造ICMP Echo请求数据包,将源IP地址伪造成目标系统的IP地址。
  2. 向广播地址发送请求

    • 攻击者将伪造的ICMP Echo请求发送到某个子网的广播地址。例如,如果子网是192.168.1.0/24,广播地址是192.168.1.255。
  3. 子网中的所有主机响应

    • 广播地址上的所有主机会接收到该ICMP Echo请求,并认为是目标系统发出的请求,因此会向目标系统发送ICMP Echo应答。
  4. 目标系统被淹没

    • 目标系统收到大量ICMP Echo应答数据包,导致网络带宽和系统资源被迅速耗尽,最终无法正常响应其他合法请求。

1.3 攻击影响

  • 网络带宽耗尽

    • 大量ICMP Echo应答数据包占用目标系统的网络带宽,导致网络性能下降甚至瘫痪。
  • 系统资源耗尽

    • 目标系统处理大量无用的ICMP Echo应答数据包,消耗大量的CPU和内存资源,可能导致系统崩溃或重启。
  • 拒绝服务

    • 目标系统由于无法处理正常请求,导致服务中断,用户无法访问系统提供的服务。

1.4 防御措施

  1. 禁用IP广播地址响应

    • 在路由器和交换机上配置ACL(访问控制列表),阻止对广播地址的ICMP Echo请求,防止内部网络设备响应此类请求。
  2. 配置防火墙

    • 配置防火墙规则,阻止外部网络向内部网络广播地址发送ICMP Echo请求。
  3. 限制ICMP流量

    • 配置防火墙和路由器限制ICMP流量的速率,防止大量ICMP请求和应答数据包影响网络性能。
  4. 入侵检测系统(IDS)和入侵防御系统(IPS)

    • 部署IDS/IPS,实时监控网络流量,检测并阻止异常的ICMP流量。
  5. 网络分段

    • 使用VLAN(虚拟局域网)技术将网络分段,减少广播域的范围,限制攻击影响的范围。
  6. 禁用不必要的ICMP功能

    • 禁用网络设备和服务器上不必要的ICMP功能,减少潜在的攻击面。

二、实验环境

攻击者:192.168.134.147

受害者:192.168.134.148

三、实操演示:

使用hping3进行攻击(在攻击者设备上执行):

sudo hping3 -1 -a 192.168.1.100 -c 10000 192.168.1.255

参数解释:

  • -1:使用ICMP协议。
  • -a 192.168.134.148:伪造源IP地址为目标系统192.168.134.148。
  • -c 10000:发送10000个请求。
  • 192.168.134.255:广播地址。

 受害者视角:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ZDH-数据管理模块

目录 主题 项目源码 预览地址 安装包下载地址 数据管理服务 数据资源管理 数据资源权限 数据资源血缘 总结 感谢支持 主题 本篇文章主要介绍ZDH-数据管理服务及应用场景 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 预览地址 后台管理…

【C++】类和对象——构造和析构函数

目录 前言类的六个默认构造函数构造函数1.构造函数的概念2.构造函数的特性 初始化列表1.构造函数整体赋值2.初始化列表 析构函数1.析构函数的概念2.析构函数的特性 前言 类和对象相关博客:【C】类和对象   我们前面一个内容已经讲了关于类好对象的初步的一些知识&…

绿联 安装MariaDB数据库用于Seatable服务

绿联 安装MariaDB数据库用于Seatable服务 1、镜像 mariadb:latest 2、安装 2.1、基础设置 重启策略:容器退出时总是重启容器。 2.2、网络 网络选择桥接(bridge)。 2.3、存储空间 装载路径/var/lib/mysql不可变更。 2.4、端口设置 容器端口3306,本…

7. MySQL 视图、索引

文章目录 【 1. 视图 View 】1.1 视图原理1.2 创建视图 CREATE VIEW1.2.1 创建基于单表的视图1.2.2 创建基于多表的视图 1.3 查看视图1.3.1 查看视图的内容1.3.2 查看视图的详细信息 1.4 修改视图 ALTER VIEW1.4.1 修改视图内容1.4.2 修改视图名称 1.5 删除视图 DORP VIEW 【 2…

Ansys Mechanical|组装 External Mechanical Model

Assembling Finite Element Models 上文中介绍了如何导入外部模型并将其组合到单个模型中的示例。 如果要将外部模型与Workbench环境中已有的一个或多个模型组合在一起,该如何操作?本文将介绍这个工作流程。 Ansys Mechanical支持Mechanical Model和Ex…

移动系统编程-安装和运行Ionic应用程序 (Installation and Running Ionic Apps)

安装 (Installation) 假设您已经安装了Node.js和Angular,您可以使用以下命令安装Ionic: npm install -g ionic/cli您也可以不使用CLI安装Ionic,但如果您使用的是最新版本的Cordova,这样做可能会导致版本不匹配,不推荐…

用幻灯片讲解C++中的C语言风格数组

用幻灯片讲解C中的C语言风格数组 1.栈内存中的C风格数组 糟糕的可用性,但你将在遗留代码中看到它们。相同类型的对象块。大小必须是常量表达式。第一个元素的索引为0,即数组索引从0开始。 注意一下数组的初始化,使用了C11标准之后的统一初始…

回溯算法 -- 77. 组合

目录 一.题目描述 二.解题思路 三.回溯三部曲 3.1确定递归函数的返回值以及参数 3.2回溯算法的终止条件 3.3确定单层循环搜索逻辑 四.具体的代码 一.题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案…

软件开发整体介绍

黑马程序员瑞吉外卖 文章目录 一、软件开发流程二、角色分工三、软件环境 一、软件开发流程 二、角色分工 三、软件环境

MySQL—函数—流程控制函数(基础)

一、引言 接下来,我们就进入函数的最后一个部分:流程函数。而流程控制函数在我们的日常开发过程是很有用的。 流程控制函数在我们 sql 语句当中,经常用来实现条件的筛选,从而提高语句的一个执行效率。 我们主要介绍以下4个流程控…

第十五课,海龟画图:抬笔与落笔函数、画曲线函数

一,turtle.penup()和turtle.pendown():抬起与落下画笔函数 当使用上节课学习的这个turtle.forward():画笔前进函数时,画笔会朝着当前方向在画布上留下一条指定(像素)长度的直线,但你可能发现&a…

自动微分技术在 AI for science 中的应用

本文简记我在学习自动微分相关技术时遇到的知识点。 反向传播和自动微分 以 NN 为代表的深度学习技术展现出了强大的参数拟合能力,人们通过堆叠固定的 layer 就能轻松设计出满足要求的参数拟合器。 例如,大部分图神经网络均基于消息传递的架构。在推理…

政安晨【零基础玩转各类开源AI项目】:解析开源项目的论文:Physical Non-inertial Poser (PNP)

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本文解析的原始论文为:https://arxiv.org/…

有容微ASW3642 HDMI或者DP双向切换器,二进一出,一进二出支持4K60HZ分辨率

ASW3642描述: ASW3642 是一款 12 通道 1:2 或 2:1 双向多路复 用器/ 多路解复用器。 ASW3642 可由 2.6V 至 4.5V 的电源供电,适用于电池供电的应用。该器 件的导通电阻(R ON )较低并且 I/O 电容较小, 能…

Nginx配置详细解释:(1)全局配置

自启动安装nginx:前面博客有解释 systemctl stop firewalld setenforce 0 [rootNode1 ~]#:mkdir /data [rootNode1 ~]#:cd /data [rootNode1 data]#:yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel [rootNode1 data]#:wget http://nginx.o…

JMeter工具介绍

Jmeter功能概要 JDK常用文件目录介绍 Bin目录:存放可执行文件和配置文件 Docs目录:是Jmeter的API文档,用于开发扩展组件 printable_docs目录:用户帮助手册 lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包 修…

linux mtd分区应用操作sample之某分区擦除

什么是擦除? 把flash相关的区域数据bit置为1的过程 #include <mtd/mtd-user.h> #include <mtd/mtd-abi.h> struct erase_info_user {__u32 start; // 起点 __u32 length; //长度 块大小对齐 不然报参数失败 };struct erase_info_user64 {__u64 sta…

wandb安装与使用 —— 用于跟踪、可视化和协作机器学习实验的工具

文章目录 一、wandb简介二、wandb注册与登陆&#xff08;网页&#xff09; —— 若登录&#xff0c;则支持在线功能三、wandb安装与登陆&#xff08;命令行&#xff09; —— 若不登录&#xff0c;则只保留离线功能四、函数详解4.1、wandb.init() —— 初始化一个新的 wandb 实…

Vivado的两种下载安装方式:Webpack下载与安装、本地文件安装详细步骤讲解

目录 1.前言2. Vivado Webpack下载、安装3.本地文件下载安装 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 本人自本科大二开始接触FPGA相关知识&#xff0c;现已将近六年&#xff0c;由于一直在上学&#xff0c;也不是一直在搞FPGA&#xff0c;但是也完成过一些项目…