房地产会计网-引领房地产会计行业潮流!

房地产会计网

 找回密码
 注册

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

论坛热门版块 国内最热门的房地产财务同行交流平台 房产会计问吧 - 房产会计实务 - 纳税筹划

论坛推荐版块 我们的宗旨:房会天下 网聚精英 房产会计专题 - 房产开发资料 - 成本预算

网站培训课程 房地产会计财税专业培训 财税课程咨询 - 课程在线报名

查看: 4577|回复: 0
打印 上一主题 下一主题

[转贴] 局域网中检测以及预防ARP病毒的方法 [复制链接]

  • TA的每日心情
    开心
    2023-11-28 10:15
  • 签到天数: 85 天

    [LV.6]常住居民II

    跳转到指定楼层
    1#
    发表于 2007-10-26 10:29:55 |只看该作者 |倒序浏览
    我在网络维护工作中遇到过三种类型的ARP病毒:

      第一种:病毒主机只冒充网关IP地址。我们在核心三层交换机上可以看到病毒主机与网关地址冲突的日志,我们通过其MAC地址就能找到病毒主机所在的交换机,然后把端口shutdown,消除病毒主机对网络的影响,然后就可以去上门杀毒。如果其他用户的电脑事先把网关的MAC地址做了ARP绑定,那么病毒主机其实就影响不到它。安装了AntiARP之类的软件也能起到预防的效果。

      第二种:病毒主机疯狂地与全网所有IP地址进行冲突。我们在核心交换机上可以看到大量的IP冲突信息,而且遭受冲突的IP地址是一轮一轮循环的,但所有的冲突源却都是同一个MAC地址,那就是病毒主机。遭受到IP冲突攻击的电脑往往会突然有几秒钟网络不通,然后恢复正常,几分钟后,下一轮冲突开始,又会断网几分钟,比较烦人。同样,我们可以通过MAC地址就找到病毒主机所在的交换机,然后把端口shutdown,消除病毒主机对网络的影响,然后就可以去上门杀毒。对于这一种病毒,即使装了AntiARP之类的软件,效果也不大,甚至在交换机上做MAC地址绑定都用处不大,只能尽早发现病毒源尽快处理才行。

      第三种:这是目前最厉害的ARP病毒,它可以进行双向ARP欺骗。病毒主机随机选择一些内网的在线主机进行欺骗,告诉它们病毒主机就是防火墙,然后它又欺骗防火墙,说那些被骗的主机的MAC地址都是我病毒主机的MAC地址。这样一来,防火墙就不认识那些被骗的主机了,被骗的主机发出的数据包都会经过病毒主机转发,而防火墙返回的数据包也都会经病毒主机转发,病毒主机就可以从数据包中抓取游戏帐号密码等信息。当网络中出现这样的ARP病毒时,我在核心交换机上根本就看不到任何相关的日志信息,为病毒检测带来了很大的麻烦。而且这种病毒是随机选择欺骗一些主机,而不是全网欺骗,所以有的用户反应有时突然不能上网,但过一阵子就好了,让维护人员不好判断故障。可以说这种病毒相当厉害,几乎无法预防,因为就算电脑上装了AntiARP软件或者事先绑定了防火墙的MAC地址也完全没用,因为防火墙它自己也被骗了,你认得防火墙,可防火墙不认得你。如果你没绑定防火墙的MAC地址,病毒主机欺骗你时,你其实依然可以上网,只是数据包都经过病毒主机转发,如果你事先绑定了防火墙的MAC地址,那病毒主机同时欺骗你和防火墙时,你就无法上网了。


      我为了防止局域网内IP地址乱用,曾经做过这样的设置。我在局域网的汇聚层交换机(三层设备)上做了ACL规则,规定汇聚层交换机下接的那些接入层交换机各自只允许使用哪些IP地址,如果有用户配了其他IP,就会网不通。这样做确实可以起到防止乱配IP地址的作用,不过它对于解决IP地址冲突的作用并不大,因为其他交换机上的用户配错了IP地址时,尽管他使用这个错误的IP会网不通,但这个IP地址的正主依然会收到IP冲突信息,并对他上网造成影响。其实要防止IP地址冲突最好的办法应该是在交换机上做基于端口的IP地址与MAC地址绑定,而且要一层一层地绑定上去,一直绑定到核心交换机。不过这样做工作量太大,维护也相当麻烦,要是有些电脑更换位置,估计会把网管搞疯了。

      正因为我做了这样的设置,所以当网络中出现第一种类型的ARP病毒时,病毒主机冒充网关IP地址其实是无法成功的,因为网关的IP地址不允许在病毒主机所在的接入层交换机中使用。不过前面说过我做的ACL规则无法阻挡IP冲突的影响,所以防火墙就被病毒主机给影响了,导致全网用户都无法上网。但好处是我能马上就发现网络异常,然后根据日志找出病毒主机来。要是没有这些ACL规则,病毒主机就能顺利冒充防火墙,然后转发所有用户的数据包,抓取帐号和密码了,而且估计也不会有用户报故障说无法上网,让网管无法尽快得知网络中有这种ARP病毒。不过装个AntiARP软件还是能发现这样的病毒主机的。

      对于第二种类型的ARP病毒,我不怎么了解它与全网的IP地址进行冲突的目的,也许就是为了让全网的主机时不时断一下网吧。

      对于第三者类型的ARP病毒,当病毒主机随机选择一些电脑进行双向欺骗时,由于我设置的ACL规则让病毒主机无法冒充防火墙的IP,所以被欺骗的主机ping防火墙的IP就会ping不通,哪怕这些主机绑定了防火墙的MAC地址也没用,因为防火墙也被病毒主机欺骗了,它不认识这些被骗的主机的真实MAC地址,只知道病毒主机的MAC地址。这就是为什么我的公司经常同时有几个用户反应他们的电脑突然不能上网,而且也ping不通防火墙的IP,但却能ping通其他人的电脑,然后他们的电脑换了其他IP地址后又能上网的原因。出现这种情况,重启防火墙都没用,很让人郁闷。

      现在知道了原因,就很好解决问题了,这第三种ARP病毒这么狡猾,我们怎么来发现消灭它呢?一方面我们无法在核心交换机上看到相关的日志信息,另一方面如果我们没有在交换机上做限制IP地址使用的ACL规则,也很难察觉内网中有这样的病毒主机。为了发现病毒主机,我们就要这么做。要么就学我,在各交换机上设置限制IP地址使用的ACL规则,这样病毒一发作就能让被攻击的用户打电话报故障。要么就在很多台电脑上用arp -s的命令绑定防火墙的MAC地址,或者大量安装AntiARP软件,这样有病毒时,这些做了ARP绑定以及装了AntiARP软件的电脑就会无法上网,从而有助于网管尽快发现病毒主机。

      知道网络中有第三种类型的病毒后,如何快速找出病毒主机呢?如果装了AntiARP软件,这个软件有可能会报告病毒主机的MAC地址,不过只是可能哦,不是绝对。另外如果像我一样设置了那些ACL规则,那么在被欺骗的主机上也无法获得病毒主机的MAC地址,因为这些主机ping防火墙地址ping不同,而病毒主机又被ACL规则限制了,无法冒充防火墙,所以被骗的主机是无法获得病毒主机的MAC地址的。说了这么一堆,到底怎样才能快速找到病毒主机的MAC地址呢?答案是从防火墙上找。

      Telnet到天融信防火墙上,运行arp命令,就会显示出所有的ARP信息。如下所示:

    System>arp
    ? (192.168.64.98) at 00:0F:1F:54:00:E6 [ether] on eth5
    ? (192.168.64.185) at 00:14:78:58:B8:7F [ether] on eth5
    ? (192.168.64.213) at 00:0A:EB:9283 [ether] on eth5
    ? (192.168.64.186) at 00:00:C8:75:99:ED [ether] on eth5
    ? (192.168.64.68) at 00:15:58:E1:14:F9 [ether] on eth5
    ? (192.168.64.67) at 50:78:4C:6B:57:42 [ether] on eth5
    ? (192.168.64.208) at 00:10C:36:DE:AA [ether] on eth5
    ? (192.168.64.47) at 00:0D:87:E8:E3:AA [ether] on eth5
    ? (192.168.64.211) at 00:15:58:E1:18:42 [ether] on eth5
    ? (192.168.64.148) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.221) at 00:15:58:D1:0F:DA [ether] on eth5
    ? (192.168.64.251) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.151) at 00:0D:56:53:C7:AC [ether] on eth5
    ? (192.168.64.105) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.181) at 00:0D:60:A4:CF:CD [ether] on eth5
    ? (192.168.64.217) at 00:E0:4C:39:8E:BB [ether] on eth5
    ? (192.168.64.37) at 00:11:25:38:20:B7 [ether] on eth5
    ? (192.168.64.1) at 00:00:5E:00:01:03 [ether] on eth5
    ? (192.168.64.182) at 00:E0:4C:E7:9D:88 [ether] on eth5
    ? (192.168.64.198) at 00:1A:4D:2A:66:34 [ether] on eth5
    ? (192.168.64.199) at 00:15:58:D5:3C:3F [ether] on eth5
    ? (192.168.64.143) at 00:0D:60:E4:65:A6 [ether] on eth5
    ? (192.168.64.141) at 00:E0:4C:5A:1F:EC [ether] on eth5
    ? (192.168.64.58) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.59) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.86) at 00:E0:4C:5E:CE:89 [ether] on eth5
    ? (192.168.64.61) at 00:14:2A:88:ED:FE [ether] on eth5
    ? (192.168.64.63) at 00:11:5B:9A:DC:DC [ether] on eth5
    ? (192.168.64.192) at 00:15:58:D6:FE:15 [ether] on eth5
    ? (192.168.64.136) at 00:08:74:AC:BF:E9 [ether] on eth5
    ? (192.168.64.92) at 00:0B:CD:65:2C:5F [ether] on eth5
    ? (192.168.64.50) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.239) at 00:E0:4C:74:1A:32 [ether] on eth5
    ? (192.168.64.238) at 00:10:5C:B6:13:98 [ether] on eth5
    ? (192.168.64.203) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.124) at 00:50:BA:45:A9:42 [ether] on eth5
    ? (192.168.66.17) at 00:03:0D:2F:E6:7E [ether] on eth4
    ? (192.168.64.54) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.201) at 00:0D:60:9E:5B:CD [ether] on eth5
    ? (192.168.64.55) at 00:15:58:E1:15:0B [ether] on eth5

      把上面的ARP信息表拷贝下来,保存到一个文本文件里。然后用Excel打开它,选择根据空格符分列,然后根据MAC地址排序,我们就会很容易发现有不少IP地址的MAC地址相同,那么这个MAC地址就是病毒主机了。

      比如我这边把ARP列表根据MAC地址排序后,看到这样的部分:

    ? (192.168.64.148) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.251) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.105) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.58) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.59) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.50) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.203) at 00:0D:87:D6:BC:09 [ether] on eth5
    ? (192.168.64.54) at 00:0D:87:D6:BC:09 [ether] on eth5

      那么00:0D:87:D6:BC:09这个MAC地址究竟是对应哪个IP地址呢?如果网管对IP地址的管理工作到位,就应该有一张详细的IP地址与MAC地址的对应表,并具体到每个IP地址对应哪个用户、哪个部门、在哪台交换机的哪个端口上,这样一查就清楚了。当然,在核心三层交换机上执行show arp命令的话,然后搜索这个MAC地址,也能很快找到这个病毒主机的IP。我很快就查到这个MAC地址对应的是192.168.64.105这个IP地址。

      知道了MAC地址就可以找到对应的交换机端口,然后先关闭端口消除影响。知道了IP地址就能知道是谁的电脑,然后上门杀毒。不过由于天融信防火墙对于ARP列表更新没那么快,就算我们把病毒主机的网断了,那些被欺骗的主机一时间还是无法上网的,因为天融信防火墙的ARP列表里存储的还是错误的MAC地址。这好办,用arp -d命令就行。用UltraEdit编辑几条批处理命令:

    arp -d 192.168.64.148
    arp -d 192.168.64.251
    arp -d 192.168.64.58
    arp -d 192.168.64.59
    arp -d 192.168.64.50
    arp -d 192.168.64.203
    arp -d 192.168.64.54

      运行了这些命令,这些被骗的主机马上就能上网了。当然直接重启一下防火墙也行。

      前面说了一大堆检测病毒主机的方法,那针对第三种类型的ARP病毒,有没有预防方法呢?当然有,天融信防火墙不是有ARP绑定功能么?如果我们事先在天融信防火墙上用arp -s命令绑定所有上网IP的MAC地址,那么第三种类型的ARP病毒就无法欺骗防火墙了,而且各用户主机也用arp -s命令绑定防火墙的MAC地址的话,病毒主机也就无法欺骗其他主机了,这样一来病毒的双向欺骗在任何一个方向都不成功,自然就没法影响大家上网了。不过这样做的坏处是网管可能会很难发现病毒主机,另外做了MAC地址绑定后,如果有很多用户要更改IP地址,估计网管会发疯的。
    分享到: QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 顶0 踩0 转发到微博

    发表回复

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐阅读

    返回顶部