网络安全 频道

全方位了解Mac地址

什么是Mac地址?

  Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)

  前24位由是生产厂家向IEEE申请的厂商地址(这可是要花钱的哦!据说1000美元才能买一个地址块)。后24位就由生产厂家自行定以了。(早期的2字节的却不用申请)

  IP地址和Mac地址有什么联系和区别

  大家都知道,现在有很多计算机都是通过先组建局域网,然后通过交换机和Internet连接的(大学里的校园网就是这样)。然后给每个用户分配固定的IP地址,由管理中心统一管理,这样为了管理方便就需要使用Mac地址来标志用户,防止发生混乱,明确责任(比如网络犯罪)。另外IP地址和Mac地址是有区别的,虽然他们在局域网中是一一对应的关系。IP地址是跟据现在的IPv4标准指定的,不受硬件限制比较容易记忆的地址,而Mac地址却是用网卡的物理地址,多少与硬件有关系,比较难于记忆。

  如何知道自己的Mac地址

  方法比较多,也比较得简单,在这里介绍两种常用的方法,在Win9x 可用:WinIPcfg获得,在2000、XP可用IPconfig -all获得。如果你已经给自己的网卡分配了IP还可以用 nbtstat -A 自己的IP 如下图,后者只能在2000/XP下使用。

如何获得别人的Mac

  其实上面已经涉及到了,如果是2000/XP用户可以用 nbtstat -A IP地址(还可以获得别的东东啊,可别学坏啊)。另外同一局域网内的,你可以用ping IP 或者ping 主机名,然后用arp -a 来获得。

  如何修改自己的Mac地址

  Mac地址是保存在网卡的EPROM里面,通过网卡生产厂家提供的修改程序可以更改存储器里的地址,即使网卡没有这样的设置我们也可以通过间接的方法修改,一般网卡发出的包的源Mac地址并不是网卡本身写上去的,而是应用程序提供的,只是在通常的实现中,应用程序先从网卡上得到Mac地址,每次发送的时候都用这个Mac做为源Mac而已,Windows中,网卡的Mac保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以简单的改变Mac

  Win9x中修改:

  打开注册表编辑器,在HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Service\Class\Net\下的0000,0001,0002 Win2000/XP中的修改:同样打开注册表编辑器,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串变量,命名为"NetworkAddress",值为要设置的Mac地址,例如:000102030405
完成上述操作后重启就好了。

  Linux下的修改:

  1.必须关闭网卡设备,否则会报告系统忙,无法更改。

  命令是:"ifconfig eth0 down"

  2.修改Mac地址,这一步较Windows中的修改要简单。

  命令是:"ifconfig eth0 hw ether 00AABBCCDDEE"

  3.重新启用网卡

  "ifconfig eth0 up"网卡的Mac地址更改就完成了。

  现在还有很多软件提供了修改Mac地址的功能,如:Mac2001

  那么既然IP和Mac地址都可以改,那么怎么防御呢?通过简单的交换机端口绑定(端口的Mac表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改Mac地址的盗用,如果是三层设备还可以提供:交换机端口-IP-Mac 三者的绑定,防止修改Mac的IP盗用,这种方法更有效!还有些方法如配置交换机的VLAN,使用用户认证等,都略显复杂,再次不多浪费笔墨。

  通过上面的介绍我想大家对Mac地址应该有个比较全面的认识了吧??呵呵,可别作坏事啊


〉〉zjz以下补充资料
对于使用Win 2000或者是Linux的用户可能会觉得无从下手。不过这并不意味着Win 98以外的操作系统就不可以更改MAC地址,在本文中笔者将介绍如何在不同的操作系统下更改网卡物理地址。

  一、Win 2000下修改MAC地址

  1.在“HKEY_LOCAL_MACHINE\SYS

  TEM\CurrentControlSet\Control\Class\4D36

  E972-E325-11CE-BFC1-08002BE10318\0000、0001、0002”等主键下, 因为你有可能安装了不止一块网卡,所以在这个主键下可能会有多个类似于“0000、0001”的主键,这时候你可以查找DriverDesc内容为你要修改的网卡的描述相吻合的主键,如“0000”。

  2.在上面提到的主键下,添一个字符串,名字为“NetworkAddress”,把它的值设为你要的MAC地址,要连续写如“001010101010”。

  3.然后到主键下“NDI\params”中添加一项“NetworkAddress”的主键值,在该主键下添加名为“default”的字符串,值写要设的MAC地址,要连续写,如“001010101010”。

  【注】实际上这只是设置在后面提到的高级属性中的“初始值”,实际使用的MAC地址还是取决于在第2点中提到的“NetworkAddress”参数,而且一旦设置后,以后高级属性中值就是“NetworkAddress”给出的值而非“default”给出的了。

  4.在“NetworkAddress”的主键下继续添加名为“ParamDesc”的字符串,其作用为指定“NetworkAddress”主键的描述,其值可为“MAC Address”(也可以随意设置,这只是个描述,无关紧要,这个值将会在你以后直接修改MAC地址的时候作为描述出现),这样重新启动一次以后打开网络邻居的属性,双击相应网卡项会发现有一个高级设置,其下存在MAC Address (就是你在前面设置的ParamDesc,如图(^29041103a^)1)的选项,这就是你在第二步里在注册表中加的新项“NetworkAddress”,以后只要在此修改MAC地址就可以了。

  5.关闭注册表编辑器,重新启动,你的网卡地址已经改好了。打开网络邻居的属性,双击相应网卡项会发现有一个MAC Address的高级设置项。用于直接修改MAC地址,而且不需要重新启动就可以实现MAC的随时更改。

  二、 Linux下的MAC地址更改

  1.首先必须关闭网卡设备,否则会报告系统忙,无法更改。

  命令是:“/sbin/ifconfig eth0 down”

  2.修改MAC地址,这一步较Windows中的修改要简单。

  命令是:“/sbin/ifconfig eth0 hw ether 00AABBCCDDEE”  3.重新启用网卡

“/sbin/ifconfig eth0 up”网卡的MAC地址更改就完成了。

  三、Win Me下的MAC更改

  在Win Me下,MAC地址的更改和Win 98下是一样的,在22期中《给网卡换张“身份证”》一文中已经有介绍,所以不再赘述。

  四、补充说明

  1.在Win 2000下,已经没有“winipcfg”命令,但是你仍然可以通过“ipconfig”命令来获取网卡的MAC地址信息,方法是首先在运行中输入“cmd”,回车,进入命令行方式,然后输入“ipconfig -all”(此命令在Win 98和Win ME中也可使用),你就可以找到网卡的各项信息,如图(^29041103b^)2。

  2.为什么修改MAC地址?可能有很多人迷惑不解,为什么用这么大的篇幅来介绍修改MAC地址,到底有什么实际意义呢?简单的说,MAC地址相当于你的网络标识,在局域网里,管理人员常常将网络端口与客户机的MAC地址绑定,方便管理,万一你的网卡坏掉了,换一张网卡必须向管理人员申请更改绑定的MAC地址,比较麻烦,这时候,我们直接在操作系统里更改一下MAC,就可以跳过重新申请这一步,减少了很多麻烦。

  另外,当你使用黑客软件对别人的机器进行攻击时,别人的防火墙获取到你的IP地址,就可以通过“Nbtstat -A ip地址”命令获取你的MAC,如果你改一下,呵呵,查到的MAC就不是你的了。(可别说我教你学坏啊!)

  3.如果嫌修改过于麻烦,或者有多台机器需要修改,可以按如下步骤生成一个.reg文件,直接导入机器即可。

  Win 98下的注册表文件:

  REGEDIT4

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net\0000

  "NetWorkAddress"="5254ab338b8d"

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net\0000\Ndi\Params\networkaddress

  "default"="5254ab338b8d"

  "paramdesc"="MAC Address"

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net\0000\Ndi\Params\networkaddress

  "default"="5254ab338b8d"

  "paramdesc"="MAC Address"

  Win 2000下的注册表文件:

  REGEDIT4

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E972-E325-11CE-BFC1-08002B

  E10318\0000

  "NetWorkAddress"="5254ab338b8d"

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E972-E325-11CE-BFC1-08002B

  E10318\0000\Ndi\Params\networkaddre

  ss

  "default"="5254ab338b8d"

  "paramdesc"="MAC Address"

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E972-E325-11CE-BFC1-08002B

  E10318\0000\Ndi\Params\networkaddres

  s

  "default"="5254ab338b8d"

  "paramdesc"="MAC Address"

  用记事本生成以上文件然后保存成1.reg,双击即可实现修改,但是,有一点必须注意,就是必须确定你的网卡在注册表里究竟是“0000”,还是“0001”等其他的,然后在这个Reg文件里进行相应的修改再执行导入操作。否则只会是白费力气。

  使用Win 2000或Linux的朋友,还等什么,快试一试吧
 
http://www.hack58.net/Article/60/63/2006/11327.htm
0
相关文章