最新网络安全课程设计2.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《最新网络安全课程设计2.doc》由会员分享,可在线阅读,更多相关《最新网络安全课程设计2.doc(156页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络安全课程设计2(可以直接使用,可编辑 优秀版资料,欢迎下载)课程名称:物联网信息安全管理设计题目:基于 TCP协议的网络攻击学院(直属系):计算机学院年级/专业/班:物联网工程学生姓名:指导教师:魏正曦老师完成日期:2021。1.12摘要本课程是物联网工程专业所开设的一门重要实践课程,主要要求掌握网络安全原理和技术在实践中的应用。本课程设计的目的是在理论学习的基础上,动手实践网络安全的相关理论,通过应用所学习的知识,来解决一些实际的网络安全应用问题。在此基础上,真正理解和掌握网络安全的基本原理,具备网络安全方面的分析和动手能力。在网络攻防实验环境中完成TCP/IP协议栈中TCP层重点协议的
2、攻击实验。包括TCP RST攻击、TCP会话劫持和TCP SYN Flood攻击.关键字:TCP RST攻击、TCP会话劫持和TCP SYN Flood攻击课题分工宋涌:TCP会话劫持,和编写课程设计胡坤:TCP RST攻击,和参考资料查询。周礼佟:TCP SYN Flood攻击,和课程设计分工摘要2一引言4二实验原理5三设计过程83.1 TCP RST攻击83.2 TCP会话劫持123.3 TCP SYN Flood攻击22四总结与体会25参考文献26一引言源于 Unix 的网络协议 TC P/IP随着 Internet的飞迅发展 ,已被越来越多的人所使用.然而由于 TCP/IP协议族在设计
3、时并没有过多的考虑网络安全问题 ,黑客事件不断发生 ,使如电子商务等 Internet应用存在着许多不安全因素 .欲防网络攻击 ,必应先知其攻击原理 ,才可正确实施安全策略. 下面是网络内部或外部人员常用的几种网络攻击方式: 密码猜测 ( Password Guessing): 主要通过穷举的办法来试探被攻击系统的密码 ,为下一步攻击做好准备 。 窥探 ( Sniffing): 主要通过劫获网络上的数据包来获得被攻击系统的认证信息或其它有价值的信息。 电子欺骗 ( Spoofing): 通过假冒合法用户的身份来进行网络攻击 ,从而达到掩盖攻击者真实身份 ,嫁祸他人的目的 。 信息剽窃 ( In
4、formation Theft): 这是网络攻击的主要目的之一。攻击者通过获得访问被攻击主机的许可权而窃取主机上的重要信息 。 让主机拒绝服务 (Denial of Service): 是网络攻击的主要目的之一. 这种攻击使主机或网络不能为合法用户提供服务 。例如攻击者可以用 TC P的 SYN信号淹没的方法来实现这一攻击 。 信息破坏 ( Information Destruction): 这也是网络攻击的主要目的之一 。通过篡改或毁坏被攻击主机上的信息达到破坏的目的 。 以上这些攻击主要是利用 TCP /IP协议本身的漏洞而对 TCP/IP协议进行攻击实现的 ,下面分析了几种对 TC P/
5、IP的攻击的实现方式未来的高技术战争是信息网络战, 以网络中心信息为主的联合作战正在取代传统的平台中心战。TCP/ IP 协议使得世界上不同体系结构的计算机网络互连在一起形成一个全球性的广域网络 Internet, 实现海、陆、空、天立体战埸信息共享.因此开展 TCP/IP 协议的分析和研究, 寻求其簿弱环节, 能否攻其一点, 而瘫痪一片, 即以小的投入达到大的产出, 是有效实施计算机网络对抗的关键.在以 TCP/IP 为协议的通信计算机网络中, 通常将每台计算机称为主机, 在 Internet 中的每一台计算机可以访问 Internet 上的其它任意一台计算机, 好像它们在一个局域网内用双绞
6、线或同轴电缆直接连接起来一样 (不同之处是速度比局域网的慢).TCP/IP 通信计算机网络结构如图所示。图1。1我们把计算机网络之间相连的设备称为路由器.各主机之间可以通过数据链连接, 也可以通过路由器间接相连。 TCP/IP 协议使用“包” (packet)这个数据单位来发送信息, 图中用箭头指向描述了从主机 C 向主机 J 发送信息包的路径。二实验原理TCP是在IP网络层之上的传输层协议,用于提供port到port面向连接的可靠的字节流传输。我来用土语解释下上面的几个关键字:port到port:IP层只管数据包从一个IP到另一个IP的传输,IP层之上的TCP层加上端口后,就是面向进程了,每
7、个port都可以对应到用户进程。可靠:TCP会负责维护实际上子虚乌有的连接概念,包括收包后的确认包、丢包后的重发等来保证可靠性。由于带宽和不同机器处理能力的不同,TCP要能控制流量。字节流:TCP会把应用进程传来的字节流数据切割成许多个数据包,在网络上发送。IP包是会失去顺序或者产生重复的,TCP协议要能还原到字节流本来面目。TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议.TCP在IP报文的协议号是6.TCP是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。首先来看看OSI的七
8、层模型:图2。1 OSI的七层模型我们需要知道TCP工作在网络OSI的七层模型中的第四层Transport层,IP在第三层-Network层,ARP 在第二层Data Link层;在第二层上的数据,我们把它叫Frame,在第三层上的数据叫Packet,第四层的数 据叫Segment。 同时,我们需要简单的知道,数据从应用层发下来,会在每一层都会加上头部信息,进行 封装,然后再发送到数据接收端。这个基本的流程你需要知道,就是每个数据都会经过数据的封装和解封 装的过程。 在OSI七层模型中,每一层的作用和对应的协议如下:图2.2OSI七层模型中,每一层的作用和对应的协议TCP是一个协议,那这个协议
9、是如何定义的,它的数据格式是什么样子的呢?要进行更深层次的剖析,就 需要了解,甚至是熟记TCP协议中每个字段的含义.图2。3OSI含义上面就是TCP协议头部的格式,由于它太重要了,是理解其它内容的基础,下面就将每个字段的信息都详 细的说明一下。Source Port和Destination Port:分别占用16位,表示源端口号和目的端口号;用于区别主机中的不同进程, 而IP地址是用来区分不同的主机的,源端口号和目的端口号配合上IP首部中的源IP地址和目的IP地址就能唯一 的确定一个TCP连接;Sequence Number:用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段
10、中的的第一个数据 字节在数据流中的序号;主要用来解决网络报乱序的问题;Acknowledgment Number:32位确认序列号包含发送确认的一端所期望收到的下一个序号,因此,确认序号应 当是上次已成功收到数据字节序号加1。不过,只有当标志位中的ACK标志(下面介绍)为1时该确认序列号的字 段才有效。主要用来解决不丢包的问题;Offset:给出首部中32 bit字的数目,需要这个值是因为任选字段的长度是可变的.这个字段占4bit(最多能 表示15个32bit的的字,即4*15=60个字节的首部长度),因此TCP最多有60字节的首部。然而,没有任选字段, 正常的长度是20字节;TCP Flag
11、s:TCP首部中有6个标志比特,它们中的多个可同时被设置为1,主要是用于操控TCP的状态机的,依次 为URG,ACK,PSH,RST,SYN,FIN。每个标志位的意思如下:URG:此标志表示TCP包的紧急指针域(后面马上就要说到)有效,用来保证TCP连接不被中断,并且督促 中间层设备要尽快处理这些数据;ACK:此标志表示应答域有效,就是说前面所说的TCP应答号将会包含在TCP数据包中;有两个取值:0和1, 为1的时候表示应答域有效,反之为0;PSH:这个标志位表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即传送给应用程序, 而不是在缓冲区中排队;RST:这个标志表示连接复位
12、请求。用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包;SYN:表示同步序号,用来建立连接。SYN标志位和ACK标志位搭配使用,当连接请求的时候,SYN=1, ACK=0;连接被响应的时候,SYN=1,ACK=1;这个标志的数据包经常被用来进行端口扫描。扫描者发送 一个只有SYN的数据包,如果对方主机响应了一个数据包回来 ,就表明这台主机存在这个端口;但是由于这 种扫描方式只是进行TCP三次握手的第一次握手,因此这种扫描的成功表示被扫描的机器不很安全,一台安全 的主机将会强制要求一个连接严格的进行TCP的三次握手;FIN: 表示发送端已经达到数据末尾,也就是说双方的数据传送完成,没有
13、数据可以传送了,发送FIN标志 位的TCP数据包后,连接将被断开。这个标志的数据包也经常被用于进行端口扫描。Window:窗口大小,也就是有名的滑动窗口,用来进行流量控制三设计过程3。1 TCP RST攻击RST攻击原理:图3。1从上面TCP协议图可以看到,标志位共有六个,其中RST位就在TCP异常时出现通过三次握手建立连接下面我通过A向B建立TCP连接来说明三次握手怎么完成的。图3。2为了能够说清楚下面的RST攻击,需要结合上图说说:SYN标志位、序号、滑动窗口大小。建立连接的请求中,标志位SYN都要置为1,在这种请求中会告知MSS段大小,就是本机希望接收TCP包的最大大小。发送的数据TCP
14、包都有一个序号。它是这么得来的:最初发送SYN时,有一个初始序号,根据RFC的定义,各个操作系统的实现都是与系统时间相关的。之后,序号的值会不断的增加,比如原来的序号是100,如果这个TCP包的数据有10个字节,那么下次的TCP包序号会变成110.滑动窗口用于加速传输,比如发了一个seq=100的包,理应收到这个包的确认ack=101后再继续发下一个包,但有了滑动窗口,只要新包的seq与没有得到确认的最小seq之差小于滑动窗口大小,就可以继续发.滑动窗口毫无疑问是用来加速数据传输的。TCP要保证“可靠,就需要对一个数据包进行ack确认表示接收端收到.有了滑动窗口,接收端就可以等收到许多包后只发
15、一个ack包,确认之前已经收到过的多个数据包。有了滑动窗口,发送端在发送完一个数据包后不用等待它的ack,在滑动窗口大小内可以继续发送其他数据包。四次握手的正常TCP连接关闭:图3.3FIN标志位也看到了,它用来表示正常关闭连接。图的左边是主动关闭连接方,右边是被动关闭连接方,用netstat命令可以看到标出的连接状态。FIN是正常关闭,它会根据缓冲区的顺序来发的,就是说缓冲区FIN之前的包都发出去后再发FIN包,这与RST不同.RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。就像上面说的一样,发送RST包关闭连接时,不必等缓冲区的包都发出去(不像上面的FIN包),直接就丢
16、弃缓存区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认。TCP处理程序会在自己认为的异常时刻发送RST包。例如,A向B发起连接,但B之上并未监听相应的端口,这时B操作系统上的TCP处理程序会发RST包。又比如,AB正常建立连接了,正在通讯时,A向B发送了FIN包要求关连接,B发送ACK后,网断了,A通过若干原因放弃了这个连接(例如进程重启)。网通了后,B又开始发数据包,A收到后表示压力很大,不知道这野连接哪来的,就发了个RST包强制把连接关了,B收到后会出现connect reset by peer错误。RST攻击:A和服务器B之间建立了TCP连接,此时C伪造了一个TCP包
17、发给B,使B异常的断开了与A之间的TCP连接,就是RST攻击了。实际上从上面RST标志位的功能已经可以看出这种攻击如何达到效果了。那么伪造什么样的TCP包可以达成目的呢?我们至顶向下的看。假定C伪装成A发过去的包,这个包如果是RST包的话,毫无疑问,B将会丢弃与A的缓冲区上所有数据,强制关掉连接。如果发过去的包是SYN包,那么,B会表示A已经发疯了(与OS的实现有关),正常连接时又来建新连接,B主动向A发个RST包,并在自己这端强制关掉连接。这两种方式都能够达到复位攻击的效果。似乎挺恐怖,然而关键是,如何能伪造成A发给B的包呢?这里有两个关键因素,源端口和序列号。一个TCP连接都是四元组,由源
18、IP、源端口、目标IP、目标端口唯一确定一个连接.所以,如果C要伪造A发给B的包,要在上面提到的IP头和TCP头,把源IP、源端口、目标IP、目标端口都填对。这里B作为服务器,IP和端口是公开的,A是我们要下手的目标,IP当然知道,但A的源端口就不清楚了,因为这可能是A随机生成的。当然,如果能够对常见的OS如windows和linux找出生成source port规律的话,还是可以搞定的。序列号问题是与滑动窗口对应的,伪造的TCP包里需要填序列号,如果序列号的值不在A之前向B发送时B的滑动窗口内,B是会主动丢弃的。所以我们要找到能落到当时的AB间滑动窗口的序列号.这个可以暴力解决,因为一个se
19、quence长度是32位,取值范围0-4294967296,如果窗口大小像上图中我抓到的windows下的65535的话,只需要相除,就知道最多只需要发65537(4294967296/65535=65537)个包就能有一个序列号落到滑动窗口内。RST包是很小的,IP头TCP头也才40字节,算算我们的带宽就知道这实在只需要几秒钟就能搞定。那么,序列号不是问题,源端口会麻烦点,如果各个操作系统不能完全随机的生成源端口,或者黑客们能通过其他方式获取到source port,RST攻击易如反掌,后果很严重 图 3.4防御:对付这种攻击也可以通过防火墙简单设置就可以了.建议使用防火墙将进来的包带RST
20、位的包丢弃就可以了。RST攻击只能针对tcp。对udp无效。RST用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。假设有一个合法用户(1.1。1。1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1。1.1,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从1。1。1。1发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户1.1.1。1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须重新开始建立连接。对付这种攻击也可以通过防火墙简单设置就可以了。3。2
21、TCP会话劫持会话劫持原理:例如你Telnet到某台主机,这就是一次Telnet会话;你浏览某个网站,这就是一次 会话.而会话劫持(Session Hijack),就是结合了嗅探以及欺骗技术在内的攻击手段。例如,在一次正常的会话过程当中,攻击者作为第三方参与到其中,他可以在正常数据包中插入恶意数据,也可以在双方的会话当中进行监听,甚至可以是代替某一方主机接管会话。我们可以把会话劫持攻击分为两种类型:1)中间人攻击(Man In The Middle,简称MITM),2)注射式攻击(Injection);并且还可以把会话劫持攻击分为两种形式:1)被动劫持,2)主动劫持;被动劫持实际上就是在后台监
22、视双方会话的数据流,从中获得敏感数据;而主动劫持则是将会话当中的某一台主机”踢下线,然后由攻击者取代并接管会话,这种攻击方法危害非常大,攻击者可以做很多事情,比如”cat etc/master.passwd(FreeBSD下的Shadow文件)。会话劫持利用了TCP/IP工作原理来设计攻击。TCP使用端到端的连接,即TCP用(源IP,源TCP端口号,目的IP,目的TCP端号)来唯一标识每一条已经建立连接的TCP链路。另外,TCP在进行数据传输时,TCP报文首部的两个字段序号(seq)和确认序号(ackseq)非常重要。序号(seq)和确认序号(ackseq)是与所携带TCP数据净荷(paylo
23、ad)的多少有数值上的关系:序号字段(seq)指出了本报文中传送的数据在发送主机所要传送的整个数据流中的顺序号,而确认序号字段(ackseq)指出了发送本报文的主机希望接收的对方主机中下一个八位组的顺序号。因此,对于一台主机来说,其收发的两个相临TCP报文之间的序号和确认序号的关系为:它所要发出的报文中的seq值应等于它所刚收到的报文中的ackseq的值,而它所要发送报文中ackseq的值应为它所收到报文中seq的值加上该报文中所发送的TCP净荷的长度。TCP会话劫持的攻击方式可以对基于TCP的任何应用发起攻击,如 、FTP、Telnet等。对于攻击者来说,所必须要做的就是窥探到正在进行TCP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 网络安全 课程设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内