Scapy畸形报文攻击

Scapy畸形报文攻击网络攻击可分为拒绝服务型攻击 畸形报文攻击和扫描窥探攻击三大类 畸形报文攻击是通过向目标系统发送有缺陷的 IP 报文 使得目标系统在处理这样的 IP 包时会出现崩溃 给目标系统带来损失 主要的畸形报文攻击有 PingofDeath Teardrop 等 nbsp 常见的畸形报文攻击方法 PingofDeath 攻击 PingofDeath 俗称 死拼 其攻击原理



网络攻击可分为拒绝服务型攻击、畸形报文攻击和扫描窥探攻击三大类。

畸形报文攻击是通过向目标系统发送有缺陷的IP报文,使得目标系统在处理这样的 IP包时会出现崩溃,给目标系统带来损失。主要的畸形报文攻击有 Ping of DeathTeardrop等。

 

常见的畸形报文攻击方法:

  1. Ping of Death攻击

Ping of Death俗称“死拼”,其攻击原理是攻击者A向受害者B发送一些尺寸超大的ICMP(Ping命令使用的是ICMP报文)报文对其进行攻击(对于有些路由器或系统,在接收到一个这样的报文后,由于处理不当,会造成系统崩溃、死机或重启)

IP报文的最大长度是216-1=65535个字节,那么去除IP首部的20个字节和ICMP首部的8个字节,实际数据部分长度最大为:65535-20-8=65507个字节。所谓的尺寸超大的ICMP报文就是指数据部分长度超过65507个字节的ICMP报文。

针对Ping of Death攻击,网络安全设备仅仅通过超大包过滤方法不能达到很好的防御效果,因为在线网种传输的大部分报文都经过了分片,所以单片报文不会超过65507个字节,只是在接收端完成组合后才会超过65507个字节。所以针对Ping of Death攻击,最有效防御方式是禁止ICMP报文通过网络安全设备。

 

  1. Teardrop攻击

Teardrop的攻击原理是:给受害者发送一些分片IP报文,并且故意将“13位分片偏移”字段设置成错误的值(既可与上一分片数据重叠,也可错开),受害者在组合这种含有重叠偏移的伪造分片报文时,会导致系统崩溃。

防御方法:网络安全设备将接收到的分片报文先放入缓存中,并根据源IP地址和目的IP地址对报文进行分组,源IP地址和目的IP地址均相同的报文归入同一组,然后对每组IP报文的相关分片信息进行检查,丢弃分片信息存在错误的报文。为了防止缓存益处,当缓存快要存满是,直接丢弃后续分片报文。

 

  1. 畸形TCP报文攻击

TC报文包含6个标志位:URGACKPSHRSTSYNFIN,不同的系统对这些标志位组合的应答是不同的。  

  1. 6个标志全部为1,也就是圣诞树攻击;  
  2. 6个标志全部为0,如果端口是关闭的,会使接收方应答一个RST | ACK消息,而对于一个开放端口的LinuxUNIX机器则不会应答,而Windows机器将回答RST | ACK消息。这可用于操作系统探测。  
  1. 不管端口是打开还是关闭,ACK与除RST外的其它任何一个状态位组合在一起 都会引起一个还没有发送请求的接收方的一个RST应答,这可用于探测主机的存在。
  2. 不管端口是打开还是关闭SYN | FIN | URG会让接收方发送一个RST | ACK应答,这可用于探测主机的存在。
  3. 如果端口是关闭的,SYNSYN | FINSYN | PUSHSYN | FIN | PUSHSYN|URG SYN | URG | PUSHSYN | FIN | URG | PUSH会使接收方应答一个RST | ACK消息;如果端口是打开的,会使接收方应答一个 SYN | ACK消息,这可用于主机探测和端口探测。
  4. 如果端口是关闭的FINURGPUSHURG|FINURG|PUSHFIN|PUSH  URG|FIN|PUSH 会使接收方应答一个RST | ACK消息,而对于一个开放端口 LinuxUNIX机器不会应答,而Windows机器将回答RST | ACK消息,这可用于操作系统探测。

 

  1. IP-fragment攻击

IP报文中,与报文分片有关的几个字段是:DFDon’t Fragmentate)位、MF位,Fragment OffsetLengthDFMF就是前面提到3位标识位中的第二和第三位,Fragment Offset就是“13位分片偏移”字段,Length就是“16位报文总长度”字段。如果上述字段的值出现矛盾,而设备处理不当,会对设备造成一定的影响,甚至瘫痪。Ip-fragment就是故意制造这种存在字段上相互矛盾的报文进行攻击的。

例如:

  1. DF位被置位(标明报文未分片),而MF位同时被置位或 Fragment Offset 不为0(表示是分片报文)
  2. DF位为0(标明是分片报文),而Fragment Offset + Length > 65535(未分片)

这些都有可能引起系统的崩溃,防御方法同Teardrop一样,都是对报文进行检查,丢弃非法报文。

 

Scapy畸形报文攻击的脚本示例:

Malformed IP packets:

>>>send(IP(dst=”10.1.1.5″, ihl=2, version=3)/ICMP())

 

Ping of death:

>>> send(fragment(IP(dst=”10.0.0.5″)/ICMP()/(“X”*60000)) )

 

Nestea attack:

>>>send(IP(dst=target, id=42, flags=”MF”)/UDP()/(“X”*10))

>>>send(IP(dst=target, id=42, frag=48)/(“X”*116))

>>>send(IP(dst=target, id=42, flags=”MF”)/UDP()/(“X”*224))

Description of Nestea

This DoS attack affects the Linux operating system.

The Nestea attack is very similar to the Teardrop attack, in that it sends IP fragments to a machine connected to the Internet or a network. But,while Teardrop affects Windows based systems, Nestea is specific to the Linux operating system, and exploits a bug (commonly known as the “off by one IP header” bug) in the Linux refragmentation code (the code that reformats, or puts back together, oversize packets when they are received from a client system).

 

The Nestea attack is very similar to the Teardrop attack, and is run against Linux versions 2.0 and 2.1.

 

Symptoms of Attack

Machines subjected to the Nestea Denial of Service attack will almost certainly crash. A simple reboot should be sufficient to recover from a Nestea attack.

How can I fix this vulnerability?

Apply the patch, which can be found at ICMPinfo’s Nestea Patch page.

 

 

Land attack (designed for Microsoft Windows):

>>>send(IP(src=target,dst=target)/TCP(sport=135,dport=135))

Land攻击发生的条件是攻击者发送具有相同IP的源地址、目标地址和 TCP端口号的伪造 TCP SYN数据包信息流。必须设置好 SYN标记。其结果是该计算机系统将试图向自己发送响应信息,导致被攻击的机器死循环,最终使受害系统瘫痪或重启。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218789.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午11:29
下一篇 2026年3月17日 下午11:29


相关推荐

  • Android 串口调试_串口转usb需要驱动吗

    Android 串口调试_串口转usb需要驱动吗本文背景:是真的不喜欢脑子记这些引脚,串口节点,动不动忘记了。1.首先记录一下硬件引脚—-tty节点对应关系2.找一组/dev/ttyHSL1,先测试一下自环,然后写个app,从app里面读写这个节点3.后续,通过串口和单片机通信,和esp8266通信,实现一个androidapp控制单片机硬件平台配置:平台:msm8909默认log串口:Board_KERNEL_CMDLINE.

    2022年10月10日
    3
  • 计算机语言cobol,COBOL语言编译器

    计算机语言cobol,COBOL语言编译器COBOL 语言 是一种面向过程的高级程序设计语言 主要用于数据处理 是国际上应用最广泛的一种高级语言 COBOL 是英文 CommonBusine OrientedLang 的缩写 原意是面向商业的通用语言 COBOL 语言编译器是指将 COBOL 源代码编译转换成机器代码的编译器 编译器首先检查是否有任何语法错误 然后将其转换为机器语言 编译器创建一个称为加载模块输出文件 此输出文件包含 0 和

    2026年3月18日
    2
  • J2EE项目系列(三)–Spring Data JPA+Spring+SpringMVC+Maven快速开发(1)项目架构

    J2EE项目系列(三)–Spring Data JPA+Spring+SpringMVC+Maven快速开发(1)项目架构好久没给大家弄Java后端项目系列了,因为接了Java后端外包以及学习一些后端优化的东西。而现在开始慢慢在这个系列的(三)逐渐把后端外包的一些有价值的东西分享给大家,并且自己也总结一遍嘛。本博客是这个系列的第一篇,所以先讲下项目架构。另外,这个系列还有一些我在外包项目过程中做的优化,七牛云,云旺IM等使用,以及解决一些小bug等等技巧。

    2022年6月6日
    37
  • python小项目:1、人机剪刀石头布

    python小项目:1、人机剪刀石头布

    2021年10月5日
    41
  • Linux下安装lrzsz

    Linux下安装lrzsz一. 手动编译安装1、 下载安装包,wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz  或者是  上传已经下载好的安装包lrzsz2、 cd /usr/local/src/3、 mkdir lrzsz4、 cd lrzsz/5、 解压:tar -xvf lrzsz-0.12.20.tar.gz6、 cd lrzsz…

    2022年6月23日
    28
  • CTok OpenClaw 配置指南 ​

    CTok OpenClaw 配置指南 ​

    2026年3月13日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号