实验四:DoSDDoS攻击与防范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四: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.在计算机中安装相应的软件。
三、实验涉及到的相关软件下载:
a.wireshark:这是一款网络封包分析软件,撷取网络封包,并尽可能显示出最为详细的网络封包资料。
b.SuperDDoS:这是一款简单的SYN攻击器,能对设定好的目标发送大量非法的SYN数据包。
c.UDPFLOOD:这是一款功能较为完善的UDP攻击器,可以设置攻击时间、攻击速度等,攻击方式是向目标机发送大量UDP数据包。
d.独裁者DDoS:这是一款功能齐全的DDoS攻击器,除了能够联合肉鸡发动攻击,还具有控制攻击时间,启动信使服务等众多功能,并且有四种攻击方式可供选择。
e.Tomcat:这是一款功能较为常用的服务器
f.java_jdk:这是java运行环境,运行tomcat服务器必须安装jdk。
四、实验原理
1、DoS攻击:
DoS是Denial of Service的简称,即拒绝服务,目的是使计算机或网络无法提供正常的服务。其攻击方式众多,常见的有SYN-FLOOD,UDP-FLOOD。
2、A.SYN-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、B.UDP-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解析也同样指向防火墙,使攻击转向防火墙,只要防火