自从学了计算机网络,室友终于不在半夜打游戏了-- ping/ICMP学以致用

相信很多好好学习天天向上的宝宝,经常会有这样的苦恼:凌晨两点,隔壁床游戏打得正酣,机械键盘啪啪的响,嘴里不时吼道“又捡到一个二级头。我x这货开挂了吧,举报举报。。。”你心里可能恨恨地想着:捡你个头,举报你个头,我特么才要举报你呢,大晚上的不睡觉,...(此处省去30字脏话)。好吧,总之,你可能想过,我要是有个办法能让他或她断网就好了......

今天在学习ICMP协议(Internet Control Message Protocol)的时候,做到了一道题,问ping命令可以用来做什么↓
ping

其中第三个选项说: ping can be maliciously used as a way to attack a machine by flooding it with ping requests.
通过大量的ping请求,ping可以被恶意地用作一种攻击方式。

做完这道题的时候,我虎躯一震,抖擞起了原本因为晚上没睡好而萎靡的精神。对啊,如果我死命的ping对方,对方是不是就上不了网了?即使能让对方的网络变卡也行。
其实这是一种网络攻击方式,它有种酷酷的名称,叫“死亡之ping”, 英文为"ping flooding"(像洪水一样ping对方,直到对方淹死在你的icmp里)

  • 什么是ICMP

    要了解什么是ping flooding,我们先要了解ping是什么,要了解ping,则首先要了解什么是ICMP。

    提起ICMP,一些人可能会感到陌生,实际上,ICMP与我们息息相关。在网络体系结构的各层次中,都需要控制,而不同的层次有不同的分工和控制内容,IP层的控制功能是最复杂的,主要负责差错控制、拥塞控制等,任何控制都是建立在信息的基础之上的,在基于IP数据报的网络体系中,网关必须自己处理数据报的传输工作,而IP协议自身没有内在机制来获取差错信息并处理。为了处理这些错误,TCP/IP设计了ICMP协议,当某个网关发现传输错误时,立即向信源主机发送ICMP报文,报告出错信息,让信源主机采取相应处理措施,它是一种差错和控制报文协议,不仅用于传输差错报文,还传输控制报文。 ------摘自网络

总之,简单来说,icmp首先可以用于所谓的“差错报文”,就是发送出问题时对方回复你“这里出问题了,没送到!”,比如下表:没到达应到的网络-->icmp报错;包在网络中迷路过期了-->icmp错误。第二则用于“控制报文”,比如我们总说某个网络能不能ping通,那么我们实际是看,我们给某个ip发一个icmp(echo request),看它会不会回复我们一个icmp(echo reply),回复了就意味着网络是通的,没回复就是哪里出问题了。

image.png

  • ICMP是如何工作的

    image.png
    假如小明是路由(router),你给小红(host)写了份情书(ip packet),但是不晓得怎么被小明捡到了,不知所措的小明心想肯定是邮递员弄错了吧,他很好心的想把信件送还给你,但是由于你对小红实在情深意切,写的东西太多,而小明只想告诉你发送失败了,再发一次,而没必要告诉你,你自己究竟写的是什么鬼话,于是他把你的信封保留了(ip头部),还把你的信撕得只留下八个字节(让你知道哦原来是我写的千万封情书中的哪一封),然后,小明在你的旧信封上套了个ICMP牌子的大信封,还在大信封里写了张纸条,这是什么类型什么编码的icmp(见上图type,code栏),署名发信地为小明的ip,收件人为你的ip。

  • ping是如何工作的

icmp&ping

有一天,你惹小红生气了,她一连好几天好几天不理你,于是你想写封信问候一下她,但是又怕说错话惹得她更加生气,于是你写了封简短的icmp,标号8、0代表这是用于"echo request",只是想看看小红在家不,并不想打扰到她。小红家的管家接到了你的信,啥也没说,把一封”echo replay"的icmp回信发还给了你。于是你就知道小红好着呢!只是不想理你~

  • 死亡之ping

    言归正传,我们来看看用什么方法可以让舍友断子绝孙,哦不,不能上网!
    打开电脑的终端。通过 man ping 命令,我们可以看到ping命令的详细使用方法,其中-s可以指定发送包的大小,-i指定发送的包的频率,这两个正是我们想要的,因为首先我们需要发送足够大的数据包从而能撑爆对方的带宽,其次每秒ping一次可不够,我们最好要每秒ping他个上千次,这样才更有可能阻塞对方的网络。

如果不指明,默认发送64字节ICMP数据以及8字节的icmp头部

注意间隔如果低于0.2秒一次需要超级用户权限,所以我们最后需要sudo+命令

另外,以上的方法只使用linux或者mac系统,windows据说是这么写的ping -l 65500 -t ip地址

好吧,重点来了,首先躺枪的是我的手机。

这里提醒一下,这种方法有效的前提是你们都在一个局域网下,比如你们连的都是校网。

查看我手机的内网ip,这里我用的是termux软件

然后在你的电脑上输入sudo ping ***.***.***.*** -i 0.001 -s 65500 ,这个意思就是说,每0.001秒给我的手机发送一个大小65500字节的icmp包。然后按回车:
616063456.jpg

于是可以看到,我手机的流量蹭蹭蹭的涨上去了,等十秒以后,我就连不上百度了。。。
按ctrl+c停止攻击后,手机再次恢复了平静

后记:

当然,这种攻击方法还有很多新花样,比如仿造对方ip发送,让局域网下的电脑都收到对方的ping request,从而让整个局域网ping reply对方的电脑,或者动动脑子在内网搞个大闹天宫,我点到为止。

同样,除了icmp攻击,类似的攻击方法还有udp攻击,tcp攻击。本人菜鸟,具体是不是叫这个名儿我不知道瞎说的别信。

我一直觉得,学习计算机和学习魔法有非常多的相似之处。在霍格沃兹,学生学习一系列的咒语来召唤出潜藏在魔杖中的魔力,而我们,学习一系列的编码,代码(code)来召唤出计算机中的算力,从而为我们所用,造福人类,to make the world a better place是所有程序员的信条。所以,当你学了更多的知识,当你有了更强大的魔力以后,不要试图去做伏地魔,就像谷歌喊出的口号-------don't be evil!(不作恶!)

转载于:https://www.cnblogs.com/tianyu-hua/p/8547219.html

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值