cmd,在DOS窗口下输入ipconfig /all,在输出的信息中 Physical Address 就是MAC地址.
修改方法:一种是硬修改,也就是真正的修改网卡的MAC,把EPROM里的东西给改了。这种修改要在DOS下进行,并且需要厂商提供相应的程序。修改过后,以后永远不用再修改。第二种是软修改,相当于欺骗操作系统,实际上物理MAC并没改,而是假冒别人。
1. win98下:
先看网络属性->网卡属性->高级里有没有NetworkAddress 这个选顶,如果有的话,在此填写上你的新MAC地址。然后,就行了。如果那里没有,那运行regedit HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net\0000下,如果你有一块以上的网卡,就还有在这里保存了 有关你机器网卡的信息,其中的DriverDesc的内容就是你的网卡的信息描述, 不一定就是0000了,根据实际情况自己选。在相应的0000下新建一字符串 "NetworkAddress",键值设为你想设置的地址,主意要连续写。如,我设置的是112233445566 设置完毕,重新启动计算机,你无论是使用 winipcfg或者是
修改方法:一种是硬修改,也就是真正的修改网卡的MAC,把EPROM里的东西给改了。这种修改要在DOS下进行,并且需要厂商提供相应的程序。修改过后,以后永远不用再修改。第二种是软修改,相当于欺骗操作系统,实际上物理MAC并没改,而是假冒别人。
1. win98下:
先看网络属性->网卡属性->高级里有没有NetworkAddress 这个选顶,如果有的话,在此填写上你的新MAC地址。然后,就行了。如果那里没有,那运行regedit HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net\0000下,如果你有一块以上的网卡,就还有在这里保存了 有关你机器网卡的信息,其中的DriverDesc的内容就是你的网卡的信息描述, 不一定就是0000了,根据实际情况自己选。在相应的0000下新建一字符串 "NetworkAddress",键值设为你想设置的地址,主意要连续写。如,我设置的是112233445566 设置完毕,重新启动计算机,你无论是使用 winipcfg或者是
使用nbtstat -x.x.xxx是你的具体IP,来查看你都会发现你的网卡的MAC地址已经被修改成了11-22-33-44-55-66。
2. Windows 2000/XP:
一般而言,可以直接更改,呵呵,可能你没到位置:网上邻居-右击属性-本地连接-右击属性-配置(最上面网卡栏)-高级-MAC ADDRESS,看见右边的“值”了吗?那就是你现在的物理地址,改成你想要的,注意中间不留空格也不用“-”符号。完成了。
如果这样搞不定,说明你以前安装系统时不规范。但也可通过如下方法让你的网卡属性中出
现MAC ADDRESS选项。(引述)
第一步,单击“开始”→“运行”→输入“Regedit”,打开注册表编辑器,按Ctrl+F打开查窗,输入“DriverDesc”单击确定。双击到的内容,即为你要修改的网卡的信息描述,左边数形列表显示当前主键(比如0000)HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSET001\CONTROL\CLASS\{4D36E972-
2. Windows 2000/XP:
一般而言,可以直接更改,呵呵,可能你没到位置:网上邻居-右击属性-本地连接-右击属性-配置(最上面网卡栏)-高级-MAC ADDRESS,看见右边的“值”了吗?那就是你现在的物理地址,改成你想要的,注意中间不留空格也不用“-”符号。完成了。
如果这样搞不定,说明你以前安装系统时不规范。但也可通过如下方法让你的网卡属性中出
现MAC ADDRESS选项。(引述)
第一步,单击“开始”→“运行”→输入“Regedit”,打开注册表编辑器,按Ctrl+F打开查窗,输入“DriverDesc”单击确定。双击到的内容,即为你要修改的网卡的信息描述,左边数形列表显示当前主键(比如0000)HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSET001\CONTROL\CLASS\{4D36E972-
E325-11CE-BFC1-08002BE10318\0000(第一块网卡)\Ndi\ params。
第二步,在相应的0000下新建一串值,命名为NetworkAddress,键值设为你要的MAC地址,注意要连续写,如112233445566。
第三步,重新启 动计算机,你就会发现网卡MAC地址已经改变为你所设置的地址。然而,如果你要经常改换地址的话在注册表里改来改去的方法就实在是太繁琐了。不用担心,再进行下面两项修改后你 就会发现以后修改MAC地址竟是如此简单!
第四步,在相应的0000下的Ndi\Params中加一项, 主键名为NetworkAddress,(然后在该主键下添加名为default的串值,其值设为你要设的MAC 地址,同样也要连续地写。)
第五步,在NetworkAddress主键下继续添加名为ParamDesc的字符 串,其值可设为“MAC Address”。
全部设置完成了,关闭注册表,重新启动计算机,打开“网络邻居”的属性,选择相应的网 卡,单击“属性”选择“高级”选项卡,属性中会多出MAC Address的选项,也就是在上面第 二步在注册表中添加的NetworkAddress项,以后只要在此处的设置值中修改MAC地址就可以了 。
第二步,在相应的0000下新建一串值,命名为NetworkAddress,键值设为你要的MAC地址,注意要连续写,如112233445566。
第三步,重新启 动计算机,你就会发现网卡MAC地址已经改变为你所设置的地址。然而,如果你要经常改换地址的话在注册表里改来改去的方法就实在是太繁琐了。不用担心,再进行下面两项修改后你 就会发现以后修改MAC地址竟是如此简单!
第四步,在相应的0000下的Ndi\Params中加一项, 主键名为NetworkAddress,(然后在该主键下添加名为default的串值,其值设为你要设的MAC 地址,同样也要连续地写。)
第五步,在NetworkAddress主键下继续添加名为ParamDesc的字符 串,其值可设为“MAC Address”。
全部设置完成了,关闭注册表,重新启动计算机,打开“网络邻居”的属性,选择相应的网 卡,单击“属性”选择“高级”选项卡,属性中会多出MAC Address的选项,也就是在上面第 二步在注册表中添加的NetworkAddress项,以后只要在此处的设置值中修改MAC地址就可以了 。
3. Linux下:
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
linux下没有ipconfig命令。
eth0是你的第一块网卡,eth1就是第二块。
当然,要有root权限。
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
linux下没有ipconfig命令。
eth0是你的第一块网卡,eth1就是第二块。
当然,要有root权限。
网卡的MAC地址是固化在网上EPROM中的物理地址,是一块网卡的“身份证”,通常为48位。
在平常的应用中,有很多方面与MAC地址相关,如有些软件是和MAC地址绑定的,没有允许的MAC地址,软件就无法运行;
局域网里,管理人员常常将IP与客户机的MAC地址绑定,以方便管理,万一用户的网卡坏掉了,自行更改网卡后必须向管理人员申请更改绑定的MAC地址,这样就比较麻烦。在这种时候,如果我们能够更改一下网卡的MAC地址,那就方便多了。
实际上,修改网卡的MAC地址是很容易的,我们既可以在作系统中通过软件来修改网卡的MAC地址,而实际的网卡MAC地址不变,以达到欺骗软件的目的;也可以用工具直接更改网卡的实际MAC地址。
在平常的应用中,有很多方面与MAC地址相关,如有些软件是和MAC地址绑定的,没有允许的MAC地址,软件就无法运行;
局域网里,管理人员常常将IP与客户机的MAC地址绑定,以方便管理,万一用户的网卡坏掉了,自行更改网卡后必须向管理人员申请更改绑定的MAC地址,这样就比较麻烦。在这种时候,如果我们能够更改一下网卡的MAC地址,那就方便多了。
实际上,修改网卡的MAC地址是很容易的,我们既可以在作系统中通过软件来修改网卡的MAC地址,而实际的网卡MAC地址不变,以达到欺骗软件的目的;也可以用工具直接更改网卡的实际MAC地址。
一、瞒天过海
1.修改注册表
几乎所有的网卡驱动程序都可以被NdisReadNetworkAddress参数调用,以便从注册表中读取一个用户指定的MAC地址。当驱动程序确定这个MAC地址是有效的,就会将这个MAC地址编程入其硬件寄存器中,而忽略网卡固有的MAC地址。我们通过手工修改Windows的注册表就可以达到目的。
在Winodws 98下运行Windows的注册表编辑器,展开“HKEY_LOCAL_MACHINE\System\Current ControlSet\Services\Class\Net”,会看到类似“0000”、“0001”、“0002”的子键。从“0000”子键开始点击,依次查子键下的“DriverDesc”键的内容,直到到与我们查的目标完全相同的网卡注册表信息为止。
当到正确的网卡后,点击下拉式菜单“编辑/新建/字符串”,串的名称为“Networkaddress”,在新建的“Networkaddress”串名称上双击鼠标就可以输入数值了。
输入你想指定的新的MAC地址值。新的MAC地址应该是一个12位的十六进制数字或字母,其间没有“-”,类似“000000000000”的这样的数值(注意,在Windows 98和Windows 2000/XP中具体键值的位置稍有不同,大家可通过查功能来寻)。
在“NetworkAddress”下继续添加一个名为 “ParamDesc”的字串值,它将作为“NetworkAddress”项的描述,数值可以取为“MAC Address”。再把它的内容修改为你想设定的内容.
2.修改网卡属性
大部分的网卡都可以通过在控制面板中修改网卡属性来更改其MAC地址,笔者的3COM 3C905B-TX和RTL8139芯片的网卡都可以这样轻松修改。
在“设备管理器中”,右键点击需要修改MAC地址的网卡图标,并选择“属性/高级”选项卡。在“属性”区,就可以看到一个称作“Network Address”或其他相类似名字的的项目,点击它,在右侧“值”的下方,输入要指定的MAC地址值。要连续输入12个十六进制数字或字母,不要在其间输入“-”。重新启动系统后设置就会生效了。
在“NetworkAddress”下继续添加一个名为 “ParamDesc”的字串值,它将作为“NetworkAddress”项的描述,数值可以取为“MAC Address”。再把它的内容修改为你想设定的内容.
2.修改网卡属性
大部分的网卡都可以通过在控制面板中修改网卡属性来更改其MAC地址,笔者的3COM 3C905B-TX和RTL8139芯片的网卡都可以这样轻松修改。
在“设备管理器中”,右键点击需要修改MAC地址的网卡图标,并选择“属性/高级”选项卡。在“属性”区,就可以看到一个称作“Network Address”或其他相类似名字的的项目,点击它,在右侧“值”的下方,输入要指定的MAC地址值。要连续输入12个十六进制数字或字母,不要在其间输入“-”。重新启动系统后设置就会生效了。
二、釜底抽薪
假如用户使用的是RealTek公司的RTL8139A/B/C/D系列芯片的网卡,有一种更简单的方法修改MAC地址。RealTek公司设计的PG8139软件可以直接修改RTL8139系列网卡的MAC地址,甚至可以让每次启动后网卡的MAC地址都不相同。具体*作如下:
把pg8139.zip解压缩到一个文件夹下,以8139C芯片为例,用记事本打开该目录下的8139c.cfg文件,修改8139c.cfg文件的第一行,将“NodeID”(网卡号)后改为所需要的?怠=ㄒ槌跏贾滴 ?0 E0 4C 00 00 01”,修改时注意每两位之间至少要留一个空格
保存后再进入MS-DOS方式(注意,要在纯DOS模式下),在DOS提示符后输入“pg8139 /pci 8139c.cfg”后再按回车键,此时系统如果提示“Programming EEPROM is successful”则说明更改成功。PG8139程序每成功运行一次,在相应的8139c.cfg文件中,系统会自动将“NodeID”的值加1,也就是说,第一次运行时给当前工作站网卡分配的MAC地址为“00 E0 4C 00 00 01”,第二次运行时,系统会自动分配为“00 E0 4C 00 00 02”,第三次运行时,会自动为“00 E0 4C 00 00 03”……,依此类推,就可以批量地修改网卡的MA
C地址,不再需要重复修改8139c.cfg文件了。
如果用户的网卡是RTL8139其他版本的芯片,只要到相应的.cfg文件修改就行了。
另外,还有一种极端的办法,通过烧录网卡的EEPROM来达到克隆MAC地址的目的。但这样做风险很大,而且*作复杂,即使是有经验的用户也难免在*作中出现错误,我们不推荐进行这种*作。
三、巧借东风
如果是Windows 2000/XP的用户,则可以使用免费MAC地址修改软件SMAC。运行SMAC后,窗口中的列表框列出计算机上正处于工作状态的网卡。选定要修改的网卡后,在列表框下方的六个输入框中输入新的MAC地址后,点击右侧的“Update MAC(修改MAC地址)”,即可完成MAC地址的修改。如图4所示。
修改MAC地址的工具有很多,但大多数都只适用于Windows 2000/XP,笔者在这里推荐用“超级兔子魔法设置”,因为不但简单易用,而且在Windows 9x系统中使用同样有效。
修改完成后,就要使设置生效,一般的办法是重新启动系统。还有一种简单的办法不需要
如果用户的网卡是RTL8139其他版本的芯片,只要到相应的.cfg文件修改就行了。
另外,还有一种极端的办法,通过烧录网卡的EEPROM来达到克隆MAC地址的目的。但这样做风险很大,而且*作复杂,即使是有经验的用户也难免在*作中出现错误,我们不推荐进行这种*作。
三、巧借东风
如果是Windows 2000/XP的用户,则可以使用免费MAC地址修改软件SMAC。运行SMAC后,窗口中的列表框列出计算机上正处于工作状态的网卡。选定要修改的网卡后,在列表框下方的六个输入框中输入新的MAC地址后,点击右侧的“Update MAC(修改MAC地址)”,即可完成MAC地址的修改。如图4所示。
修改MAC地址的工具有很多,但大多数都只适用于Windows 2000/XP,笔者在这里推荐用“超级兔子魔法设置”,因为不但简单易用,而且在Windows 9x系统中使用同样有效。
修改完成后,就要使设置生效,一般的办法是重新启动系统。还有一种简单的办法不需要
重新启动系统,在“设备管理器”中,选定网络适配器图标,点击鼠标右键,选择“禁用”(请注意*作后,状态栏是否已显示为“禁用xp提交更改”)。然后再右键单击选定的网络适配器,在右键菜单中选择“启用”。这样就能使修改后的设置生效。
MAC地址与IP地址绑定策略的破解
绑定:
arp -s ip mac
解除绑定
arp -d ip
1 引言
对“IP地址盗用”的解决方案绝大多数都是采取MAC与IP地址绑定策略,这种做法是十分危
MAC地址与IP地址绑定策略的破解
绑定:
arp -s ip mac
解除绑定
arp -d ip
1 引言
对“IP地址盗用”的解决方案绝大多数都是采取MAC与IP地址绑定策略,这种做法是十分危
险的,本文将就这个问题进行探讨。在这里需要声明的是,本文是处于对对MAC与IP地址绑定策略安全的忧虑,不带有任何黑客性质。
1.1 为什么要绑定MAC与IP 地址
影响网络安全的因素很多,IP地址盗用或地址欺骗就是其中一个常见且危害极大的因素。现实中,许多网络应用是基于IP的,比如流量统计、账号控制等都将IP地址作为标志用户的一个重要的参数。如果有人盗用了合法地址并伪装成合法用户,网络上传输的数据就可能被破坏、窃听,甚至盗用,造成无法弥补的损失。
盗用外部网络的IP地址比较困难,因为路由器等网络互连设备一般都会设置通过各个端口的IP地址范围,不属于该IP地址范围的报文将无法通过这些互连设备。但如果盗用的是Ethernet内部合法用户的IP地址,这种网络互连设备显然无能为力了。“道高一尺,魔高一丈”,对于Ethernet内部的IP地址被盗用,当然也有相应的解决办法。绑定MAC地址与IP地址就是防止内部IP盗用的一个常用的、简单的、有效的措施。
1.1 为什么要绑定MAC与IP 地址
影响网络安全的因素很多,IP地址盗用或地址欺骗就是其中一个常见且危害极大的因素。现实中,许多网络应用是基于IP的,比如流量统计、账号控制等都将IP地址作为标志用户的一个重要的参数。如果有人盗用了合法地址并伪装成合法用户,网络上传输的数据就可能被破坏、窃听,甚至盗用,造成无法弥补的损失。
盗用外部网络的IP地址比较困难,因为路由器等网络互连设备一般都会设置通过各个端口的IP地址范围,不属于该IP地址范围的报文将无法通过这些互连设备。但如果盗用的是Ethernet内部合法用户的IP地址,这种网络互连设备显然无能为力了。“道高一尺,魔高一丈”,对于Ethernet内部的IP地址被盗用,当然也有相应的解决办法。绑定MAC地址与IP地址就是防止内部IP盗用的一个常用的、简单的、有效的措施。
1.2 MAC与IP 地址绑定原理
IP地址的修改非常容易,而MAC地址存储在网卡的EEPROM中,而且网卡的MAC地址是唯一确定的。因此,为了防止内部人员进行非法IP盗用(例如盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败:而且由于网卡MAC地址的唯一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。
目前,很多单位的内部网络,尤其是学校校园网都采用了MAC地址与IP地址的绑定技术。许多防火墙(硬件防火墙和软件防火墙)为了防止网络内部的IP地址被盗用,也都内置了MAC地址与IP地址的绑定功能。
从表面上看来,绑定MAC地址和IP地址可以防止内部IP地址被盗用,但实际上由于各层协议以及网卡驱动等实现技术,MAC地址与IP地址的绑定存在很大的缺陷,并不能真正防止内部IP地址被盗用。
2 破解MAC与IP地址绑定策略
IP地址的修改非常容易,而MAC地址存储在网卡的EEPROM中,而且网卡的MAC地址是唯一确定的。因此,为了防止内部人员进行非法IP盗用(例如盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败:而且由于网卡MAC地址的唯一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。
目前,很多单位的内部网络,尤其是学校校园网都采用了MAC地址与IP地址的绑定技术。许多防火墙(硬件防火墙和软件防火墙)为了防止网络内部的IP地址被盗用,也都内置了MAC地址与IP地址的绑定功能。
从表面上看来,绑定MAC地址和IP地址可以防止内部IP地址被盗用,但实际上由于各层协议以及网卡驱动等实现技术,MAC地址与IP地址的绑定存在很大的缺陷,并不能真正防止内部IP地址被盗用。
2 破解MAC与IP地址绑定策略
2.1 IP地址和MAC地址简介
现行的TCP/IP网络是一个四层协议结构,从下往上依次为链路层、网络层、传输层和应用层。
Ethernet协议是链路层协议,使用的地址是MAC地址。MAC地址是Ethernet网卡在Ethernet中的硬件标志,网卡生产时将其存于网卡的EEPROM中。网卡的MAC地址各不相同,MAC地址可以唯一标志一块网卡。在Ethernet上传输的每个报文都含有发送该报文的网卡的MAC地址。
Ethernet根据Ethernet报文头中的源MAC地址和目的MAC来识别报文的发送端和接收端。IP协议应用于网络层,使用的地址为IP地址。使用IP协议进行通讯,每个IP报文头中必须含有源IP和目的IP地址,用以标志该IP报文的发送端和接收端。在Ethernet上使用IP协议传输报文时,IP报文作为Ethernet报文的数据。IP地址对于Ethernet交换机或处理器是透明的。用户可以根据实际网络的需要为网卡配置一个或多个IP地址。MAC地址和IP地址之间并不存在一一对应的关系。
MAC地址存储在网卡的EEPROM中并且唯一确定,但网卡驱动在发送Ethernet报文时,并不从EEPROM中读取MAC地址,而是在内存中来建立一块缓存区,Ethernet报文从中读取源MAC地址。而且,用户可以通过操作系统修改实际发送的Ethernet报文中的源MAC地址。既然MAC地址可以修改,那么MAC地址与IP地址的绑定也就失去了它原有的意义。
2.2 破解方案
下图是破解试验的结构示意图。其内部服务器和外部服务器都提供Web服务,防火墙中实现了MAC地址和IP地址的绑定。报文中的源MAC地址与1P地址对如果无法与防火墙中设置的MAC地址与1P地址对匹配,将无法通过防火墙。主机2和内部服务器都是内部网络中的合法机器;主机1是为了做实验而新加入的机器。安装的操作系统是W2000企业版,网卡是3Com的。
试验需要修改主机1中网卡的MAC和IP地址为被盗用设备的MAC和IP地址。首先,在控制面板中选择“网络和拨号连接”,选中对应的网卡并点击鼠标右键,选择属性,在属性页的“常规”页中点击“配置”按钮。在配置属性页中选择“高级”,再在“属性”栏中选择“Network Address”,在“值”栏中选中输人框,然后在输人框中输人被盗用设备的MAC地址,MAC地
2.2 破解方案
下图是破解试验的结构示意图。其内部服务器和外部服务器都提供Web服务,防火墙中实现了MAC地址和IP地址的绑定。报文中的源MAC地址与1P地址对如果无法与防火墙中设置的MAC地址与1P地址对匹配,将无法通过防火墙。主机2和内部服务器都是内部网络中的合法机器;主机1是为了做实验而新加入的机器。安装的操作系统是W2000企业版,网卡是3Com的。
试验需要修改主机1中网卡的MAC和IP地址为被盗用设备的MAC和IP地址。首先,在控制面板中选择“网络和拨号连接”,选中对应的网卡并点击鼠标右键,选择属性,在属性页的“常规”页中点击“配置”按钮。在配置属性页中选择“高级”,再在“属性”栏中选择“Network Address”,在“值”栏中选中输人框,然后在输人框中输人被盗用设备的MAC地址,MAC地
址就修改成功了。
然后再将IP地址配置成被盗用设备的IP地址。盗用内部客户机IP地址:将主机1的MAC地址和IP地址分别修改为主机2的MAC地址和IP地址。主机1可以访问外部服务器,能够顺利地通过防火墙,访问权限与主机2没有分别。而且,与此同时主机2也可以正常地访问外部服务器,完全不受主机1的影响。无论是主机2还是防火墙都察觉不到主机1的存在。主机1如果访问内部服务器,根本无需通过防火墙,更是畅通无阻了。
盗用内部服务器IP地址:将主机1的MAC地址和U地址修改为内部服务器的MAC地址和IP地址。主机1也提供Web服务。为了使效果更明显,主机1上提供的Web服务内容与内部服务器提供的内容不同。
因为在实际的实验中主机1与主机2连在同一个HUB上,主机2的访问请求总是先被主机1响应,主机2期望访问的是内部服务器,得到的却总是主机1提供的内容。更一般地,主机2如果试图访问内部服务器,获得的到底是主机1提供的内容还是内部服务器提供的内容具有随机性,要看它的访问请求首先被谁响应,在后面的分析中我们将进一步对此进行阐述。
盗用服务器的MAC和IP危害可能更大,如果主机1提供的Web内容和内部服务器中的内容一样,那么主机2将无法识别它访问的到底是哪个机器;如果Web内容中要求输人账号、密
然后再将IP地址配置成被盗用设备的IP地址。盗用内部客户机IP地址:将主机1的MAC地址和IP地址分别修改为主机2的MAC地址和IP地址。主机1可以访问外部服务器,能够顺利地通过防火墙,访问权限与主机2没有分别。而且,与此同时主机2也可以正常地访问外部服务器,完全不受主机1的影响。无论是主机2还是防火墙都察觉不到主机1的存在。主机1如果访问内部服务器,根本无需通过防火墙,更是畅通无阻了。
盗用内部服务器IP地址:将主机1的MAC地址和U地址修改为内部服务器的MAC地址和IP地址。主机1也提供Web服务。为了使效果更明显,主机1上提供的Web服务内容与内部服务器提供的内容不同。
因为在实际的实验中主机1与主机2连在同一个HUB上,主机2的访问请求总是先被主机1响应,主机2期望访问的是内部服务器,得到的却总是主机1提供的内容。更一般地,主机2如果试图访问内部服务器,获得的到底是主机1提供的内容还是内部服务器提供的内容具有随机性,要看它的访问请求首先被谁响应,在后面的分析中我们将进一步对此进行阐述。
盗用服务器的MAC和IP危害可能更大,如果主机1提供的Web内容和内部服务器中的内容一样,那么主机2将无法识别它访问的到底是哪个机器;如果Web内容中要求输人账号、密
码等信息,那么这些信息对于主机1来说则是一览无遗了。
3 破解成功的原因
上面的实验验证了绑定MAC地址与IP地址的确存在很大的缺陷,无法有效地防止内部IP地址被盗用。接下来,将从理论上对该缺陷进行详细的分析。
缺陷存在的前提是网卡的混杂接收模式,所谓混杂接收模式是指网卡可以接收网络上传输的所有报文,无论其目的MAC地址是否为该网卡的MAC地址。正是由于网卡支持混杂模式,才使网卡驱动程序支持MAC地址的修改成为可能;否则,就算修改了MAC地址,但是网卡根本无法接收相应地址的报文,该网卡就变得只能发送,无法接收,通信也就无法正常进行了。
MAC地址可以被盗用的直接原因是网卡驱动程序发送Ethernet报文的实现机制。Ethernet报文中的源MAC地址是驱动程序负责填写的,但驱动程序并不从网卡的EEPROM中读取MAC,而是在内存中建立一个MAC地址缓存区。网卡初始化的时候将EEPROM中的内容读入到该缓存区。如果将该缓存区中的内容修改为用户设置的MAC地址,以后发出去的Et
3 破解成功的原因
上面的实验验证了绑定MAC地址与IP地址的确存在很大的缺陷,无法有效地防止内部IP地址被盗用。接下来,将从理论上对该缺陷进行详细的分析。
缺陷存在的前提是网卡的混杂接收模式,所谓混杂接收模式是指网卡可以接收网络上传输的所有报文,无论其目的MAC地址是否为该网卡的MAC地址。正是由于网卡支持混杂模式,才使网卡驱动程序支持MAC地址的修改成为可能;否则,就算修改了MAC地址,但是网卡根本无法接收相应地址的报文,该网卡就变得只能发送,无法接收,通信也就无法正常进行了。
MAC地址可以被盗用的直接原因是网卡驱动程序发送Ethernet报文的实现机制。Ethernet报文中的源MAC地址是驱动程序负责填写的,但驱动程序并不从网卡的EEPROM中读取MAC,而是在内存中建立一个MAC地址缓存区。网卡初始化的时候将EEPROM中的内容读入到该缓存区。如果将该缓存区中的内容修改为用户设置的MAC地址,以后发出去的Et
hernet报文的源地址就是修改后的MAC地址了。
如果仅仅是修改MAC地址,地址盗用并不见得能够得逞。Ethernet是基于广播的,Ethernet网卡都能监听到局域网中传输的所有报文,但是网卡只接收那些目的地址与自己的MAC地址相匹配的Ethernet报文。如果有两台具有相同MAC地址的主机分别发出访问请求,而这两个访问请求的响应报文对于这两台主机都是匹配的,那么这两台主机就不只接收到自己需要的内容,而且还会接收到目的为另外一台同MAC主机的内容。
按理说,两台主机因为接收了多余的报文后,都应该无法正常工作,盗用马上就会被察觉,盗用也就无法继续了;但是,在实验中地址被盗用之后,各台实验设备都可以互不干扰的正常工作。这又是什么原因呢?答案应该归结于上层使用的协议。
目前,网络中最常用的协议是TCP/IP协议,网络应用程序一般都是运行在TCP或者UDP之上。例如,实验中Web服务器采用的HTTP协议就是基于TCP的。在TCP或者UDP中,标志通信双方的不仅仅是IP地址,还包括端口号。在一般的应用中,用户端的端口号并不是预先设置的,而是协议根据一定的规则生成的,具有随机性。像上面利用IE来访问Web服务器就是这样。UDP或者TCP的端口号为16位二进制数,两个16位的随机数字相等的几率非常小,恰好相等又谈何容易?两台主机虽然MAC地址和IP地址相同,但是应用端口号不
如果仅仅是修改MAC地址,地址盗用并不见得能够得逞。Ethernet是基于广播的,Ethernet网卡都能监听到局域网中传输的所有报文,但是网卡只接收那些目的地址与自己的MAC地址相匹配的Ethernet报文。如果有两台具有相同MAC地址的主机分别发出访问请求,而这两个访问请求的响应报文对于这两台主机都是匹配的,那么这两台主机就不只接收到自己需要的内容,而且还会接收到目的为另外一台同MAC主机的内容。
按理说,两台主机因为接收了多余的报文后,都应该无法正常工作,盗用马上就会被察觉,盗用也就无法继续了;但是,在实验中地址被盗用之后,各台实验设备都可以互不干扰的正常工作。这又是什么原因呢?答案应该归结于上层使用的协议。
目前,网络中最常用的协议是TCP/IP协议,网络应用程序一般都是运行在TCP或者UDP之上。例如,实验中Web服务器采用的HTTP协议就是基于TCP的。在TCP或者UDP中,标志通信双方的不仅仅是IP地址,还包括端口号。在一般的应用中,用户端的端口号并不是预先设置的,而是协议根据一定的规则生成的,具有随机性。像上面利用IE来访问Web服务器就是这样。UDP或者TCP的端口号为16位二进制数,两个16位的随机数字相等的几率非常小,恰好相等又谈何容易?两台主机虽然MAC地址和IP地址相同,但是应用端口号不
同,接收到的多余数据由于在TCP/UDP层不到匹配的端口号,被当成无用的数据简单地丢弃了,而TCP/UDP层的处理对于用户层来说是透明的;所以用户可以“正确无误”地正常使用相应的服务,而不受地址盗用的干扰。
当然,某些应用程序的用户端口号可能是用户或者应用程序自己设置的,而不是交给协议来随机的生成。那么,结果又会如何呢?例如,在两台MAC地址和IP地址都相同的主机上,启动了两个端口相同的应用程序,这两个应用是不是就无法正常工作了呢?其实不尽然。
如果下层使用的是UDP协议,两个应用将互相干扰无法正常工作。如果使用的是TCP协议,结果就不一样了。因为TCP是面向连接的,为了实现重发机制,保证数据的正确传输,TCP引入了报文序列号和接收窗口的概念。在上述的端口号匹配的报文中,只有那些序列号的偏差属于接收窗口之内的报文才会被接收,否则,会被认为是过期报文而丢弃。TCP协议中的报文的序列号有32位,每个应用程序发送的第一个报文的序列号是严格按照随机的原则产生的,以后每个报文的序列号依次加1。
窗口的大小有16位,也就是说窗口最大可以是216,而序列号的范围是232,主机期望接收的TCP数据的序列号正好也处于对方的接收范围之内的概率为1/216,可谓小之又小。 T
当然,某些应用程序的用户端口号可能是用户或者应用程序自己设置的,而不是交给协议来随机的生成。那么,结果又会如何呢?例如,在两台MAC地址和IP地址都相同的主机上,启动了两个端口相同的应用程序,这两个应用是不是就无法正常工作了呢?其实不尽然。
如果下层使用的是UDP协议,两个应用将互相干扰无法正常工作。如果使用的是TCP协议,结果就不一样了。因为TCP是面向连接的,为了实现重发机制,保证数据的正确传输,TCP引入了报文序列号和接收窗口的概念。在上述的端口号匹配的报文中,只有那些序列号的偏差属于接收窗口之内的报文才会被接收,否则,会被认为是过期报文而丢弃。TCP协议中的报文的序列号有32位,每个应用程序发送的第一个报文的序列号是严格按照随机的原则产生的,以后每个报文的序列号依次加1。
窗口的大小有16位,也就是说窗口最大可以是216,而序列号的范围是232,主机期望接收的TCP数据的序列号正好也处于对方的接收范围之内的概率为1/216,可谓小之又小。 T
CP的序列号本来是为了实现报文的正确传输,现在却成了地址盗用的帮凶。
4 解决MAC与IP地址绑定被破解的方法
解决MAC与IP地址绑定被破解的方法很多,主要以下几种。
交换机端口、MAC地址和IP地址三者绑定的方法;代理服务与防火墙相结合的方法;用PPPoE协议进行用户认证的方法;基于目录服务策略的方法;统一身份认证与计费软件相结合的方法等(这些方法的实现原理和过程可以参考拙作《校园网IP地址盗用解决方案》)。在这里笔者尤其推荐最后一种方法,这种方法是将校园网办公自动化系统和网络计费软件结合在一起而实现的,这在校园网信息化建设的今天具有很强的实践性。
4 解决MAC与IP地址绑定被破解的方法
解决MAC与IP地址绑定被破解的方法很多,主要以下几种。
交换机端口、MAC地址和IP地址三者绑定的方法;代理服务与防火墙相结合的方法;用PPPoE协议进行用户认证的方法;基于目录服务策略的方法;统一身份认证与计费软件相结合的方法等(这些方法的实现原理和过程可以参考拙作《校园网IP地址盗用解决方案》)。在这里笔者尤其推荐最后一种方法,这种方法是将校园网办公自动化系统和网络计费软件结合在一起而实现的,这在校园网信息化建设的今天具有很强的实践性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论