网站大量收购独家精品文档,联系QQ:2885784924

5005160015-董玉平-实验二.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《网络安全》实验报告 姓名 董玉平 (同组 ) 实验日期 2018 年 10 月 18 教师评定 实验二 拒绝服务攻击与防御 1. 实验目的 (1)理解拒绝服务攻击的基本原理和对应的检测技术 (2)掌握编程实现方法 2.实验内容 (1)使用Python 或C/C++语言,编写实现任意一种拒绝服务攻击程序 (2)使用Python 或C/C++语言,编写实现针对1 中攻击工具的专用检测程序 (3)同步测试所编写的攻击程序和专用检测程序,介绍测试方案、解释测试效 果,并分析攻击或检测程序的局限与改进 3.实验原理 SYN Flood 是分布式拒绝攻击的一种方式。原理为:TCP 连接的三次握手中, 假设一个用户向服务器发送了 SYN 报文后突然死机或掉线,那么服务器在发出 SYN+ACK 应答报文后是无法收到客户端的ACK 报文的(第三次握手无法完成),这 种情况下服务器端一般会重试(再次发送 SYN+ACK 给客户端)并等待一段时间后 丢弃这个未完成的连接。这段时间的长度我们称为SYN Timeout。如果有一个恶 意的攻击者大量模拟这种情况(伪造 IP 地址),服务器端将为了维护一个非常大 的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的 CPU 时间和内存,何况还要不断对这个列表中的IP 进行SYN+ACK 的重试。实际 上如果服务器的TCP/IP 栈不够强大,最后的结果往往是堆栈溢出崩溃—— 即使 服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP 连接请求而 无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客 户的角度看来,服务器失去响应。 4.实验内容 打开win2003 中的任务管理器 可见CPU 使用量很小 在win2003 中查看硬件地址和逻辑地址 分别为 00 :0C:29:7E:8C:F9 、192.168.48.132 在 Kali 中查看硬件地址和逻辑地址 分别为 00:0C:29:DF:C2:36 、 192.168.48.128 在win2003 中打开wireshark ,准备抓包 在 Kali 中运行文件 syn_flood.py 查看win2003 中的任务管理器 可见CPU 值升到100% 、 停止SYN 攻击 再次查看Windows 任务管理器,CPU 占用率恢复正常 停止抓包,查看抓包内容 攻击包都是由Kali 发出 攻击类型为:SYN 攻击源代码 #!/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

文档评论(0)

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

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

1亿VIP精品文档

相关文档