作者在 2006-11-15 16:36:00 发布以下内容
MAC地址绑定与IP地址绑定类似,MAC地址绑定也分为服务器有关MAC地址绑定、服务器无关MAC地址绑定、MAC地址静态绑定和MAC地址动态绑定。服务器有关MAC地址绑定在政务网或园区网中的应用较多,可将用户的使用权限和机器的MAC地址绑定起来,限制用户只能在固定的机器上网,保障安全,防止帐号盗用。由于MAC地址可以修改,因此这个方法可以起到一定的作用,但仍有漏洞。
关于在WINDOWS 2000 SERVER 下用ARP -S捆绑MAC和IP的方法需要具体分析,否则可能起不到绑定定作用。以WINDOWS 2000server为例,WIN主机用IP+MAC的方式限制上网,很容易被用户突破。这里需要说明的是有3种情况:
1、 服务器用ARP -S 做IP+MAC捆绑后,如果用户自己改IP,保持MAC不变,这种情况下,ARP -S的捆绑被用户轻易突破。
第一种情况的实验如上图,服务器2000/NAT/10.41.221.2。客户机的IP是10.41.221.6,然后在2000的服务器上用ARP -S 做捆绑。然后把客户机的IP改为10.41.221.7,如图,10.41.221.7可以上网。轻易可以突破捆绑
2、 服务器用ARP -S 做IP+MAC捆绑后,如果用户自己改MAC,保持IP不变,这种情况下,ARP -S的捆绑被用户轻易突破。
所以上面的实验用第三方软件发包欺骗网关,达到正常的用户IP不能上网的目的。
3、 服务器用ARP -S 做IP+MAC捆绑后,如果LAN中存在2台计算机的 IP和MAC完全相同(参考上面介绍的方法设置MAC地址),这种情况下,操作系统不会报告IP地址冲突,也不会报告MAC地址冲突。ARP -S的捆绑被用户轻易突破。
为什么在WINDOWS 2000下用ARP -S 做IP+MAC捆绑会无效呢?
高手做了详细的描述:“对于ARP表,W2K系统是通过内建的SNMP来进行管理的,不管你的SNMP服务是否开启,呵呵,奇怪吧? 先我也一样很奇怪ARP这个程序是如何运行的,因为查遍了所有MSDN的文档都没有涉及到ARP表读取,修改的API。万般无奈之下,只有看ARP的汇编代码,才发现这个秘密。ARP -S命令也只是根据SNMP对应的OID接点的ARP表规范的ARP类型由3(动态)修改成4(静态),但是低层的TCP/IP协议栈在收到ARP包以后修改SNMP对应的ARP表,根本就没有检查其类型,这也是ARP -S命令无效的原因。”
六、MAC地址带来的网络安全问题
修改IP和MAC都很容易,这不可避免的带来了安全问题,下面分别以的IP+MAC绑定、端口和MAC捆绑和虚拟路由器这3种情况讨论,这里讨论的绑定可以是WIN主机也可以是路由交换设备。
情况1、简单的IP+MAC绑定
前面介绍了ARP -S静态ARP绑定无效的情况,使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表,可以解决这个问题。不过ARP绑定在WIN2003下却是有效果的,在LINUX下也有效果,不仅如此,个人防火墙如ZoneAlarm等也有MAC过滤功能。在交换机上也可以做类似绑定,增加静态ARP绑定以防止IP地址盗用(类似这样的命令arp 1.1.1.1 0001.0001.1111 ARPA)。设置完成之后,如果非法用户把地址改为1.1.1.1,它发送到路由器的包正常,但是从目标服务器2.1.1.1返回的数据包在路由器上转发的时候,目标MAC地址将总是设为0001.0001.1111,非法用户不能接收。
突破方法:修改MAC地址很容易,在Windows网络连接设置修改网卡的配置,在“高级”页面中找到NetworkAddress设置为指定的值即可。
2、虚拟主机的特点。这个主机可以设置MAC地址,也就是说:对外无论谁先拨号,服务商检测到的是已经注册的唯一的合法的MAC,轻松突破服务商IP+MAC捆绑或者MAC+端口捆绑;当服务器关机后,其它电脑将会自动成为服务器,保证网络可以继续使用,这样可以实现无缝切换:当服务器关机,客户机切换到服务器的过程中,可以保证客户机中正在进行中的游戏不会中断。无缝切换已经在大多数游戏中测试过,包括CS、Quake、联众世界等。
3、HomeShare虚拟的路由器提供网络地址转换(NAT)功能,实现共享上网和内部网络资源共享,而且是通过广播来完成的,客户机不需要复杂的设置就可以上网。网络中所有的计算机使用自己真实的MAC地址和虚拟主机的虚拟MAC通讯,完成数据交换。毫无疑问,HomeShare虚拟的路由器给传统的宽带认证管理带来了安全问题。
关于在WINDOWS 2000 SERVER 下用ARP -S捆绑MAC和IP的方法需要具体分析,否则可能起不到绑定定作用。以WINDOWS 2000server为例,WIN主机用IP+MAC的方式限制上网,很容易被用户突破。这里需要说明的是有3种情况:
1、 服务器用ARP -S 做IP+MAC捆绑后,如果用户自己改IP,保持MAC不变,这种情况下,ARP -S的捆绑被用户轻易突破。
第一种情况的实验如上图,服务器2000/NAT/10.41.221.2。客户机的IP是10.41.221.6,然后在2000的服务器上用ARP -S 做捆绑。然后把客户机的IP改为10.41.221.7,如图,10.41.221.7可以上网。轻易可以突破捆绑
2、 服务器用ARP -S 做IP+MAC捆绑后,如果用户自己改MAC,保持IP不变,这种情况下,ARP -S的捆绑被用户轻易突破。
所以上面的实验用第三方软件发包欺骗网关,达到正常的用户IP不能上网的目的。
3、 服务器用ARP -S 做IP+MAC捆绑后,如果LAN中存在2台计算机的 IP和MAC完全相同(参考上面介绍的方法设置MAC地址),这种情况下,操作系统不会报告IP地址冲突,也不会报告MAC地址冲突。ARP -S的捆绑被用户轻易突破。
为什么在WINDOWS 2000下用ARP -S 做IP+MAC捆绑会无效呢?
高手做了详细的描述:“对于ARP表,W2K系统是通过内建的SNMP来进行管理的,不管你的SNMP服务是否开启,呵呵,奇怪吧? 先我也一样很奇怪ARP这个程序是如何运行的,因为查遍了所有MSDN的文档都没有涉及到ARP表读取,修改的API。万般无奈之下,只有看ARP的汇编代码,才发现这个秘密。ARP -S命令也只是根据SNMP对应的OID接点的ARP表规范的ARP类型由3(动态)修改成4(静态),但是低层的TCP/IP协议栈在收到ARP包以后修改SNMP对应的ARP表,根本就没有检查其类型,这也是ARP -S命令无效的原因。”
六、MAC地址带来的网络安全问题
修改IP和MAC都很容易,这不可避免的带来了安全问题,下面分别以的IP+MAC绑定、端口和MAC捆绑和虚拟路由器这3种情况讨论,这里讨论的绑定可以是WIN主机也可以是路由交换设备。
情况1、简单的IP+MAC绑定
前面介绍了ARP -S静态ARP绑定无效的情况,使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表,可以解决这个问题。不过ARP绑定在WIN2003下却是有效果的,在LINUX下也有效果,不仅如此,个人防火墙如ZoneAlarm等也有MAC过滤功能。在交换机上也可以做类似绑定,增加静态ARP绑定以防止IP地址盗用(类似这样的命令arp 1.1.1.1 0001.0001.1111 ARPA)。设置完成之后,如果非法用户把地址改为1.1.1.1,它发送到路由器的包正常,但是从目标服务器2.1.1.1返回的数据包在路由器上转发的时候,目标MAC地址将总是设为0001.0001.1111,非法用户不能接收。
突破方法:修改MAC地址很容易,在Windows网络连接设置修改网卡的配置,在“高级”页面中找到NetworkAddress设置为指定的值即可。
2、虚拟主机的特点。这个主机可以设置MAC地址,也就是说:对外无论谁先拨号,服务商检测到的是已经注册的唯一的合法的MAC,轻松突破服务商IP+MAC捆绑或者MAC+端口捆绑;当服务器关机后,其它电脑将会自动成为服务器,保证网络可以继续使用,这样可以实现无缝切换:当服务器关机,客户机切换到服务器的过程中,可以保证客户机中正在进行中的游戏不会中断。无缝切换已经在大多数游戏中测试过,包括CS、Quake、联众世界等。
3、HomeShare虚拟的路由器提供网络地址转换(NAT)功能,实现共享上网和内部网络资源共享,而且是通过广播来完成的,客户机不需要复杂的设置就可以上网。网络中所有的计算机使用自己真实的MAC地址和虚拟主机的虚拟MAC通讯,完成数据交换。毫无疑问,HomeShare虚拟的路由器给传统的宽带认证管理带来了安全问题。