在计算机行业,拒绝服务(DoS)或分布式拒绝服务(DDoS)攻击是指不法分子企图让某机器或网络资源无法被预期的用户所使用。虽然执行DoS攻击的方式、动机和目标不一样,但通常包括设法临时性或无限期中断或暂停连接至互联网的主机提供服务。我在本文中将介绍如何在Kali Linux下,使用hping3和伪造IP地址,执行拒绝服务攻击(即DoS)。
首先阐明一下,分布式拒绝服务攻击由两个或多个人或者僵尸程序(bot)发动;拒绝服务攻击则由一个人或系统发动。截至2014年,已被确认的DDoS攻击的频率已平均达到了每小时28起。
DoS攻击的实施者通常针对托管在知名Web服务器上的网站或服务,比如银行、信用卡支付网关、甚至根域名服务器。
拒绝服务威胁在商业界也司空见惯,有时是网站攻击的罪魁祸首。
这种手法如今广泛应用于某些游戏,被服务器所有者或玩游戏时心怀不满的竞争对手所使用,比如流行的《我的世界》服务器。DoS攻击还日益被用作一种反抗形式。自由软件运动精神领袖Richard Stallman声称,DoS是一种“互联网街头抗议”。DoS这个术语的使用通常与计算机网络有关,但并不局限于这个领域;比如说,谈及处理器资源管理时也会提到该术语。
一种常见的攻击方法涉及:向目标机器发送大量的外部通信请求,请求数量多得目标机器无法响应合法流量,或者迟迟没有响应,实际上变得无法使用。这类攻击通常导致服务器过载。通常来说,实施DoS攻击有两种方法:一是迫使一台或多台被盯上的主机重置,或大量耗用其资源,以至于主机再也无法提供预期的服务。二是阻碍预期用户与受害者之间的通信媒介,那样它们再也无法顺畅地通信。
拒绝服务攻击被认为违反了互联网架构委员会(Internet Architecture Board)制定的互联网合理使用政策,还违反了几乎所有互联网服务提供商的可接受使用政策。它们还常常违反了许多国家的法律。
如果你还在使用其他的DoS工具(比如GoldenEye),hping3效果很好(使用多个工具攻击同一网站/服务器/服务加大了成功的可能性)。还有一些机构和公司实时运行DoS攻击图,几乎实时显示了全球各地的DDoS攻击。
使用hping3发动DoS
咱们还是面对现实吧,你已安装了Kali Linux来了解如何发动DoS、如何闯入到邻居的无线路由器、如何闯入到远程Windows机器(无论是Windows 2008 R2服务器还是Windows 7),或者了解如何使用SQL注入攻击来攻破网站。有许多指南解释了这一切。我在本指南中将演示如何在Kali Linux下,使用hping3和随机性的源头IP发动DoS攻击。这意味着:
1. 你使用hping3执行拒绝服务攻击(即DoS)。
2. 你隐藏你的a$$(我是指你的源头IP地址)。
3. 你的目标机器看到的将是随机性源头IP地址中的源头,而不是你的IP地址(IP伪装)。
4. 你的目标机器会在5分钟里面不堪重负,停止响应。
听起来很好?确实如此。不过在我们开始使用hping3之前,先不妨介绍基本面。
hping3是什么东东?
hping3是一款面向TCP/IP协议的免费的数据包生成和分析工具。Hping是用于对防火墙和网络执行安全审计和测试的事实上的工具之一,过去用来利用如今实施在Nmap端口扫描工具中的空闲扫描(Idle Scan)扫描方法。新版本的hping即hping3可使用Tcl语言编写脚本,实施了一个引擎,可用于对TCP/IP数据包进行基于字符串、人可读的描述,那样编程人员就能编写与在很短的时间内对TCP/IP数据包执行低层处理和分析有关的脚本。
与计算机安全界使用的大多数工具一样,hping3对安全专家们来说很有用,不过也有许多与网络测试和系统管理有关的应用程序。
hping3应该可以用来……
•使用标准的实用工具,对阻止攻击企图的防火墙后面的主机执行路由跟踪/乒测/侦探等操作。
•执行空闲扫描(现在实施在Nmap中,有简易的用户界面)
•测试防火墙规则。
•测试入侵检测系统(IDS)。
•利用TCP/IP堆栈的已知安全漏洞。
•进行网络研究。
•学习TCP/IP(据我所知hping用于网络课程)。
•编写与TCP/IP测试和安全有关的实际应用程序。
•执行自动化的防火墙测试。
•利用概念证明漏洞。
•需要模拟复杂的TCP/IP行为时,进行网络和安全研究。
•为IDS系统建立原型。
•容易使用采用Tk界面的网络实用工具。
与另外许多工具一样,hping3也预先安装在Kali Linux上。它相当有用,我稍后就会演示用法。
使用hping3和随机性源头IP发动DoS
已介绍了够多的背景知识,现在我要谈谈攻击。你只需要运行一行命令,如下所示:
不妨让我解释一下该命令中使用的语法:
1. hping3 = 应用程序二进制代码的名称。
2. -c 100000 = 发送的数据包的数量。
3. -d 120 = 发送到目标机器的每个数据包的大小。
4. -S = 只发送SYN数据包。
5. -w 64 = TCP窗口大小。
6. -p 21 = 目的地端口(21是FTP端口)。你在这里可以使用任何端口。
7. --flood = 尽可能快地发送数据包,不需要考虑显示入站回复。洪水攻击模式。
8. --rand-source = 使用随机性的源头IP地址。你还可以使用-a或–spoof来隐藏主机名。详见文章末尾的参考手册页。
9. www.hping3testsite.com = 目的地IP地址或目标机器的IP地址。你在这里还可以使用网站名称。在本文中解析至127.0.0.1(已在/etc/hosts文件中输入)。
那么,你如何知道它切实可行呢?在hping3洪水攻击模式下,我们并不检查收到的回复(实际上你也无法检查收到的回复,因为我们在这个命令中使用了–rand-souce标志,这意味着源头IP地址不再是你的IP地址。)
只要给我5分钟时间,就能完全让这台机器毫无反应(这就是DoS即拒绝服务定义的由来)。
简而言之,如果这台机器是Web服务器,它就无法响应任何新的连接,就算它能响应,速度也是很慢很慢。
使用hping3和nping发动DoS的示例命令
我发觉网上的这篇文章很有意思,也很实用。于是拿来后稍加改动,用来演示Kali Linux。这不是我写的,承蒙Insecurety Research(http://insecurety.net/?p=18)。
简单的SYN洪水攻击:使用HPING3的DoS
结合伪造IP地址的简单的SYN洪水攻击――使用HPING3的DoS
TCP连接洪水攻击-使用NPING的DoS
来源:Insecurety Research
结束语
任何新的现代防火墙都会阻止DoS,如今大多数Linux内核内置了防范SYN洪水攻击的功能。本指南主要用于研究和学习。对于阻止TCP SYN洪水攻击或TCP连接洪水攻击有难度的那些人而言,可以试着学习IPTables以及查明如何使用hping3、nping或其他任何工具阻止DoS的方法。你还可以使用GoldenEye来发动DoS,这是一种第7层DoS攻击工具,模拟类似的攻击或PHP漏洞来攻击WordPress网站。
顺便说一下,我在文章末尾附有hping3参考手册页,以便查阅。
Hping3参考手册页链接:http://www.hping.org/manpage.html
英文:Denial-of-service Attack – DoS using hping3 with spoofed IP in Kali Linux