导航
当前位置:网站首页 > 网站入侵 > icmp攻击软件有哪些,icmp攻击是网络层攻击

icmp攻击软件有哪些,icmp攻击是网络层攻击

作者:hacker 日期:2022-07-15 分类:网站入侵

导航:

有什么IP攻击软件比较好用的

1.OOB攻击

这是利用NETBIOS中一个OOB (Out of Band)的漏洞而来进行的,它的原理是通过TCP/IP协议传递一个数据包到计算机某个开放的端口上(一般是137、138和139),当计算机收到这个数据包之后就会瞬间死机或者蓝屏现象,不重新启动计算机就无法继续使用TCP/IP协议来访问网络。

2.DoS攻击

这是针对Windows 9X所使用的ICMP协议进行的DOS(Denial of Service,拒绝服务)攻击,一般来说,这种攻击是利用对方计算机上所安装协议的漏洞来连续发送大量的数据包,造成对方计算机的死机。

3.WinNuke攻击

目前的WinNuke系列工具已经从最初的简单选择IP攻击某个端口发展到可以攻击一个IP区间范围的计算机,并且可以进行连续攻击,还能够验证攻击的效果,还可以对检测和选择端口,所以使用它可以造成某一个IP地址区间的计算机全部蓝屏死机。

4.SSPing

这是一个IP攻击工具,它的工作原理是向对方的计算机连续发出大型的ICMP数据包,被攻击的机器此时会试图将这些文件包合并处理,从而造成系统死机。

UDP、TCP、ICMP攻击原理?

ICMP攻击就是Ping就是利用ICMP协议走的。大量的ping 就是ICMP碎片攻击。

TCP攻击,TCP连接的三次握手特性来进行,一般有SYN ACK FIN NULL FIN+URG+PUSH 由于TCP协议很多。所以攻击的方式也很多。有开放性的,有半开放的。都是利用三次握手,中途突然终断。造成拒绝服务。

UDP攻击,多是了利用和ICMP进行的组合进行,比如SQL SERVER,对其1434端口发送‘x02’或者‘x03’就能够探测得到其连接端口。我想你听说过阿拉丁UDP洪水吧。就是这个道理,UDP是最难防御的。只可意会不可言传。

ICMP攻击是怎么回事

ICMP的全称是 Internet Control Message Protocol 。从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让icmp攻击软件有哪些我们能够检测网路的连线状况,也能确保连线的准确性,其功能主要有:

· 侦测远端主机是否存在。

· 建立及维护路由资料。

· 重导资料传送路径。

· 资料流量控制。

ICMP常用类型

ICMP常用类型 ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code) 让机器来识别不同的连线状况。常用的类别如下表所列:

ICMP 是个非常有用的协定,尤其是当我们要对网路连接状况进行判断的时候。下面让我们看看常用的 ICMP 实例,以更好了解 ICMP 的功能与作用.

TCP/IP协议介绍

TCP/IP的通讯协议

这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。

TCP/IP整体构架概述

TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

TCP/IP中的协议

以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:

1. IP

网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层icmp攻击软件有哪些;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。

2. TCP

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。

3.UDP

UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。

欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

4.ICMP

ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。

5. TCP和UDP的端口结构

TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。

两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:

源IP地址---发送包的IP地址。

目的IP地址---接收包的IP地址。

源端口---源系统上的连接的端口。

目的端口---目的系统上的连接的端口。

端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。

ICMP校验和算法】

以下代码在Visual Studio 2008 + Windows 7下调试通过。

lpsz指定要计算的数据包首地址,_dwSize指定该数据包的长度。

int CalcCheckSum(char* lpsz,DWORD _dwSize)

{

int dwSize;

__asm // 嵌入汇编

{

mov ecx,_dwSize

shr ecx,1

xor ebx,ebx

mov esi,lpsz

read: //所有word相加,保存至EBX寄存器

lodsw

movzx eax,ax

add ebx,eax

loop read

test _dwSize,1 //校验数据是否是奇数位的

jz calc

lodsb

movzx eax,al

add ebx,eax

calc:

mov eax,ebx //高低位相加

and eax,0ffffh

shr ebx,16

add eax,ebx

not ax

mov dwSize,eax

}

return dwSize;

}

icmp攻击泛滥怎么办

ICMP的全称是 Internet Control Message Protocol 。从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况,也能确保连线的准确性,其功能主要有:

· 侦测远端主机是否存在

· 建立及维护路由资料

· 重导资料传送路径

· 资料流量控制

一般地,原因应该是在使用迅雷、电驴、BT这些软件

建议你复位路由器和猫以后重新设置下 。

禁用ICMP

cmd 管理员运行

netsh firewall set icmpsetting all disable

确定

经常被ICMP数据包攻击

现在许多防火墙在默认情况下都启用了ICMP过滤的功能。如果没有启用icmp攻击软件有哪些,只要选中“防御ICMP攻击”、“防止别人用ping命令探测”就可以了。

还可以利用TCP/IP筛选和组策略icmp攻击软件有哪些

第一步:打开在电脑的桌面icmp攻击软件有哪些,右键点击“网上邻居→属性→本地连接→属性→Internet协议(TCP/IP)→属性→高级→选项-TCP/IP筛选-属性”。

第二步:“TCP/IP筛选”窗口中icmp攻击软件有哪些,点击选中“启用TCP/IP筛选(所有适配器)”。然后分别在“TCP端口、UDP端口和IP协议”的添加框上,点击“只允许”,后按添加按钮,然后在跳出的对话框输入端口,通常icmp攻击软件有哪些我们用来上网的端口是: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攻击”并启用。

至于IGMP攻击,最好把系统升级到XP。此外还有一个办法:用DEBUG或者可以编辑16进制的软件,打开文件VIP.386,找16进制代码 6A 02 E8 找到把 02 改成F2就可以。 原理是那儿代码是安装IGMP协议的(那02就是IP协议里面的IGMP,01是ICMP,06是TCP,11是UDP),改成F2就是协议类型安装成了F2,那样02 就不是解释成IGMP协议了,其实这样大致就是把IGMP协议关了,因为单机根本就可以不要IGMP协议的,所以没什么影响。

受到攻击:ICMP数据包

在整个 TCP/IP 协定家族中,对 "使用者" 来说,ICMP 恐怕是易忽略的协定了。关于前面所讨论的协定,真要能发挥工作的前提条件是:"假设一切都没问题" 。然而,在当今如此复杂的网路环境中,前述条件恐怕是没办法保证的:设定可能有误、线路有可能会断、设备可能挂点、router 可能负载太高、 .... 等等又等等的状况,都是我们没办法确保的。那么,我们必需有一套机制来侦测或通知各种各样可能发生的状况,这就是 ICMP 协定的目的了。

之所以说 ICMP 最容易被忽略,是因为,大部份的情况下,ICMP 只给底层的网路设备参考且被解决了。真要劳架使用者执行的话,恐怕不多,最具代表的,算是 ping 与 traceroute 这两个工具了。下面,让我们一起揭开 ICMP 的神秘面纱...

ICMP 协定之内容

ICMP 的全称是 Internet Control Message Protocol 。从技术教度来说,ICMP 就是一个 "错误侦测与回报机制",其目的就是让我们能够检测网路的连线状况,也能确保连线的准确性,其功能主要有:

· 侦测远端主机是否存在。

· 建立及维护路由资料。

· 重导资料传送路径。

· 资料流量控制。

ICMP 在沟通之中,主要是透过不同的类别( Type )与代码( Code ) 让机器来识别不同的连线状况。常用的类别如下表所列:

ICMP 是个非常有用的协定,尤其是当我们要对网路连接状况进行判断的时候。下面让我们看看常用的 ICMP 实例,以更好了解 ICMP 的功能与作用。

关于 PING

当关于这个命令应该很多人都用过了吧?它就是用来测试两台主机是否能够顺利连线的最简单的工具:

在 Linux 使用 ping 命令,如果您不使用 -c N 参数来指定送出多少个 ICMP 封包的话,ping 命令会一直持续下去,直到您按 Ctrl + C 为止。从上面的命令结果我们可以确定连线是否成功之外,还可以根据它的 time 来判断当前的连线速度,数值越低速度越快;在命令结束的两行,还有一个总结,如果发现您的 packet loss 很严重的话,那就要检察您的线路品质,或是上游的服务品质了;最后一行是 round-trip (来回)时间的最小值、平均值、最大值,它们的时间单位都是微秒 (ms)。不过,那个 mdev 是什么意思我也不知道~~

如果运用得当,ping 可以帮我们判断出许多状况。例如,我们要看一下跟远方的机器是否连接得上,先可以 ping 一下对方的机器名称;如果连接不上的话,我们可以 ping 对方的 ip ,如果 ip 可以 ping 得到,那么,很可能是 dns 不工作了;那么我们可以检查本身主机的 dns 伺服器是否指定正确、以及 dns 伺服器是否设定正确。如果连 IP 都 ping 不了,那么,很可能是 IP 设定的问题了,也可能是网路的连线问题。检查的步骤也有很多种,下面是方法之一:

1. ping 对方的 router (如过您知道其位址的话),假如 ping 得上,那可能是对方机器和其相连网路的问题;

2. 如果 ping 不到对方的 router ,那么可以 ping 自己的 router。如果 ping 得上,那么好可能是 router 和 router 之间的问题;

3. 如果自己的 router 也 ping 不到,那么可能是自己的机器和 router 之间的问题,我们可以 ping 一下自己的 IP 。如果自己的 IP 可以 ping 得到,那么,可能是连线的问题,我们可以检查一下网线、hub、等设备,看看有没有损毁的状况。

4. 同时,我们也可以 pin g一下网路上面其它的机器,也可以用其它机器 ping 一下 router ,来判别一下问题来自自己机器、还是网路、还是 router、等等。

5. 如果自己的 IP 都 ping 不到,那么可能是网路卡坏掉了或没有正确设定,可以看看设备资源有没有冲突,也可以看看设备有没有被系统启动。

6. 如果看来都没问题,那么可以 ping 一下回圈位址 127.0.0.1 ,如果连这个都 ping 不了的话,这台机器的 IP 功能根本就没被启动!那么,您就要先检查一下网路功能有没有选择、IP 协定有没有被绑定( bind )、等基本网路设定了。

从上面的过程中,我们不难看出 ping 这个命令真是非常有用的。然而,我们能 ping 一台机器的时候,我们就可以确定连线是成功的,但如果不能 ping 的话,未必是连不上哦。嗯?怎么说呢?且听我道来:使用 ping 命令的时候,事实上是送出一个 echo-request( type 8 ) 的 ICMP 封包,如果对方的机器能接收到这个请求,而且愿意作出回应,则送回一个 echo-reply( type 0 ) 的 ICMP 封包,当这个回应能顺利抵达的时候,那就完成一个 ping 的动作。

很显然,如果这个 echo-request 不能到达对方的机器,或是对方回应的 echo-reply 不能顺利送回来,那 ping 就失败。这情形在许多有防火墙的环境中都会碰到,如果防火墙随便将 request 和 reply 拦下来就会导致 ping 失败,但并不代表其它连线不能建立。另外,就算没有防火墙作怪,对方也可以将机器设定为不回应任何 echo-request 封包,若在 Linux 上,只要用下面命令就可以了:

echo "1" /proc/sys/net/ipv4/icmp_echo_ignore_all

如果您不想别人 ping 您的机器,也可以如法泡制。但真的当您需要用 ping 命令来测试网路连线的时候,就做不到了,有利有弊啦。

关于 TRACEROUTE

除了用 ping 命令来检查连线之外,还有另外一个非常厉害的工具我们可以使用的,就是 traceroute 命令了(在 windows 上面则称为 tracert 命令):

透过 traceroute 命令,我们可以找出通往目的地的所有经过的路由节点,并以数字将路由顺序标识出来。若是您觉得回应很慢,那可加上 -n 参数,节点名称将会以 IP 位址显示,因为不需要进行名称解析,回应速度当然会快一些。

从上面的 traceroute 结果,我们可以看到每一个节点都返回 3 个 round-trip 时间作参考。这样,您就能够判断整个连线路由中,交通瓶颈所在的位置在哪里。您或许奇怪 traceroute 是如何揪出所有路由节点的呢?且听我细说:

您是否有留意到 ping 命令的结果有一个 TTL 值?通常来说,Time To Live 都是以时间为单位的,但是在路由上面却是以跳站数目为单位的。为了防止一个封包无限期呆在网路上路由,每一个封包都会被赋予一个 TTL 值,告诉它最多能经过多少个跳站。当封包被一个路由节点处理之后,它原来的 TTL 值就会被扣掉 1 ,这样,如果封包的 TTL 降到 0 的时候,路由器就会丢弃这个封包,并且同时向来源地送出一个 time_exceeded( type 11 ) 的 ICMP 封包,以告知其封包的命运。

找到灵感了吗?聪明的 traceroute 程式设计者正是利用了 ICMP 这个特殊功能,来找出每一个路由节点的:

1. 首先,traceroute 命令会向目标位址送出 UDP 侦测封包(在 Linux 中,可用 -I 改为 ICMP 封包),但将第一个送出的封包之 TTL 设为 1 。这样,第一个路由节点在处理这个封包的时候,减掉 1 ,并发现 TTL 为 0 ,于是就不处理这个封包,并同时送回一个 ICMP 封包。这样,发送端就知道第一个路由节点在哪里了。

2. 当接得到第一个 ICMP 返回的时候,程式会检查返回主机是否就是目标主机,如果不是,则再送出第二个封包,但 TTL 比上次增加 1 。

3. 这样,第一路由节点接到的封包之 TTL 就不是 0 ,那么处理完毕后送给下一个节点,同时将 TTL 扣除 1 。这样,当下一个站收到这个封包,再扣掉 TTL 为 0 ,也会送回 ICMP 封包,这样,程式就知道第二个路由节点在哪里了。

4. 然后重复上一个动作,直到找到目标主机为止,或是封包的最大 TTL (通常为 30) 都用光为止,但您可以用 -m 参数来指定最大的 TTL 值。

怎样?聪明吧!^_^

但是,在实作中,未必是所有路由设备都会、或愿意送回 ICMP 封包的。碰到这样的情况,您就会看到第 8 个跳站的情形了(以星号显示)。假如 traceroute 最后的结果一直维持着 * 符号,那可能是因为 ICMP 被对方的防火墙拦下来的结果。这样的话,您可能无法完成防火墙后的路由追踪了。

从上面的例子来观察,由第 6 个跳站开始明显降慢下来,而根据名称看来,应该就是 ISP 连出 backbond 的节点。假如您发现从内部网路到自己的 router 之间的连线都很快,过了 router 之后就很慢,如果不是专线的线路出现了问题,那很可能到了要升级专线的时候了,或是这时候刚好碰到有人大量使用频宽;假如速度过了 router 连到对方的机房还很快,然后就开始降下来,那您要好好审查一下当初和 ISP 签订的合约上,关于频宽的保证问题是如何说的;但如果您发现连线到国外的网站,而速度是从进入对方国家之后才降下来的,那就没什么办法好想了。

其实 ICMP 协定还有许多实在上面的例子,这里不一一介绍了。能灵活运用 ICMP 协定,对我们了解和测试网路情况非常有帮助。

ICMP 封包格式

由于 ICMP 的类别翻多,且各自又有各自的代码,因此,ICMP 并没有一个统一的封包格式以供全部 ICMP 讯息使用,不同的 ICMP 类别分别有不同的封包栏位。以 echo-request 与 echo-reply 为例,它们的 ICMP 封包内容如下:

因此,只要网路之间能支援 IP ,那就可透过 ICMP 进行错误侦测与回报。

ICMP 协定之 RFC 文件

RFC-792、RFC-896、RFC-950、RFC-956、RFC-957、RFC-1016、RFC-1122、RFC-1305

猜你还喜欢

已有1位网友发表了看法:

  • 访客

    访客  评论于 [2022-07-15 22:57:50]  回复

    别如下表所列:ICMP 是个非常有用的协定,尤其是当我们要对网路连接状况进行判断的时候。下面让我们看看常用的 ICMP 实例,以更好了解 ICMP 的功能与作用。 关于 PING 当

欢迎 发表评论:

{/if}