2024年5月6日发(作者:)

实验四:DoS/DDoS攻击与防范

一、实验目的

通过本实验对DoS/DDoS攻击的深入介绍和实验操作,了解DoS/DDoS攻击的原理

和危害,并且具体掌握利用TCP、UDP、ICMP等协议的DoS/DDoS攻击原理。了解针对

DoS/DDoS攻击的防范措施和手段。

实验具体目的如下:

1.了解SYN-FLOOD攻击的原理、特点

2.了解UDP-FLOOD攻击的原理、特点

3.了解DDoS攻击的原理、特点

4.了解针对DoS/DDoS攻击的防御手段

二、实验准备

1.要求实验室内网络是连通的,组内每台计算机均可以访问另外一台计算机。

2.下载相关工具和软件包

3.在计算机中安装相应的软件。

三、实验涉及到的相关软件下载:

ark:这是一款网络封包分析软件,撷取网络封包,并尽可能显示出最为详细

的网络封包资料。

DoS:这是一款简单的SYN攻击器,能对设定好的目标发送大量非法的SYN

数据包。

OD:这是一款功能较为完善的UDP攻击器,可以设置攻击时间、攻击速

度等,攻击方式是向目标机发送大量UDP数据包。

d.独裁者DDoS:这是一款功能齐全的DDoS攻击器,除了能够联合肉鸡发动攻击,

还具有控制攻击时间,启动信使服务等众多功能,并且有四种攻击方式可供选择。

:这是一款功能较为常用的服务器

_jdk:这是java运行环境,运行tomcat服务器必须安装jdk。

四、实验原理

1、DoS攻击:

DoS是Denial of Service的简称,即拒绝服务,目的是使计算机或网络无法提供正

常的服务。其攻击方式众多,常见的有SYN-FLOOD,UDP-FLOOD。

2、-FLOOD攻击:

标准的TCP连接要经过三次握手的过程,首先客户端向服务器发送一个SYN消息,

服务器收到SYN后,会向客户端返回一个SYN-ACK消息表示确认,当客户端受到

SYN-ACK后,再向服务器发送一个ACK消息,这样就建立了一次TCP连接。

SYN-FLOOD则是利用TCP协议实现上的一个缺陷,SYN-FLOOD攻击器向服务器发

送洪水一样大量的请求,当服务器受到SYN消息后,回送一个SYN-ACK消息,但是由于

客户端SYN-FLOOD攻击器采用源地址欺骗等手段,即发送请求的源地址都是伪造的,所

以服务器就无法受到客户端的ACK回应,这样一来,服务端会在一段时间内处于等待客户

端ACK消息的状态,而对于每台服务器而言,可用的TCP连接队列空间是有限的,当

SYN-FLOOD攻击器不断的发送大量的SYN请求包时,服务端的TCP连接队列就会被占

满,从而使系统可用资源急剧减少,网络可用带宽迅速缩小,导致服务器无法为其他合法

用户提供正常的服务。

3、-FLOOD攻击:

UDP-FLOOD攻击也是DDoS攻击的一种常见方式。UDP协议是一种无连接的服务,

它不需要用某个程序建立连接来传输数据UDP-FLOOD攻击是通过开放的UDP端口针对

相关的服务进行攻击。UDP-FLOOD攻击器会向被攻击主机发送大量伪造源地址的小UDP

包,冲击DNS服务器或者Radius认证服务器、流媒体视频服务器,甚至导致整个网段瘫

痪。

4、DDoS攻击:

DDoS是Distributed Denial of Service的简称,即分布式拒绝服务。DDoS攻击是

在DoS攻击的基础上产生的,它不再像DoS那样采用一对一的攻击方式,而是利用控制

的大量肉鸡共同发起攻击,肉鸡数量越多,攻击力越大。

一个严格和完善的DDoS攻击一般由四个部分组成:攻击端,控制端,代理端,受害者。

五、实验步骤

实验内容一:SYN-FLOOD攻击演示和分析

1.本次实验需要两台网络连通,可以互相访问的计算机,分别记作A、B。首先在A,

B上分别关闭防火墙和杀毒软件,并在A上启动Tomcat服务器(把A作为服务器)。

图一.Tomcat服务器启动

2. 在B上打开Supper DDoS,输入A的ip和一个开放服务的端口,我这里因为

Tomcat开放的端口是80,所以端口就填80,而Protocol(协议)默认是TCP,点击Attack。

3.打开安装在A上的wireshark,在Options-->Capture Filter框中填入tcp,表明

所要抓的包是tcp包,点击Start,开始抓包,并保存抓到的结果。

从这张在被攻击服务器上的抓包图中我们可以看到大量的TCP数据包,这些数据包的

源IP是由Super DDoS用IP欺诈等手段伪造的,这些IP实际是不存在的。我们还可以看

出大量的SYN包没有ACK回应。

4. 打开A的命令行窗口输入netstat -an或者netstat -n -p tcp命令,可以看到有大

量的ip和本机建立了SYN-RECEIVED状态的TCP二次握手连接,这些ip地址都是随机

的,是Supper DDos伪造的。

大量IP与服务器停留在半连接状态,一旦这种连接数量超过服务器的半连接队列数,

服务器的资源就会被耗竭,从而无法再处理其他合法用户的请求了。

实验内容二:防御和抵制SYN-FLOOD攻击的措施

1.根据SYNdrome-FLOOD攻击的原理可知SYN-FlOOD攻击效果取决于服务器上设

置的SYN半连接数(半连接数=SYN攻击频度 * SYN Timeout),所以通过缩短从接收到

SYN报文到确定这个报文无效并丢弃改连接的时间,会使得SYN半连接数减少(但是也

不能把SYN Timeout设置得过低,这是为什么大家可以思考一下),从而降低服务器的负

荷。

2.给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重

复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被丢弃。

3.利用网关型防火墙,让客户机与服务器之间并没有真正的TCP连接,所有数据交换

都是通过防火墙代理,外部的DNS解析也同样指向防火墙,使攻击转向防火墙,只要防火

墙的性能足够高,就能抵挡相当强度的SYN-FLOOD攻击。

1.本次实验需要两台网络连通并可以互相访问的电脑,记作A,B,这里用的工具是

UDP FLOOD攻击器。与SYN-FLOOD攻击一样,我们首先要关闭A,B两台电脑的防火

墙和杀毒软件,并且在A上打开Tomcat服务器。

2.然后我们在B上打开UDP FLOOD攻击器,在这个攻击器上填上A的IP和一个开放

的端口(可以通过在命令行下输入netstat -an查看开放的端口)。

这个攻击器可以设定攻击的时间(Max duration (secs))和发送的最大UDP包数

(Max packets )以及发送UDP包的速度(Speed),还可以选择发送包的数据大小和类

型(Data)

3.点击Go开始攻击,我们在A,B两台机上分别抓包来观察分析。

这是在服务器A上捕捉到的两幅图,我们可以发现udp包在8080端口一侧大量出现,

并且每个udp包的大小基本相同,这里看到的两个都为83bytes

这是在B上对ICMP的抓包结果,当受害系统接收到一个UDP 数据包的时候,它会

确定目的端口正在等待中的应用程序。当它发现该端口中并不存在正在等待的应用程序,

它就会产生一个目的地址无法连接的 ICMP 数据包发送给该伪造的源地址。这里可以明显

的看出A向B回送了很多ICMP包,但是端口却是unreachable

实验内容三:防御和抵制UDP-FLOOD攻击的措施

我们都知道UDP协议是一种无连接的服务,所以对UDP-FLOOD攻击的防御和抵制

比较困难。一般我们通过分析受到攻击时捕获的非法数据包特征,定义特征库,过滤那些

接收到的具有相关特征的数据包。例如针对UDP-FLOOD攻击,我们可以根据UDP最大

包长设置UDP最大包大小以过滤异常流量。在极端的情况下,我们可以尝试丢弃所有UDP

数据包。

1.本次实验需要三台网络连通,可以互相访问的计算机,假设分别记作A(作为服务器

和被攻击主机)、B(作为被控制主机)、C(作为攻击主机)。首先在A、B、C上分别关闭防火

墙和杀毒软件,并在A上启动Tomcat服务器。

2.接着要将B变成C控制的肉鸡,并把独裁者DDoS的(服务端),

,这三个文件植入B中,并运行。这里要用

到radmin,pstools等工具以及一些net的控制命令(当然也可以用其他的方法),这块

内容在实验一中有详细的讲解,在此不再赘述。

我们可以在C上来验证独裁者DDoS的服务端是否在B上成功运行,在C中打开IE

浏览器,在地址栏中输入Http://B的IP地址:8535/,若回车看到如下图所示,则说明就

说明独裁者DDoS的服务端在肉鸡B上成功运行了。

3.接着我们来通过C控制B对A发动DDoS攻击,我们在打开C中打开DDoS客户

端(界面如下)。首先我们先要添加主机,这里的主机是指你控制被植入独裁者

服务端的肉鸡,这里即B,添加时输入B的IP就行了。

4.添加完后最好按检查状态来检测添加的主机是否有效,如图192.168.1.103这段IP

是无效的,设置好攻击目标的IP和开放的端口,伪造的源IP和端口可以自己设置也可以

由攻击器随机设置,有四种攻击方式供我们选择,这里我选择我们熟悉的SYN攻击,检查

文件按钮可以检测服务端文件的情况,信使服务可以向被攻击机发送文字信息。

5. 点击开始攻击,C就控制B开始向A发动SYN攻击.可想而知这种攻击的效果和

SYN—FLOOD的攻击效果是一致的,在这个实验里并没有很好的体现DDoS的攻击效果,

因为只控制了一台肉鸡,所以这样的攻击相当于一对一的DoS攻击,攻击效果较差。并且

这是一种简易的DDoS攻击,因为这里只有攻击端、被控制端、受害者,而一个完整的

DDoS攻击应该是攻击端、控制端、代理端和受害者组成的。所以现在的攻击就存在一个

弊端,就是攻击者的隐蔽性不高,容易被受害者查到攻击源。而完整的DDoS攻击是由控

制端对代理端发出攻击命令的,这样一来就很好地隐蔽了攻击端,也就是使得真正的攻击

者身份很难被发现。

实验内容四:防御和抵制DDoS攻击的措施

DDoS攻击的类型和DoS攻击相近,只是攻击的方式有很大的改进,因此防御和抵制

DDoS攻击的措施也和DoS攻击相似。这里介绍一种新的方法:一般发动DoS攻击或者

DDoS攻击,都是针对一个确定的IP,而且在攻击过程中,不会改变攻击的对象。利用DoS

和DDoS攻击的这一缺陷,我们如果在发现服务器受到攻击时,迅速更换自己的IP地址,

那么攻击者就在对一个空的IP地址进行攻击,服务器不会受到任何影响。作为防御方只要

将DNS解析更改到新的IP地址就能在很短时间内恢复用户通过域名进行正常访问。

六、思考题

思考题一:

DoS攻击和DDoS攻击一般是针对服务器发动攻击,而对PC机攻击没有多大意义,

你知道这是为什么吗?

服务器为了能够正常稳定的提供服务,一般都是只使用同一个ip地址,而pc机则可

以很方便的更改自己的ip地址,从而使攻击者攻击不到自己;服务器的重要性和价值一般

高于都PC机,因而攻击的价值也自然就高于PC,而且pc机可以轻易的重启或更改ip,

而服务器一旦重启或更改ip则一般会蒙受巨大的损失。

思考题二:

Timeout越小越有利于抵御SYN-FLOOD攻击,但这个值却不能太小,你知道这是

什么原因吗?

若timeout值太小,则正常的请求报文由于网络拥塞、延迟等原因甚至是问发生任何

延时都将得不到目标的处理。

思考题三:

你知道为什么在收到UDP攻击后,受害主机会回送一个ICMP包?

因为UDP攻击报文中的目的端口是目标系统中并未有应用程序正在等待的端口,当受

害系统接收到一个UDP 数据包的时候,它会确定目的端口正在等待中的应用程序。当它

发现该端口中并不存在正在等待的应用程序,它就会产生一个目的地址无法连接的 ICMP

数据包发送给该伪造的源地址。因而受害机会发送一个端口不可达的icmp差错报告报文。

思考题四:

在用独裁者DDoS攻击器进行攻击时,在我们把三个文件植入肉鸡后,我们已经可以

通过浏览器控制肉鸡发动攻击了,为什么还要用攻击机上的独裁者客户端来发动攻击?

通过浏览器发动的攻击容易被受害主机查到攻击源