前言

我为什么要将“死亡之PING”归结到《贪婪》?

其实如果你知道“死亡之PING”的里含义就很好理解了。

我始终相信双刃剑理论,其实个人主观臆断是“死亡之PING”最一开始并不是恶意攻击方法,而是为了达成目的而做成的一劳永逸的工具。

为什么我会这么认为?首先我们要知道PING的含义。

ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 [1]  。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。

——百度百科

由上述一段介绍得知,PING可以做到连接服务器,那也就意味着,我用PING去连接一个网站,相当于访问了这个网站。而通过猜测,如果你想让一个网站达到一定的访问量,就可以这样做。

那么也就意味着,那些很贪婪的想一直刷访问量的人,肯定想用这种办法的吧~

不过,仅仅是访问网站而已呀 ?和黑客攻击有什么关系?

咱们日常访问普通网站或服务器时,有没有一种现象叫做500、502或504?

500错误:

500 Internal Server Error 内部服务错误:顾名思义500错误一般是服务器遇到意外情况,而无法完成请求。

502、504错误:

502 Bad Gateway错误、504 Bad Gateway timeout 网关超时

——幽幽靖

上述错误造成的原因有一个交点:当我的访问数据超载,资源被吃到不足。

那么资源吃到不足是一个什么概念呢?

                举个栗子~

                比如你的电脑只有一个内存条是8G,假设系统进程用了1G,各种后台软件以及正在打开的软件用了4G,而在没有任何保护机制以及调度方案的情况下,你想直接点开一个游戏,需要占用你的内存4G。

                那么现在,你需要9G的内存资源,而你计算机能提供的内存资源为8G,在没有任何保护机制以及调度方案的情况下,点开,运行,蓝屏~

那么,PING其实就可以达到这一点。

但是我PING一次好像也消耗不了多少资源吧……

好的,欲知后事如何,请往下看~

一、问题所在:一次PING所消耗的资源量

不难发现,我们在PING的时候所发送和接受的数据(以“字节”为单位)着实很小:

很明显,这里的字节为32,想想就很小了吧——无论是对于服务器来讲还是PC来说。

但是,如果我增大它的字节数呢?

首先,我们从第一行命令的结果得知,最高的字节数只能是65500。

其次,我把字节数换成65500,由于给服务器的安全设定阻止了过量字节的数据访问,导致了请求超时现象。

可能有的人会想:既然说过量字节的数据访问会被服务器驳回,那样不就没办法用PING攻击了嘛?~

其实最一开始我也想到了这个事,但是后来我想了想,如果有2047台电脑同时访问这个服务器,每一次都是32字节,是不是就能达到65500了?

(手动计算:)

二、衍生问题:怎么可能同时拥有2047台可用的电脑嘛~

确实,就算你家大业大,根据正常思维来讲,谁也不想败家对吧~

不过,我们不能同时拥有2047台可用电脑,但是我们可以同时PING它个2047次呀~

这里要用到的知识点呢,叫做《并行程序设计基础》。

三、什么叫“并行”?

问个问题~:

如果烧水需要5分钟,洗衣服(机器)20分钟,做饭15分钟,问:不算外来时间因素及水放置降温影响,把这些事情全干完最短需要用多长时间?

答案肯定是20分钟对吧。

想想看:用机器洗衣服放了衣服和洗液它会自己洗,烧水的话加了水点了火它会自己烧,那么在他们工作的时候我去做饭,做晚饭,水早就烧好了,再等5分钟,洗衣机也好了,一共用时20分钟。

那么,在洗衣机洗衣服的同时,我去烧水,水烧着的时候我去做饭,三个事件同时进行,省心省力,我们把这种处理事件的模式叫做“并行”。

这里呢,我们可以把每个事件都看作一个线程:

1.洗衣机线程包括:放入衣服,放入洗液,按洗衣按钮……

2.烧水线程包括:装水,点火……

3.做饭线程包括:切菜,调料,做菜,盛盘……

那么,线程里包括的每一个动作,我们都可以看作一个进程。

诸如此类,现在我们把目光看向我们的PING。

那么我是不是可以建立多个PING进程或PING线程,让它们同时运行?

也就意味着,我是不是可以建立2047个PING进程或PING线程同时运行,来达到65500字节的目的?

那么具体我们应该怎么做?

四、准备前置

1、一只活了很久的蟒蛇~(Python2.7)

众所周知,蟒蛇(Python)作为程序界的一大利器,它拥有很大的便捷性以及广泛性。

不过为什么要挑一只活了很久的蛇?

毕竟蛇还是老的辣呀~老蛇对于很多旧模块的兼容性很强的,尤其是……

一只老蛇:嘶~嘶……(钻洞~侵入~)

2、Ping语法

(1)如果你用的是Windows系统:

你将要用到cmd(命令提示符)窗口,在里面输入Ping语法。

(2)如果你用的是Linux系统:

你将要用到Terminal(终端)窗口,在里面输入Ping语法。

而需要用到的Ping的语法如下(Windows与Linux通用):

1    ping <ip/url>
2    ping <ip/url> -l <字节数>
3    ping <ip/url> -t

第一行的PING是普通的PING,单纯就是图个能不能连通。

第二行的PING,上面咱们说到了,设置字节数的PING。

第三行的PING,无限PING,直到你在cmd或Terminal中键入停止指令。

五、实战

首先需要了解我们所需要的模块包:

(注意:下列模块与在python3中的相同作用模块的使用方法有出入!!!)

1.subprocess 模块:允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。

这也就意味着,我们可以通过此模块来创建一个进程并使用它~

2.thread 模块:提供对线程的支持。

顾名思义,这是我们创建新线程的必要条件~

除此之外,我们还需要用到一个模块叫做time,至于用它干什么,下面我们会介绍到。

模块包了解完了,现在我们就需要说思路的事了:

1.导入subprocess、thread和time这三个模块。

2.声明一个用来执行PING动作的函数,此函数当中PING用进程来运行。

3.利用第2条所声明的函数来循环创建线程并让它们并行,每创建一个线程,休息0.8秒

那么具体代码如下所示:

1    import subprocess
2    import thread
3    import time
4
5
6    def POD(id):
7        ret = subprocess.call("<Ping语法>", shell=True)
8        print "%d," % id
9
10
11   for i in range(<你要创建的线程数>):
12       thread.start_new_thread(POD, (i,))
13       time.sleep(0.8)

这里说重点:

一、第6行所定义的POD函数是用来执行PING命令的。在第12行,由线程调用此POD函数。

二、第12行中的 ‘(i,)’的意思是传入了第11行‘i’的数字,用来标注是第几个被创建的线程

三、第13行为什么要睡觉休息?毕竟创建线程的同时你的电脑也是会消耗资源的,为了减轻负荷就休息了0.8秒

后序

最后我想说,无论我说的够不够明白,够不够清晰,这篇文章只供参考和学习,如果拿了这个东西干了什么坏事的话……违法我不追究,毕竟该审判你的不是我,是法律哦!!!~

——Redice(Yatogami)

社会工程学之黑客七宗罪——贪婪(死亡之PING)相关推荐

  1. 社会工程学之黑客七宗罪——傲慢(Hooking)

    前言 至于这次我把Hooking(钩子)归类为傲慢,原因只有一点:自负只会导致不注重甚至忽略小错误,而小错误也可以将整个局面崩盘. 显然,一部分黑客,或者说脚本小子,他们觉得自己超过了身边的人就是很厉 ...

  2. linux服务器防端口扫描,linux下防止syn***,端口扫描和死亡之ping

    http://downloads.sourceforge.net ... les-v0.0.3-3.tar.gz下载以后安装: tar zxvf arptables-v0.0.3-3.tar.gz c ...

  3. 死亡之Ping(Ping of Death)攻击

    由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产 ...

  4. 黑客还是间谍?让你惊出一身冷汗的10个社会工程学黑客攻击手段

    世界第一黑客凯文 米特尼克在<欺骗的艺术>中曾提到,人为因素才是安全的软肋.很多公司在信息安全上投入重金,最终导致数据泄露的原因却在人本身.你可能想象不到,对黑客来说,通过网络远程渗透破解 ...

  5. 社会工程学中个人信息的防护

    有人的地方就有江湖,有江湖的地方一定有社会工程学. 社会工程学是黑客米特尼克悔改后在<欺骗的艺术>中所提出的,是一种通过对受害者心理弱点.本能反应.好奇心.信任.贪婪等心理陷阱进行诸如欺骗 ...

  6. 社会工程学——基础与认知建立

    社会工程学(Social Engineering)在上世纪60年代左右作为正式的学科出现,广义社会工程学的定义是:建立理论并通过利用自然的.社会的和制度上的途径来逐步地解决各种复杂的社会问题. 世界第 ...

  7. 黑客必学之社会工程学

    2019独角兽企业重金招聘Python工程师标准>>> 黑客必学之社会工程学什么是社会工程学? 总体上来说,社会工程学就是使人们顺从你的意愿.满足你的欲望的一门艺术与学问.它并不单纯 ...

  8. 2008社工新书《黑客社会工程学攻击》

    保留一份以免淡忘了.     这本书写的非常的好,对于想深入了解这门艺术的人看是个不错的选择. --------------部分目录------------------------ 第一章.黑客时代的 ...

  9. 黑客社会工程学攻击的八种常用伎俩

    著名黑客Kevin Mitnick在上世纪90年代让"黑客社会工程学"这个术语流行了起来,不过这 个简单的概念本身(引诱某人去做某事,或者泄露敏感信息)却早有年头了. 专家们认为, ...

  10. 黑客社会工程学攻击2 新书来袭

    黑客社会工程学攻击2 黑手不出,谁与争锋!阔别4年,社工尸再现江湖. 2008年 <黑客社会工程学攻击>上市,它是当时国内第一本"社工尸"图书,启智中国式社工黑商.荣获 ...

最新文章

  1. 西瓜创客+Leangoo敏捷实践企业案例分享
  2. spring之DelegatingFilterProxy
  3. 重庆事业单位计算机职称评定,看效果 | 重庆事业单位改革 职称评定不再“终身制”...
  4. JavaBean的保存范围与javaBean的删除
  5. 基于Arduino开发的简易“高水位报警系统解决方案”
  6. mysql 列合并_mysql 列转行,合并字段的方法(必看)
  7. 堆、栈及静态数据区详解 转
  8. Unix 网络编程(四)- 典型TCP客服服务器程序开发实例及基本套接字API介绍
  9. sql server 2005 COUNT_BIG (Transact-SQL)
  10. 【Elasticsearch】玩转 Elasticsearch 7.8 的 SQL 功能
  11. 20190703 日子
  12. android 同步list数据,android SharedPreferences保存list数据
  13. [root@py ~]# watch -n 1 ifconfig 求解释
  14. vc模拟 tabletpc_KB895953-TCServer.exe TabletPC崩溃/内存泄漏HotFix
  15. SpringCloud-Feign接口调用超时:feign.RetryableException: Connection timed out (Connection timed out) execut
  16. linux 防DDOS防火墙脚本
  17. 2010-01-22 | 占豪收评:牛市继续还是进入熊市?
  18. 本周内外盘行情回顾2022.2.27
  19. 特殊纪念日Android APP内设置黑灰色背景
  20. AllenNLP系列文章之六:Textual Entailment(自然语言推理-文本蕴含)

热门文章

  1. 集成海康威视Sadp SDK实现设备激活
  2. C语言经典程序100例
  3. MATLAB程序界面介绍
  4. Windows下microsip和pjsip通话
  5. eclipse优化配置
  6. php接入腾讯云短信SDK
  7. 模二多项式环 及 BCH码 的纯python实现和一些问题
  8. SwitchNAT 测试
  9. 关于填写软件著作权申请表时源程序量总行数怎么确认的问题?
  10. macOS苹果电脑下载m3u8、ts视频