防止ARP欺骗的方法!!!

  防止ARP欺骗的方法!!!

  根据鄙人上网经常掉线,怀疑可能是某人使用网络剪刀手,网络执行官,局域网终结者等工具。经过搜索有关资料,有了一点点防范经验,借以参考~!

  一 首先我们来了解下这类攻击工具的原理:

  我们知道一个局域网中不可以同时有两个相同的ip。否则就会发生IP冲突,结果必然是其中的一台机器无法上网。假设在一个局域网中有两台主机甲和乙,主机 甲只知道乙的IP而不知道其MAC,主机甲想与主机乙进行通讯时,根据OSI七层模型,当数据封装到数据链路层时(也就是MAC层),便会向局域网内所有 的机器发送一个arp请求包(注意:arp就是地址解析协议,它的功能在于将IP地址转换为对应的MAC地址),这时如果乙收到该请求包,便会返回给甲一 个arp应答包,将自己的MAC告诉甲,这样就可以继续进行数据传输了。但是如果在这个过程中,如果主机甲在发送ARP请求时,该局域网内有一台主机丙的 IP和甲相同,丙就会得知有一台主机的IP地址同自已的IP地址相同,于时就弹出一个我们通常所见到的IP冲突的对话框。既然一个主机接收到与自已相同 IP发出的ARP请求就会弹出一个IP冲突框来,假如伪造任一台主机的IP向局域网不停地发送ARP请求,同时自已的MAC也是伪造的,那么被伪造IP的 主机便会不停地收到IP冲突提示。这便构成了局域网终结者的攻击原理。从上面的分析来看,这实际上属于一种arp请求包的拒绝服务攻击了。

  网络剪刀手等工具的原理就是利用了ARP欺骗,所以,只要防止了ARP欺骗也等于防止了网络剪刀手。netcut原理实际上就是在攻击网关,这里我们假设:

  网关IP为:192.168.1.1

  MAC 为:000ea0002a74

  要剪掉的主机是:192.168.1.253

  该主机真实MAC是:00C04CA85A5C

  那么NETCUT就会发出如下图的一个“明知故问”的单播ARP请求,来询问

  网关的MAC地址。之所以说它“明知故问” ,是因为该请求在DLC层目的MAC是000ea0002a74.这是一个单播给网关的请求,但是ARP包中包含的的信息却是:

  “我是192.168.1.253,我的MAC是B2CCBAE9CBAE,请告诉我192.168.1.252(网关)的MAC 地址”

  这里言外之意就很明显了,表面上是要请求网关MAC实际上却是很隐晦的告诉网关:“192.168.1.253 的MAC是 B2CCBAE9CBAE,记住了啊!”这样,当网络关要发送数据到 192.168.1.253 的时候就会将二层的目的地址填写为“ B2CCBAE9CBAE” ,“而不是 00C04CA85A5C” 从而达到了将 192.168.1.253剪下网的目的。当然,NETCUT发出的ARP包不只这一个,但是这个包是起主要作用的。

  网络执法官的原理就是通过ARP欺骗发给某台电脑有关假的网关IP地址所对应的MAC地址,使其找不到网关真正的MAC地址。因此,只要我们修改IP到MAC的映射就可使网络执法官的ARP欺骗失效,就隔开突破它的限制。

  二 解决方法

  办法(一):应该把你的网络安全信任关系建立在IP+MAC地址基础上,设置静态的MAC-地址->IP对应表,不要让主机刷新你设定好的转换表。

  具体步骤:

  编写一个批处理文件arp.bat内容如下

  (假设192.168.1.253的mac地址是00-C0-4C-A8-5A-5C):

  @echo off

  arp -d

  arp -s 192.168.1.253 000ea0002a74.

  (所有的IP与相应MAC地址都按上面的格式写好)

  将文件中的IP地址和MAC地址更改为您自己的IP地址和网关MAC地址即可。

  将这个批处理软件拖到每一台主机的“windows--开始--程序--启动”中。这样每次开机时,都会刷新ARP表。

  再补充一些,也许可以帮到忙!

  如上所说编写一个批处理文件arp.bat后,在编一个名为arp1.bat的文件如下:

  @echo off

  arp -d

  arp -s 192.168.1.1 000ea0002a74.

  将文件中的IP地址和MAC地址更改为您自己所处的网关的IP地址和MAC地址即可。

  被剪断时交替运行这两个批处理文件就OK。

  碰到就是开机运行但ARP攻击是在用户用到半小时或者一小时在发攻击,我用过以上办法,但是不知道是否ARP变种还是其他。棒定有时候也失效。我这边解决就是路由自带功能死绑MAC地址。

  总结网络执法官,p2p终结者等网管软件使用arp欺骗的防范方法

  首先介绍一个超好的防火墙给大家:Outpost Firewall 它可以防护p2p终结者等恶意软件..效果超好..还能查出局域网哪台机在使用,这个防火墙功能强大,占用资源少,个人评分5个星.大家可以上网查找一下.

  这几天很郁闷,同一个局域网的同学经常使用p2p终结者来限制网内用户的流量,搞的大家都很恼火,但是归于是同学,也不好明说,后来借助论坛的搜索功能,成功解决了这个问题

  事先声明,我是一个菜鸟,但是我也想在这里建议和我一样程度的网友,多使用论坛的搜索功能,它真的比你在“求助区”发贴来的快多了(在某些方面),而且自己也能学到东西

  现将我搜索的资料总结如下,以方便以后遇到同样问题的霏友能搜到一个完整的资料,同时在这里也要感谢“zzswans”这位网友对我提供的帮助!

  其实,类似这种网络管理软件都是利用arp欺骗达到目的的

  其原理就是使电脑无法找到网关的MAC地址。

  那么ARP欺骗到底是怎么回事呢?

  首先给大家说说什么是ARP,ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。

  ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

  ARP原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。

  ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗。

  解决方法

  归纳起来有以下方法:

  1. 使用VLAN

  只要你的PC和P2P终结者软件不在同一个VLAN里, 他就拿你没办法.

  2. 使用双向IP/MAC绑定

  在PC上绑定你的出口路由器的MAC地址, P2P终结者软件不能对你进行ARP欺骗, 自然也没法管你, 不过只是PC绑路由的MAC

  还不安全, 因为P2P终结者软件可以欺骗路由, 所以最好的解决办法是使用PC, 路由上双向IP/MAC绑定, 就是说, 在PC

  上绑定出路路由的MAC地址, 在路由上绑定PC的IP和MAC地址, 这样要求路由要支持IP/MAC绑定, 比如HIPER路由器.

  3. 使用IP/MAC地址盗用+IP/MAC绑定

  索性你把自己的MAC地址和IP地址改成和运行P2P终结者软件者一样的IP和MAC, 看他如何管理, 这是一个两败俱伤的办法,

  改动中要有一些小技巧, 否则会报IP冲突. 要先改MAC地址, 再改IP, 这样一来WINDOWS就不报IP冲突了(windows傻吧))), 做到这一步还没有完, 最好你在PC上吧路由的MAC地址也绑定, 这样一来P2P终结者欺骗路由也白费力气了.

  以上的方法我觉得都不适合我这边的环境,所以我采用了一下的解决方法:

  利用Look N Stop防火墙,防止arp欺骗

  1.阻止网络执法官控制

  网络执法官是利用的ARp欺骗的来达到控制目的的。

  ARP协议用来解析IP与MAC的对应关系,所以用下列方法可以实现抗拒网络执法官的控制。

  如果你的机器不准备与局域网中的机器通讯,那么可以使用下述方法:

  A.在“互联网过滤”里面有一条“ARP : Authorize all ARP packets”规则,在这个规则前面打上禁止标志;

  B.但这个规则默认会把网关的信息也禁止了,处理的办法是把网关的MAC地址(通常网关是固定的)放在这条规则的“目标”区,在“以太网:地址”里选择“不等于”,并把网关的MAC地址填写在那时;把自己的MAC地址放在“来源”区,在“以太网:地址”里选择“不等于”。

  C.在最后一条“All other packet”里,修改这条规则的“目标”区,在“以太网:地址”里选择“不等于”,MAC地址里填FF:FF:FF:FF:FF:FF;把自己的MAC地址放在“来源”区,在“以太网:地址”里选择“不等于”。其它不改动。

  这样网络执法官就无能为力了。此方法适用于不与局域网中其它机器通讯,且网关地址是固定的情况下。

  如果你的机器需要与局域网中的机器通讯,仅需要摆脱网络执法官的控制,那么下述方法更简单实用(此方法与防火墙无关):

  进入命令行状态,运行“ARP -s 网关IP 网关MAC”就可以了,想获得网关的MAC,只要Ping一下网关,然后用Arp -a命令查看,就可以得到网关的IP与MAC的对应。此方法应该更具通用性,而且当网关地址可变时也很好操作,重复一次“ARP -s 网关IP 网关MAC”就行了。此命令作用是建立静态的ARP解析表。

  另外,听说op防火墙也可以阻止,我没有试过,所以请有兴趣的朋友可以试试

  插曲:

  期间,我也用网络特工查找过,到底是谁在使用p2p终结者,通过检测

  我发现那台主机是通过UDP的137端口向我发送数据的,

  于是做为菜鸟的我设想,用防火墙屏蔽掉这个端口

  然后发局域网内所有的人拖入黑名单,

  阻止他们和我通讯

  似乎也可以达到阻止被控制的目的

  这里经zzswans霏友的提示说arp不基于端口的,端口只有tcpip协议里有,arp协议里无端口概念。,所以可能这种方法行不通

  但我觉得我思考过了,得到了经验,这才是最重要的

  因为短信没有办法恢复太多的文字,所以重新发贴。

  转自其他论坛的文章。

  网络执法官是一款网管软件,可用于管理局域网,能禁止局域网任意机器连接网络。对于网管来说,这个功能自然很不错,但如果局域网中有别人也使用该功能那就麻烦了。因为这样轻则会导致别人无法上网,重则会导致整个局域网瘫痪。有什么解决办法呢?请您看下面的招数及其原理。

  一、网络执法官简介

  我们可以在局域网中任意一台机器上运行网络执法官的主程序NetRobocop.exe,它可以穿透防火墙、实时监控、记录整个局域网用户上线情况,可限制各用户上线时所用的IP、时段,并可将非法用户踢下局域网。该软件适用范围为局域网内部,不能对网关或路由器外的机器进行监视或管理,适合局域网管理员使用。

  在网络执法官中,要想限制某台机器上网,只要点击"网卡"菜单中的"权限",选择指定的网卡号或在用户列表中点击该网卡所在行,从右键菜单中选择"权限",在弹出的对话框中即可限制该用户的权限。对于未登记网卡,可以这样限定其上线:只要设定好所有已知用户(登记)后,将网卡的默认权限改为禁止上线即可阻止所有未知的网卡上线。使用这两个功能就可限制用户上网。其原理是通过ARP欺骗发给被攻击的电脑一个假的网关IP地址对应的MAC,使其找不到网关真正的MAC地址,这样就可以禁止其上网。

  二、ARP欺骗的原理

  网络执法官中利用的ARP欺骗使被攻击的电脑无法上网,其原理就是使该电脑无法找到网关的MAC地址。那么ARP欺骗到底是怎么回事呢?

  首先给大家说说什么是ARP,ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。

  ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

  ARP原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。

  ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗。

  网络执法官利用的就是这个原理!知道了它的原理,再突破它的防线就容易多了。

  三、修改MAC地址突破网络执法官的*

  根据上面的分析,我们不难得出结论:只要修改MAC地址,就可以骗过网络执法官的扫描,从而达到突破*的目的。下面是修改网卡MAC地址的方法:

  在"开始"菜单的"运行"中输入regedit,打开注册表编辑器,展开注册表到:HKEY_LOCAL_

  MACHINE\System\CurrentControl

  Set\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE103

  18}子键,在子键下的0000,0001,0002等分支中查找DriverDesc(如果你有一块以上的网卡,就有0001,0002......在这里保存了有关你的网卡的信息,其中的DriverDesc内容就是网卡的信息描述,比如我的网卡是Intel 210

  41 based Ethernet Controller),在这里假设你的网卡在0000子键。

  在0000子键下添加一个字符串,命名为"NetworkAddress",键值为修改后的MAC地址,要求为连续的12个16进制数。然后在"0000"子键下的NDI\params中新建一项名为NetworkAddress的子键,在该子键下添加名为"default"的字符串,键值为修改后的MAC地址。

  在NetworkAddress的子键下继续建立名为"ParamDesc"的字符串,其作用为指定Network

  Address的描述,其值可为"MAC Address"。这样以后打开网络邻居的"属性",双击相应的网卡就会发现有一个"高级"设置,其下存在MAC Address的选项,它就是你在注册表中加入的新项"NetworkAddress",以后只要在此修改MAC地址就可以了。

  关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,双击相应网卡项会发现有一个MAC Address的高级设置项,用于直接修改MAC地址。

  MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关,即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改变,不能由用户自己设定。MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数,08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。

  另外,网络执法官的原理是通过ARP欺骗发给某台电脑有关假的网关IP地址所对应的MAC地址,使其找不到网关真正的MAC地址。因此,只要我们修改IP到MAC的映射就可使网络执法官的ARP欺骗失效,就隔开突破它的限制。你可以事先Ping一下网关,然后再用ARP -a命令得到网关的MAC地址,最后用ARP -s IP 网卡MAC地址命令把网关的IP地址和它的MAC地址映射起来就可以了。

  四、找到使你无法上网的对方

  解除了网络执法官的*后,我们可以利用Arpkiller的"Sniffer杀手"扫描整个局域网IP段,然后查找处在"混杂"模式下的计算机,就可以发现对方了。具体方法是:运行Arpkiller,然后点击"Sniffer监测工具",在出现的"Sniffer杀手"窗口中输入检测的起始和终止IP,单击"开始检测"就可以了。

  检测完成后,如果相应的IP是绿帽子图标,说明这个IP处于正常模式,如果是红帽子则说明该网卡处于混杂模式。它就是我们的目标,就是这个家伙在用网络执法官在捣乱。

  扫描时自己也处在混杂模式,把自己不能算在其中哦!

  真的谢谢你们!

  这是另一个网友的方法大家可以试试.

  ==========================================

  xp系统:只要用arp命令绑定自己MAC和路由MAC就行了,

  如:arp -s 自己IP 自己MAC

  arp -s 路由IP 路由MAC

  最好都绑定一下,我试过,只绑定路由的话,出了IP冲突就上不去了,别人照样能T你下线.如果绑定了自己的话,IP冲突了也能上网

  9x/2000就需要软件了

  搜索一下anti arp sniffer就行了,

  设置好路由IP,mac

  不过我是xp系统也安装了这个软件,可以清楚的看到谁想T你下线或者想限制你

  建议更换xp

  只要上面设置一下,p2p终结者就报废了,

  xp系统在cmd状态输入: arp -a

  如果路由IP 还有自己IP最后面状态是static,那么就表示绑定成功

  arp -d

  绑定之前也最好输入一下,删除非法绑定

  关于限制流量:

  我这里的网络是adsl-路由-集线器-计算机

  我把默认设置子网掩码255.255.255.0改成255.240.0.0,还可以上网,p2p终结者,限制流量失效!

  OP 下载地址 http://www.rsdown.cn/downinfo/1170.html

  汉化包 http://download.enet.com.cn/speed/toftp.php?fname=010722004032601

  在局域网中难免受到一些人的恶意攻击,也许是想霸占网络资源(呵呵,抢带宽上网啊),也许是出于尝试新软件的好奇,总之这都给我们正常的网络使用带来不少麻烦。

  一般攻击者会使用如同“网络执法官\网络剪刀手\网络特工\P2P终结者”这类的软件,发送数据包改变ARP缓存中的网关ip对应的MAC地址,导致找不到真正的网关而不能连如internet。原来解决这种攻击的办法是修改自己的MAC地址,使得攻击者暂时失去真正的目标,然后重新连入网络,获取网关的正确MAC地址,以便在以后被攻击后好恢复网络。

  方法如下:进入到虚拟的DOS模式下ping自己的网关,然后用arp -a命令可以看到缓存中网关对应的MAC地址,然后记录下来。当再次受到攻击导致无法上网时候可以在DOS下用arp -s 网关ip 网关MAC地址的方式手动建立映射关系重新恢复和网关的通信。

  但是这种方法在碰到恶意的连续攻击的情况下是很麻烦的,严整影响了正常使用,因为你不得不常常去修改你的缓存。推荐使用ColorSoft出的Anti Arp sniffer小东西,使用起来很简单,直接把你记录到的网关正确MAC填进去,在把自己的网卡MAC填进去,然后打开自动防护和防护地址冲突就可以了,他会自动过滤掉攻击的欺骗数据包,从而使你网络更稳定。呵呵,再也不怕因为攻击而游戏掉线了。现在Anti Arp sniffer出到了2.0版,但是感觉还是不够方便,不能自动获得当前本机的网卡MAC,在受到连续攻击的时候不停弹出受攻击的提示,十分碍眼。不过总体说来还是不错的好东东了。

  本人测试后 发觉它像网络防火墙一样会记录攻击者的MAC地址,尽管是攻击者伪造出来,但功能是挺好的,希望以后版本能真正检测到攻击者(有点难度)

上一篇:MySQL Replication 线程(理解详细过程)


下一篇:java设计模式3.建造者模式、原型模式