TCPIP协议分析课程设计报告

上传人:MM****y 文档编号:60213440 上传时间:2022-03-07 格式:DOC 页数:27 大小:623KB
返回 下载 相关 举报
TCPIP协议分析课程设计报告_第1页
第1页 / 共27页
TCPIP协议分析课程设计报告_第2页
第2页 / 共27页
TCPIP协议分析课程设计报告_第3页
第3页 / 共27页
点击查看更多>>
资源描述
页眉成绩:TCP/IP 协议分析课程 设计题目:ICMP 协议分析院(系):专业班级 :姓名 :学号 :任课教师 :2013 年6月10日页脚页眉目 录1 协议概述 .11.1协议名称 .11.2协议主要功能 .11.3协议来源 .11.4协议版本发展历程 .22协议工作原理及流程 .22.1协议工作原理 .22.2协议工作流程分析 .33协议格式分析 .54协议应用 .114.1ICMP FLOOD 攻击 .114.1.1ICMP 洪水的成因 .114.1.2实现 ICMP 洪水的前提 .114.1.3洪水两败俱伤的攻击方式 .124.1.4不同方式的 ICMP 洪水 .124.2 ICMP 防御. 135 结术语 .15参考文献 .15页脚页眉1 协议概述1.1 协议名称ICMP 是 Internet Control Message Protocol的简称,即 Internet控制报文协议。 ICMP 协议是一种面向连接的协议,属于网络层协议,用来测试网络是否畅通。1.2 协议主要功能ICMP 是 Internet控制报文协议。它是TCP/IP 协议族的一个子协议,用于在 IP 主机、路由器之间传递控制消息, 包括报告错误、交换受限控制和状态信息等。当遇到 IP 数据无法访问目标、 IP 路由器无法按当前的传输速率转发数据包等情况时,会自动发送 ICMP 消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP 协议是一种面向连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。 1主要功能是:1.侦测远端主机是否存在 ?2.建立及维护路由资料 ?3.重导资料传送路径。4.资料流量控制 ?1.3 协议来源在 IP 通信中,经常有数据包不能到达对方的情况, 原因是在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个的丢弃。或者因为搞错了端口号, 因而服务器软件不能接受它, 所以作为 IP 不可缺少的功能来规定了 ICMP 网络传输协议。页脚页眉1.4 协议版本发展历程ICMP 与我们息息相关。在网络体系结构的各层次中,都需要控制,而不同的层次有不同的分工和控制内容, IP 层的控制功能是最复杂的, 主要负责差错控制、拥塞控制等,任何控制都是建立在信息的基础之上的, 在基于 IP 数据报的网络体系中,网关必须自己处理数据报的传输工作, 而 IP 协议自身没有内在机制来获取差错信息并处理。 为了处理这些错误, TCP/IP 设计了 ICMP 协议,当某个网关发现传输错误时,立即向信源主机发送 ICMP 报文,报告出错信息,让信源主机采取相应处理措施,它是一种差错和控制报文协议,不仅用于传输差错报文,还传输控制报文。在 IP 网络上,由于数据包被丢弃的原因,为了控制将必要的信息传送给发信方,为了辅助 IP 协议, ICMP 协议应运而生!制定万维网规格的IETF在 1981 年将 RFC792 作为 ICMP的基本规格整理出来的。在RFC792 的开头部分写着“ ICMP 是 IP 的不可缺少的部分吧,所有的IP 软件必须实现 ICMP 协议”。2 协议工作原理及流程2.1 协议工作原理ICMP 是一个非常重要的协议, 它对于网络安全具有极其重要的意义。ICMP消息是随 IP 数据包一起传输的,但该消息本身也是一种与IP 协议并行运行在网络层的协议。 ICMP 提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据 ICMP 报文确定发生错误的类型, 并确定如何才能更好地重发失败的数据包。但是 ICMP 唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。我们在网络中经常会使用到ICMP 协议,我们经常使用的用于检查网络通页脚页眉不通的 Ping 命令,这个“ Ping ”的过程实际上就是 ICMP 协议工作的过程。还有其他的网络命令如跟踪路由的 Tracert 命令也是基于 ICMP 协议的。ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。 ping 使用的是 ICMP 协议,它发送 ICMP 回送请求消息到目的主机。 ICMP 协议规定:目的主机必须返回 ICMP 回送应答消息导源主机。如源主机在一定时间内收到应答,则认为主机可达。ICMP 协议通过 IP 协议发送的, IP 协议是一种无连接的, 不可靠的数据包协议。因此,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是 ICMP( 网络控制报文 )协议。当传送IP 数据包发生错误,比如主机不可达,路由不可达等等, ICMP 协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP 层以上的协议是可能做到安全的原因。当检测到IP 数据因为某种原因无法继续转发或投递时启动ICMP 报文的传输,一般 ICMP 消息在以下几种情况下会被发送出来:(1) 当数据报不能到达目的地时。(2) 当失去缓存和转发数据报功能时。(3) 当网关发现并能够引导主机在更短的路由上发送数据报时。2.2 协议工作流程分析Ping 使用 ICMP 回送和应答消息来确定一台主机是否可达。 在运行命令行 Ping 另一台主机 IP。如果目的端不可达则在命令行显示为页脚页眉如果 ping 到了另一台主机,在协议分析器上就会有回显应答。在命令运行显示的结果就是页脚页眉3 协议格式分析页脚页眉ICMP 报文是放在一个IP 数据报的数据部分中传送的。ICMP 报文要求两级封装,如图。每个ICMP 报文放在 IP 数据报的数据部分中通过互联网,而数据报本身放在帧的数据部分中通过物理网络。携带IMCP 报文的 IP 数据报在传输过程中不具有任何优先级, 与正常的 IP 数据报一样进行转发, 唯一不同的是如果携带 ICMP 报文的 IP 数据报在传输过程中出现故障,转发该IP 数据报的路由将不产生任何关于该差错的报文。ICMP 协议报头最后一项是两个字节长度的校验和,而其后的ICMP 消息内容则与消息功能有关,但所有消息内容中都必须带有引发错误消息和数据报的 IP 报头和前个字节,而且这些信息足以使其上层协议对自己的报头进行检查并根据 ICMP 消息内容来执行适当的操作。最重要的是, ICMP 协议不支持数据纠错功能,该协议只是通过向数据源回送错误消息来告诉路由错误。ICMP 报文包含在 IP 数据报中,属于 IP 的一个用户, IP 头部就在 ICMP 的前面,所以一个 ICMP 报文包括 IP 头部、ICMP 头部和 ICMP 报文(见图表, ICMP报文的结构和几种常见的 ICMP 报文格式),IP 头部的 Protocol 值为 1 就说明这是一个 ICMP 报文, ICMP 头部中的类型( Type )域用来说明 ICMP 报文的作用及格式,此外还有一个代码( Code )域用来详细说明某种ICMP 报文的类型,所有数据都在 ICMP 头部后面。 RFC 定义了 13 种 ICMP 报文格式,具体如下: 2 下图为报文类型以及它们的类型值;类型值ICMP 报文类型功能3目的站不可达11数据包超时差错报告页脚页眉12数据包参数错误8 ; 0回送请求;应答17 ;18地址掩码请求;应答10 ;9路由器恳求;通告请求应答13;14时间戳请求;应答网络控制4源站抑制通知类5重定向源端抑制报文格式类型: 4代码: 0检验和未使用(全 0)收到的 IP 数据报的一部分,包括IP 首部以及数据报数据的前8 个字节超时报文格式类型: 11代码:0或 1检验和未使用(全 0)收到的 IP 数据报的一部分,包括IP 首部以及数据报数据的前8 个字节参数问题类型: 12代码:0 或 1检验和指针未使用(全 0)收到的 IP 数据报的一部分,包括IP 首部以及数据报数据的前8 个字节改变路由类型: 5代码:0 到 3检验和目标路由器 IP 地址页脚页眉收到的 IP 数据报的一部分,包括IP 首部以及数据报数据的前8 个字节回送请求和回答类型:8或 0 代码:0检验和标识符序号由请求报文发送;由回答报文重复时间戳请求和回答类型: 13 或检验和代码: 014标识符序号原始时间戳接收时间戳发送时间戳路由询问和通告类型: 10代码: 0检验和标识符序号类型: 9代码: 0检验和地址数地址项目长度寿命路由器地址 1地址参考 1路由器地址 2地址参考 2.我们经常用的用于检查网络通不通的Ping 命令,这个“ Ping ”的过程实际上就是 ICMP 协议的过程。下面运用科来网络分析系统执行Ping 命令,并对其页脚页眉结果分析。当主机与另一台主机网络连接通畅,协议分析器显示为,页脚页眉我们知道当 Type=8 Code=0时,为回应请求报文;当 Type=0 Code=0时,为回应应答报文, 该图为回送请求报文。页脚页眉4 协议应用4.1ICMP flood攻击ICMP 洪水的成因ping.exe和 IcmpSendEcho速度慢的一个原因是它们必须等待目标主机返回 REPLY信息,这个过程需要花费大量时间,而Flood 洪水,顾名思义,是速度极快的,当一个程序发送数据包的速度达到了每秒 1000 个以上,它的性质就成了洪水产生器,洪水数据是从洪水产生器里出来的,但这样还不够,没有足够的带宽,再猛的洪水也只能像公路塞车那样慢慢移动。要做真正的洪水,就需要有一条足够大的带宽才可以。 极慢的发送速度 +56Kbps 根本没用。因此很多人在进行攻击时往往是利用自己所控制的别人的多台电脑同时发动攻击,在短时间内是被攻击者的电脑瘫痪。由于 ping.exe 无法提速,这就需要专门的工具来做洪水了。 足够快的数据包速度 +足够的带宽,这才是洪水。实现 ICMP 洪水的前提最大的前提是攻击者的速度!如果你要用56K 拨号去攻击一个512KbpsADSL 用户,根本没有意义,很可能自己的电脑反被攻击!其次是你的机器运行速度和数据吞吐量,由于涉及IP 校验和的计算(先设置头校验和域的数值为0,然后对整个数据报头按每16 位求异或,再把结果取反,就得到了校验和),如果数据处理能力不够,在这步就慢了一个级别,效果当然大打折扣。最后就是目标机器的带宽!如果对方比你大很多(例如你2M ADSL ,别人用 DDN 或 T1),那么任何 Flood 都是不可能起作用!还有许多人都忽略的问题:发送的速度与数据包大小成反比,而且太大的数据包会被路由器等设备过滤掉!找到一个合适的数据包大小,对提高Flood 的效率有很大帮助!页脚页眉洪水两败俱伤的攻击方式别以为洪水无所不能,实际上,你展开洪水攻击时,攻击程序在消耗对方带宽和资源时,也在消耗你的带宽和资源。这只是个看谁撑得住的攻击而已。实际上,有经验的攻击者都是用被控制的服务器来代替自己的机器发动攻击的,不到万不得已或者你对自己的机器的网速有自信,否则尽量少用自己的机器来拼搏!不同方式的ICMP 洪水1.直接 Flood要做这个的首要条件是你的带宽够, 然后就是要一个好用的 ICMP Flooder ,别用 ping.exe 那种探路用的垃圾,例如我以前发布的 AnGryPing ,发包速度达到 6000-9000 包 / 秒( 512 Kbps ADSL ),默认是 32bytes 的 ECHO 报文洪水,用它即使不能 flood 别人下去,防火墙也叫得够惨的了。直接攻击会暴露自己 IP(如果对方没有还击能力那还无所谓,固定IP 用户不推荐使用这种Flood ),直接 Flood 主要是为了顾及 Win9x/Me 不能伪造 IP 的缺陷,否则一般还是别用为妙。简单示意图:ICMP攻击者受害者 截获攻击者可以换 IP 回来反击2.伪造 IP 的 Flood如果你是 Win2000/XP 并且是 Administrator 权限,可以试试看 FakePing ,它能随意伪造一个 IP 来 Flood ,让对方摸不到头脑,属于比较隐蔽阴险的 Flood 。简单示意图:伪造的 ICMP攻击者受害者 截获攻击者攻击到死机3.反射页脚页眉用采取这种方式的第一个工具的名称来命名的“ Smurf ”洪水攻击,把隐蔽性又提高了一个档次,这种攻击模式里,最终淹没目标的洪水不是由攻击者发出的,也不是伪造 IP 发出的,而是正常通讯的服务器发出的!实现的原理也不算复杂, Smurf 方式能把源 IP 设置为受害者 IP,然后向多台服务器发送 ICMP 报文(通常是 ECHO 请求),这些接收报文的服务器被报文欺骗,向受害者返回 ECHO 应答( Type=0 ),导致垃圾阻塞受害者的门口 从示意图可以看出,它比上面两种方法多了一级路径受骗的主机(称为“反射源”),所以,一个反射源能否有效或者效率低下,都会对 Flood 效果造成影响!简单示意图:伪造受害者的 ICMP应答攻击者正常的主机 - 受害者 截获攻击者以上是几种常见的 Flood 方式,在测试中,我发现一个有趣的现象:一些防火墙(如天网)只能拦截 ECHO 请求( Ping )的 ICMP 报文,对于其他 ICMP 报文一概不拦截,不知道其他防火墙有没有这个情况。所以想攻击别人主机时,请尽量避开直接 ECHO Flood ,换用 Type=0 的 ECHO 应答或 Type=14 的时间戳应答最好, 其他类型的 ICMP 报文没有详细测试过, 大家可以试试看 Type=3 、4、11 的特殊报文会不会有更大效果。 34.2ICMP防御当你出现以下症状时,就要注意是否正被洪水攻击:1.传输状态里,代表远程数据接收的计算机图标一直亮着,而你没有浏览网页或下载2.防火墙一直提示有人试图ping 你3.网络速度奇慢无比4.严重时系统几乎失去响应,鼠标呈跳跃状行走。4ICMP 协议是因特网控制消息错误报文协议,使用 ICMP 攻击的原理实际页脚页眉上就是通过 Ping 大量的数据包使得计算机的CPU 使用率居高不下而崩溃, 一般情况下黑客通常在一个时段内连续向计算机发出大量请求而导致 CPU 占用率太高而死机。虽然很多防火墙可以对 PING 进行过滤,但对于没有安装防火墙时我们如何有效的防范 ICMP 攻击呢 ? 其实只要配置一下系统自带的默认防火墙就可以了。方法如下 :第一步 :打开在电脑的桌面,右键点击“网上邻居属性本地连接属性 Internet 协议 (TCP/IP) 属性高级选项 -TCP/IP 筛选 -属性”。第二步 :“TCP/IP 筛选”窗口中,点击选中“启用 TCP/IP 筛选 ( 所有适配器 ) ”。然后分别在“ TCP 端口、 UDP 端口和 IP 协议”的添加框上,点击“只允许” ,后按添加按钮,然后在跳出的对话框输入端口,通常我们用来上网的端口是 :80 、 8080 ,而邮件服务器的端口是 :25、 110 ,FTP的端口是 20 、21,同样将 UDP 端口和 IP 协议相关进行添加。第三步 :打开“控制面板管理工具本地安全策略” ,然后右击 “IP 安全策略,在本地机器”选“管理 IP 筛选器和 IP 筛选器操作”,在管理 IP 筛选器和 IP 筛选器的操作列表中添加一个新的过滤规则,名称输入“防止 ICMP 攻击”,然后按添加,在源地址选任何 IP 地址,目标地址选我的 IP 地址,协议类型为 ICMP ,设置完毕。第四步 :在“管理筛选器操作”,取消选中“使用添加向导” ,添加,在常规中输入名字“ Deny 的操作”,安全措施为“阻止” 。这样我们就有了一个关注所有进入 ICMP 报文的过滤策略和丢弃所有报文的过滤操作了。第五步 :点击“ IP 安全策略,在本地机器” ,选择“创建 IP 安全策略 -下一步 -输入名称为 ICMP 过滤器”,通过增加过滤规则向导,把刚刚定义的“防止 ICMP 攻击”过滤策略指定给 ICMP 过滤器,然后选择刚刚定义“ Deny 的操作”,然后右击“防止 ICMP 攻击”并启用另一种方法则是利用目前多数网络防火墙提供的规则设置,对端口号、各IP地址、协议类型、传输方向等选项进行一一添加或更改,同样能够达到封阻可疑端口的目的。 5页脚页眉5 结术语通过对课程的学习,了解到了 ICMP 协议的结构,格式,和功能。上文中对 ICMP 有了详细的介绍, 认识到 ICMP 在现实中的应用。 例如使用 Ping 命令可以把一个 ICMP 回显请求发送给指定的主机,通过收到的回显应答来测试该指定的主机是否存活。在对 ICMP 的应用方面,知道了 ICMP 攻击的原理,以及对其的防御。通过对这些的了解为以后对网络安全的深入学习打下基础.希望能够通过今后的学习更加的了解 ICMP 协议,并在实际中运用好这些知识,提高自己在网络安全方面的实际能力 !参考文献1 谢希仁 计算机网络 ( 第五版 ):电子工业出版社, 2008 :第四章2. 罗军勇 . 网络协议分析:机械工业出版社, 2009 第五章 .3. 诸葛建伟 . 网络攻防技术与实践:电子工业出版社, 2011 :第五章4. 张玉清 . 网络攻击预防与技术:清华大学出版社, 2011; 第六章5. 殷人昆 . 实用软件工程: 清华大学出版社, 2010 ;第十章页脚
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!