首页 > 系统相关 >使用 Kali Linux 实现 Smurf 攻击

使用 Kali Linux 实现 Smurf 攻击

时间:2024-06-02 17:57:55浏览次数:31  
标签:请求 Kali 地址 192.168 Echo 广播 Linux Smurf ICMP

一、介绍

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:广播地址。

 受害者视角:

标签:请求,Kali,地址,192.168,Echo,广播,Linux,Smurf,ICMP
From: https://blog.csdn.net/2302_82189125/article/details/139280442

相关文章

  • Linux系统上配置redis开机自启
    Redis开机自启:第一步添加环境变量:命令:vim/etc/profile在结尾添加:exportPATH=$PATH:/usr/local/redis/bin作用是为了后续脚本的启动命令不需写的过长重载环境变量文件:source/etc/profile第二步:编写redis.service节点1:152服务器vim/etc/systemd/system/redis.service添......
  • linux: 基础io
     在C语言中,我们也学习过对文件进行操作,使用C语言对文件进行读写操作是一个正在运行的进程去访问一个二进制文件,想要访问一个文件,首先需要打开这个文件,不同语言都有对文件操作的接口,但是文件本身是存在于磁盘外设中的,想要从磁盘外设中拿到数据,这是要通过操作系统接手的,因为操......
  • linux:进程控制
    之前在晋城地址空间中有提到fork函数,可以创建一个子进程,但是它却有两个返回值附进程,返回子进程的进程号,PID子进程则返回零,那如何理解这一过程?一个函数返回两个返回值呢? 可以看到帮助文档中显示有两个返回值. Fork函数是一个系统调用,其中包括如下几个步骤,有创建子进......
  • linux:进程地址空间
    在之前使用C语言中,我们知道使用malloc函数可以开辟一块堆空间,然后这块堆空间如果不用的话是需要释放的,然后一般的变量是放在栈区上面的,还有一些静态区,代码段是存放静态变量和代码的,这些空间可以说是内存,但他又不是真正意义上的物理内存,我们可以做一个实验,我们可以使用fork......
  • linux:环境变量
    说到环境变量,相信这个词不是第一次听到了,在WINDOWS中可能在安装JAVA的过程中也会遇到有配置系统环境变量的相关操作我们知道在一个操作系统中存在着大量的数据信息,但是我们可以在命令行中输入一条命令,能准确的从计算机中的某个位置找到,并且执行对应命令的进程,计算机的命令行为什么......
  • 【Linux】System V 共享内存
    一、共享内存1.1共享内存的原理:       两个进程,操作系统在内存空间中创建一个共享内存。在之前学习库的时候,有一个共享库的概念。我们可以按照其概念来了解共享内存的概念:将共享内存映射到页表中,和进程的地址空间建立联系。我们可以将共享内存的虚拟地址交给用户。两......
  • linux:进程状态
    往往计算机的cpu只有一个,一个cpu有多个核心,一个cpu在同一时间只能被一个进程占用,又因为计算机的cpu数量总是少于进程数的,因此cpu是通过时钟轮片的方式处理每个进程的任务, 这些进程并不是凌乱的放在操作系统中的,他们是被一个数据结构有组织,有规律的管理起来的,所以一个进......
  • Linux目录的基本结构(RHEL8系统基本使用之文件操作)
    1.Linux的目录树结构2.各目录的功能介绍3.理解文件路径表示方法Who?——>当前登录的用户Where?——>路径我要在哪儿创建文件?我要删除什么地方的什么文件?我所要查看的文件在哪里?What?——>操作命令How?——>理清思路,找到方法,做就对了绝对路径1.一定是以"/"(根)开......
  • SSH远程连接Linux服务器
    1.1SSH(SecureShell)是一种网络协议,用于加密方式远程登录到服务器。以下是通过SSH连接Linux服务器的基本步骤:安装SSH客户端:Windows10及以上版本自带了OpenSSH客户端安装SSH服务端:在服务器端安装OpenSSH,需要在服务器终端进行。#安装sshsudoaptinstallopenssh-server......
  • 在Linux中,如何进行集群管理?
    在Linux中,进行集群管理涉及到多个步骤和考虑因素。以下是一个详细的指南,帮助你理解并执行Linux集群管理:一、理解集群管理的基本概念集群定义:集群是一组相互独立的、通过高速网络互联的计算机,它们构成一个组并以单一系统的模式加以管理。集群技术可以在较低成本下提供高性能、可......