ARP命令详解和解决ARP攻击
显示和修改“地址解析协议 (ARP)”缓存中的项目。ARP 缓存中包含一个或多个表,它们用于存储 IP地址及其经过解析的以太网或令牌环物理地址。计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。如果在没有参数的情况下使用,则arp 命令将显示帮助信息。语法
arp[-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]][-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]
参数
-a[ InetAddr] [ -N IfaceAddr]
显示所有接口的当前 ARP 缓存表。要显示特定 IP 地址的 ARP 缓存项,请使用带有 InetAddr 参数的 arp-a,此处的 InetAddr 代表 IP 地址。如果未指定 InetAddr,则使用第一个适用的接口。要显示特定接口的 ARP缓存表,请将 -N IfaceAddr 参数与 -a 参数一起使用,此处的 IfaceAddr 代表指派给该接口的 IP 地址。-N参数区分大小写。
-g[ InetAddr] [ -N IfaceAddr]
与 -a 相同。
-d InetAddr [IfaceAddr]
删除指定的 IP 地址项,此处的 InetAddr 代表 IP 地址。对于指定的接口,要删除表中的某项,请使用 IfaceAddr参数,此处的 IfaceAddr 代表指派给该接口的 IP 地址。要删除所有项,请使用星号 (*) 通配符代替InetAddr。
-s InetAddr EtherAddr [IfaceAddr]
向 ARP 缓存添加可将 IP 地址 InetAddr 解析成物理地址 EtherAddr 的静态项。要向指定接口的表添加静态 ARP缓存项,请使用 IfaceAddr 参数,此处的 IfaceAddr 代表指派给该接口的 IP 地址。
/?
在命令提示符下显示帮助。
注释
? InetAddr 和 IfaceAddr 的 IP 地址用带圆点的十进制记数法表示。
? EtherAddr的物理地址由六个字节组成,这些字节用十六进制记数法表示并且用连字符隔开(比如,00-AA-00-4F-2A-9C)。
arp 命令
处理系统的 ARP 缓存,可以清除缓存中的地址映射,建立新的地址映射;
语法:arp [-v][-n][-H type][-i if] -a [hostname]
arp [-v][-i if] -d hostname [pub]
arp [-v][-H type][-i if] -s hostname hw_addr [temp]
arp [-v][-H type][-i if] -s hostname hw_addr [netmask nm] pub
arp [-v][-H type][-i if] -Ds hostname ifa [netmask nm] pub
arp [-v][-n][-D][-H type][-i if] -f [filename]
该命令的各选项含义如下:
-v 显示详细信息;
-n 以数字地址形式显示;
-i If选择界面;
-H type设置和查询arp缓存时检查 type 类型的地址;
-a [hostname] 显示指定 hostname 的所有入口;
-d hostname 删除指定 hostname 的所有入口;
-D 使用ifa硬件地址界面;
-s hostname hw_addr 手工加入 hostname 的地址映射;
-f filename 从指定文件中读入 hostname 和硬件地址信息
-s hostname hw_addr 手工加入 hostname 的地址映射;
采用双向绑定的方法解决并且防止ARP欺骗。
1、在PC上绑定安全网关的IP和MAC地址:
1)首先,获得安全网关的内网的MAC地址(例如HiPER网关地址192.168.16.254的MAC地址为0022aa0022aa)。
2)编写一个批处理文件rarp.bat内容如下:
@echo off
arp -d
arp -s 192.168.16.254 00-22-aa-00-22-aa
将文件中的网关IP地址和MAC地址更改为实际使用的网关IP地址和MAC地址即可。
将这个批处理软件拖到“windowsà开始à程序à启动”中。
3)如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都可以)发送批处理文件rarp.bat到所有客户机的启动目录。Windows2000的默认启动目录为“C:Documentsand SettingsAll Users「开始」菜单程序启动”。
we are also finding something a beautiful feeling … it is easy toknow u are happy so i amhappy
ARP绑定功能使用帮助
ARP协议是处于数据链路层的网络通信协议,它完成IP地址到物理地址(即MAC地址)的转换功能。而ARP病毒正是通过伪造IP地址和MAC地址实现ARP欺骗,导致数据包不能发到正确的MAC地址上去,会在网络中产生大量的ARP通信量使网络阻塞,从而导致网络无法进行正常的通信。
中了ARP病毒的主要症状是,机器之前可正常上网的,突然出现不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令“arp–d”后,又可恢复上网一段时间。有的情况是可以上网,但网速奇慢。
目前带有ARP欺骗功能的软件有“QQ第六感”、“网络执法官”、“P2P终结者”、“网吧传奇杀手”等,这些软件中,有些是人为手工操作来破坏网络的,有些是作为病毒或者木马出现,使用者可能根本不知道它的存在,这样的ARP病毒的杀伤力不可小觑。
从影响网络连接通畅的方式来看,ARP欺骗有两种攻击可能,一种是对路由器ARP表的欺骗;另一种是对内网电脑ARP表的欺骗,当然也可能两种攻击同时进行。不管理怎么样,欺骗发生后,电脑和路由器之间发送的数据就被送到错误的MAC地址上。从而导致了上面的症状的发生。
ARP绑定是防止ARP欺骗的有效方法,就是把IP地址与相应的MAC地址进行绑定来避免ARP欺骗。ARP欺骗形式有欺骗路由器ARP表和欺骗电脑ARP两种,因此MAC地址绑定也有路由器ARP表的绑定和电脑上ARP表的绑定。两个方面的设置都是必须的,不然,如果您只设置了路由器的防止ARP欺骗功能而没有设置电脑,电脑被欺骗后就不会把数据包发送到路由器上,而是发送到一个错误的地方,当然无法上网和访问路由器了。
-、路由器ARP表绑定设置
视具体路由器而定。比如安庆教育网使用的是Quidway Eudemon 500/1000防火墙。兼用路由器。他的命令是:
# 配置客户机IP地址和MAC地址到地址绑定关系中。
[Eudemon] firewall mac-binding 202.169.168.1 00e0-fc00-0100
# 使能地址绑定功能。
[Eudemon] firewall mac-binding enable
二、电脑ARP绑定设置
Windows操作系统带有ARP命令程序,可以在Windows的命令提示符下就用这个命令来完成ARP绑定。
打开Windows命令提示符,输入“arp–a”,可以查看当前电脑上的ARP映射表。可以看到当前的ARP表的类型是“dynamic”,即动态的,通过
“arp –s w.x.y.zaa-bb-cc-dd-ee-ff”命令来添加静态ARP实现ARP绑定。其中w.x.y.z代表路由器的IP地址,aa-bb-cc-dd-ee-ff代表路由器的MAC地址。
例如:arp -s 192.168.1.1 00-02-b3-3c-16-95
再输入“arp -a”就可以看到刚才添加的静态ARP条目了。
为了不必每次重启电脑后都要重新输入上面的命令来实现防止ARP欺骗,可以新建一个批处理文件如arp_bind.bat。在里面加入我们刚才的命令:
arp -s 192.168.1.1 00-02-b3-3c-16-95
保存就可以了,以后可以通过双击它来执行这条命令,还可以把它放置到系统的启动目录下来实现启动时自己执行。打开电脑“开始”->“程序”,双击“启动”打开启动的文件夹目录,把刚才建立的arp_bind.bat复制到里面去。这样每次重启都会执行ARP绑定命令,
通过这些设置,就可以很好的防止ARP攻击了。
-
局域网出现“arp欺骗”木马用户无法上网的解决(转)
今天早上朋友单位很多电脑突然无法上网,请我过去看看,到了之后询问之下,这个情况在多台电脑上出现,并且很多电脑都是XPSP2的系统,而且开启了防火墙。但仔细观察发现大部分电脑都是开启了文件和打印机共享服务,由于这个服务开放的137、138、139、445端口正是病毒常用的入侵端口,因此特别需要注意,如果没必要的话,还是建议别开放,或者在防火墙的设置上关闭这个服务的端口。
今天出现的部分用户无法上网现象和以前经常遇到的集体瘫痪有所不同,用sniffer观察一段时间后症状并不明显,联想到现在比较流行的arp欺骗木马就找了一台无法上网的电脑,运行cmd,输入arp-a发现出现多个地址,并且出现不同的IP地址对应的MAC是一样的,因此基本确定是中了arp欺骗。
以下说明下处理这种情况的方法:
首先进入命令行模式
然后运行arp -a命令,该命令是查看当前arp表,可以确认网关和对应的mac地址
正常情况下会出现类似如下的提示:
Interface:192.168.1.5 --- 0x2 Internet Address Physical AddressType
192.168.1.1 00-01-02-03-04-05 dynamic
如果192.168.1.1为网关,那么00-01-02-03-04-05就是网关服务器网卡的MAC地址,比对这个MAC是否和真的服务器网卡MAC一致,如果不一致就是被欺骗,会造成用户无法上网。
而被欺骗的电脑可能会出现多个IP出现同样的MAC,出现错乱。这个时候记住要记下那个网关IP对应的错误MAC地址,这个地址很可能是中了木马的电脑,这个可以方便接下来的查杀。
确认之后,可以输入arp -d命令,以删除当前计算机的arp表,方便重新建立arp表。
接下来可以绑定正确的arp网关,输入arp -s 192.168.1.1 00-0e-18-34-0d-56
再用arp -a查看
Interface: 192.168.1.5 --- 0x2 Internet Address Physical AddressType
192.168.1.1 00-0e-18-34-0d-56 static
这时,类型变为静态(static),就不会再受攻击影响了。
至此这台电脑便可以上网了,不过要彻底解决问题就需要找到那台中木马的电脑(一般就是那台伪造了网关MAC的对应电脑),对其杀毒之后才可以解决问题,推荐使用奇虎安全卫士配合木马克星一类的杀木马软件查杀木马,因为很多杀毒软件都无法发现现在的木马。具体查杀过程还涉及一切系统知识和处理经验,在此不再详表。
最后介绍一下ARP欺骗类的木马,一般为比较热门游戏的盗号木马;
原理是:
***域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。
切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。
如果要向目标主机B发送数据,无论主机B在本网段还是在远程网络,这些需要发出去的数据包中需要四样必不可少的地址,那就是源IP地址和源MAC地址,以及目标IP地址和目标MAC地址,当主机B在封装数据包时,自己的IP地址和MAC地址可以正确地,轻易地封装进去,目标IP自己也知道,可以封装进去,可是,关键就在目标MAC该如何得来,由于主机A曾经和主机B发生过通信,曾经通过ARP得到过目标主机的MAC地址,那么它就会把主机B的IP地址和MAC对应地记录下来,放在缓*存*表中,以备下一次再使用,但要说明的是,因为考虑到主机B有更换网卡的可能,所以无论何时当主机A再次收到关于主机B的MAC地址更新信息,它都将刷新自己的ARP缓*存*表,将新收到的MAC地址和主机B的IP地址对应起来,正因为主机A在任何时候收到ARP数据包,都将再次更新ARP缓*存*,所以导致了另外一个令*人头疼的事情发生: 如果现在一台不怀好意的主机C想要窃取网络中的数据或者其它目的,那么这时它就可能向A发送一个ARP数据包,数据包中声称主机B的MAC地址已经改变,当主机A收到后,得知此消息,就立刻更新原来主机B的MAC地址,当它要和主机B进行通信时,就会在数据包中封装新的MAC地址,如果这个MAC地址是前*面主机C的,那么主机A就会把本来要发给主机B的数据错误地发给了主机C,被主机C窃取成功,而主机C为了掩*人耳目,“看”过数据后,再发给主机B,从而不影响主机A和主机B之间的正常通信,但如果前*面主机C发给主机A的ARP更新包中的MAC地址不是自己的,而是伪造的根本不*存*在的MAC地址,那么这时主机A和主机B之间就不可能再正常通信了,这就是ARP病毒对PC主机在网络间通信造成的严重威胁和后果,造成数据被qie听或网络不通的惨局!
虽然局域网之间通信是主机与主机之间直接通信,但是,如果要与外网的主机通信,这时,还需要用到网关或路由器(很多情况下一个局域网的路由器就直接充当网关的角色),***域网内的某台主机A想要与外网的主机通信,那么这时,它在对数据包进行封装时,目标MAC地址需要写成网关的MAC地址,再交由网关代*为转发,发到网外去,如果这台主机A在使用ARP数据包请求网关的MAC地址时,出现一台不怀好意的主机向主机A回应了一个ARP回应报,数据包中就将这台病毒主机或者根本不*存*在的MAC地址告诉主机A,那么这时,主机A发给远程网络的数据由于经过不怀好意的主机“中转”了一下,造成数据被qie听,或因为错误的目标MAC,而最终没有网关给数据进行转发,导致与外网不能能正常通信,这就是为什么ARP病毒不仅能够从主机下手来影响局域网内的通信,也能影响局域网与外网的通信。
既然ARP病毒可以从主机的下手影响局域网与外网通信,那么它同样又可以从网关和路由器下手来影响网络间的通信,(多数时候路由器直接充当网关),那么ARP病毒是在什么时候来让路由器或网关的ARP缓*存*产生混乱的呢?那么请先回想一下,局域网内的主机向外网发送数据时,要通过ARP来得到网关或路由器的MAC,就有可能遭到ARP欺骗,然后,当网关或路由器收到来自外网的数据包要发到本地网络时,那么它同样要把这些数据包的目标MAC地址改写成最终接收PC主机的MAC地址,它首先是查自己的ARP缓*存*表,如果*存*在它需要的条目,就直接封装进数据发出去,如果缓*存*表里没有该怎么办呢?
不错,还是使用老方法,用ARP广播来请求目标的MAC地址,所以这时又会出现什么情况呢,那就是遭到不怀好意的主机发来的错误的ARP回应,让网关路由器在数据包中封装了错误的目标MAC地址,从而造成数据包没有能够正确到达目的地,从而达到这台不怀好意的主机窃取数据和影响网络通信的目的,因为路由器随时收到主机发来的ARP更新包,都会再次把新的MAC和原来的IP地址对应起来,写入缓*存*表。到这里为止,可以得知,ARP病毒可以通过回应错误的ARP数据包来让主机和路由器的ARP错误,也可以通过随时发送错误的ARP更新包来让主机和路由器的ARP缓*存*错误,这些错误导致网络的数据被qie听和丢失,都是针对主机和路由器下手的,那么有*人应该会问,交换机会不会因为ARP病毒而产生错误呢?那么我可以郑重地告诉大家,ARP病毒所产生的错误与交换机无任何关系,也对交换机不能造成任何后果,理由如下:
无论交换机在收到主机或者路由器发过来的数据时,都有责任对这些数据进行转发,当它从某个端口收到数据包后,读取数据包中的源MAC地址,从而就得到了此端口和MAC地址的映射表,当它在映射表中还找不到目标MAC地址来确定应该将数据发向哪个端口时,它就会在除源端口之外的其它所有端口进行泛洪(类似广播),这时,因为是泛洪,所以真正的目标主机能够收到这些数据包,也因为交换机在转发数据包的时候,即使ARP缓*存*表是空的,它也不需要发ARP广播来请求MAC地址,所以也根本不*存*在ARP欺骗,如果下*面继续有其它端口的数据要转发,交换机再使用上*面同样的方法,来学习到每个端口对应的MAC地址,就是因为通过这样向其它端口泛洪来学习到端口和MAC地址的映射表,所以交换机从来没有收到过任何关于MAC地址到IP地址的ARP数据包,况且交换机也从来不读取数据包中的IP地址.
在这里可以为交换机总结出:
1.交换机任何时候都不关心IP地址,因为交换机是二层设备,(三层交换机除外,三层交换机就当路由器来对待了)。
2.交换机中的ARP缓*存*是端口号到MAC地址的映射,与IP地址无关。
3.交换机中的ARP缓*存*表是通过在转发数据包时读取源端口和源MAC时记录下来的,而不是通过ARP广播去询问的。
4.当交换机的缓*存*表不能反应出目标MAC和端口的映射时,就会向除源端口外的每个端口发一份(泛洪),以保证真正的目标主机能够收到数据。
5.因为ARP缓*存*中找不到端口号和MAC地址的映射时,就会泛洪,所以*人工地绑定端口和MAC地址只是解决泛洪,让交换机不要因为找不到目标MAC地址而向每个端口都复制数据,这种方法与解决ARP欺骗没有任何关系!
请仔细理解交换机的工作原理:交换机是根据自己的ARP缓*存*表来提供数据转发的,ARP缓*存*中记录着端口号对应的MAC地址,当收到数据需要转发时,先读取数据中的源MAC地址,再看来自哪个端口,然后记录下来写入ARP缓*存*表,最后交换机查找ARP缓*存*表以确定该把数据发向哪个端口,如果ARP缓*存*中没有找到答应,那么这时交换机便决定把数据向除了向源端口之外其它所有端口都复制一份,这样便可以万无一失地把数据送到目的地,除非根本没有这个目的地,所以交换机的ARP缓*存*表是通过读取需要转发的数据的源MAC和源端口来学习到的,不是通过ARP询问来更新的!