IP MAC捆绑原理及缺陷的讨论

来源:互联网 发布:敌在本能寺什么梗 知乎 编辑:程序博客网 时间:2024/04/30 03:00

 

 

路由器从外面收到发给子网的包时,直接用其事先存储的 ARP 表查出对应 MAC 地址,而以这个MAC地址为目的MAC地址在子网内发包 , 这样没有注册的网卡就收不到外面来的包.  但这种方法有缺陷,就是对发出的包不检查,即使网卡MAC 是未登记的, 也可以向外发数据包,而且可以用伪造的IP 当然有的路由器检查源IP的范围, 这时候伪造的IP也必须属于子网内的IP.  我们这里的路由器则更土, 把没有登记的IP 对应的 MAC 设为 0123456789AB , 所以只要把网卡的 MAC 改成这个通用 MAC , 就可以以任何没有登记的 IP 出去, 至于钱

就不知道记在哪个倒霉鬼的头上了.  从根本上说,采用 IP-MAC 来防止IP 盗用是不行的,所有的网卡 MAC 都可以修改.而且更让人吃惊的是网卡发出的包的源 MAC 地址并不是网卡本身写上去的, 而是应用程序提供的,只是在通常的实现中,应用程序先从网卡上得到了MAC地址,每次发送包的时候用这个MAC 地址作为源MAC地址而已,所以完全可以不用网卡带的配置程序修改MAC仅仅靠修改网络的驱动程序就可以改MAC . pkt-driver + win31 的环境下我已经测试过的确是可以的,win95 下利用 NDIS 也是可以的。

  对于基于连接的TCP协议来说,伪造IP就不是太容易, 这就涉及到 TCP 连接序号的预测的问题,这里面有很多的学问了,国外有很多Hack站点有这些方面问题的讨论.

 

这个嘛....说实话,我也没干过....

只是曾和这样的人聊过,方法:

1.直接对网卡操作,改其EPROM内容(以太网卡的地址正是存在此)

2.现在有的网卡据说驱动就能改网卡地址,以前有人讨论过的,你可找找...

其实我也很想实验下,苦于无法详细了解具体细节,老兄要是

有了进一步的体会心得,还望不吝赐教.

初次发表文章,我这里献丑了,先将我对王卡的一些研究与大家分享。

我们知道网卡有一个唯一表示其地址的物理地址,该地址写在ROM中(不管该ROM

EEPROMROM),在网卡组帧时需要将该网卡地址写入帧中,那么网卡在写入

帧中时是否是将MAC地址直接从ROM中写入帧的呢?答案是否定的。

实际上在网卡中有一地址寄存器,该处也记着MAC地址,网卡组帧时所用的MAC

地址即从此处读出,然后由硬件写入帧中,而地址寄存器的内容则是程序在网卡

初始化时从ROM中读出写入的,用图表示如下:

                  ———————          ———————           ————

                 |  ROM        |          |地址寄存器  |          |     |

                 ---------------          --------------           -------

                     |                         |  |                 |

                     |-----程序----------------|  |————硬件------

由此过程可以看出,程序部分是唯一一部分可以用来修改MAC的部分,即我们可以截取

网卡驱动程序中该部分代码,进行修改以修改MAC

如果HUB换用Switch, 某些Switch可以锁定端口和MAC, 某个端口只允许指定

MAC接入, 再加上IP-MAC绑定, 还要加上将Switch锁起来, 情况回好些. 这时

别人要盗用IP除了要改IP,MAC,还要将机器搬过来换网线:).

  有这个问题, 好象TCP/IP启动时会先发ARP广播一下自己的IPMAC(?) 不知到95/NT

  是否会检测到这个. 我的试验是在两台Linux上做的(许多实验室都用Linuxrouter)

  至少ifconfig后两台机器都没有给出信息(在前台, 没看log). 这里的关键在于那合法

  IPMAC地址是在router处定好的(static), router不会发ARP查询 MAC, 因此至少

  router外来的包ARP不会乱(也就是一直用合法IP机的MAC), 而盗用IP的目的当然不会

  是在subnet内转悠 :-) 相当于盗用IP机进入promisc模式, 从合法IP机的包中取出属于

  自己的IP(port不对的丢弃). 经实验, ping, tracerouteICMP双方(合法非法IP)

  都可以用, UDP也可以(DNS实验). TCP不行(telnet, ftp), 我看看source到底是

  怎么回事, 现在是合法IPTCP可用, 盗用者不可用...

  要是TCP也可以了, 那盗用IP岂非很简单, 根本不用改什么MAC,  ifconfig/route

  两条命令就搞定了...

 

 

再谈修改网卡MAC地址

  在看过第2223电脑报后,我觉得修改网卡MAC地址并没有作者所说的那么麻烦。其实更改网卡MAC地址的功能不论98还是2000,都已经提供了,只是平时大家都没有注意到而以。下面我就说说怎么更改。很简单哦。。。

  好了,现在先来看看WIN2000。在桌面上网上邻居图标上点右键,选"属性",在出来的"网络和拨号连接"窗口中一般有两个图标,一个是"新建连接"图标,一个是"我的连接"图标。如果你的机器上有两个网卡的话,那就有三个图标了。如果你只有一个网卡,那就在"我的连接"图标上点右键,选"属性",会出来一个"我的连接 属性"的窗口。在图口上部有一个"连接时使用:"的标识,下面就是你机器上的网卡型号了。在下面有一个"配置"按钮,点击该按钮后就进入了网卡的属性对话框了,这个对话框中有五个属性页,点击第二项"高级"页,在"属性"标识下有两项:一个是"Link Speed/Duplex Mode",这是设置网卡工作速率的,我们需要改的是下面一个"Network Address",点击该项,在对话框右边的""标识下有两个单选项,默认得是"不存在" ,我们只要选中上面一个单选项,然后在右边的框中输入你想改的网卡MAC地址,点"确定",等待一会儿,网卡地址就改好了,你甚至不用停用网卡!

  另外,你也可以在"设置管理器"中,打开网卡的属性页来修改,效果一样。

  在98下面修改和WIN2000下差不多。在"网上邻居"图标上点右键,选择"属性",出来一个"网络"对话框,在"配置"框中,双击你要修改的网卡,出来一个网卡属性对话框。在"高级"选项中,也是点击"属性"标识下的"Network Address"项,在右边的两个单选项中选择上面一个,再在框中输入你要修改的网卡MAC地址,点"确定"后,系统会提示你重新启动。重新启动后,你的网卡地址就告修改成功!!

  如果你想把网卡的MAC地址恢复原样,只要再次把"Network Address"项右边的单选项选择为下面一个"没有显示"再重新启动即可。在WIN2000下面是选择"不存在",当然也不用重新启动了。

   编者注:编者按作者所说的方法进行过尝试,但并未在网卡属性页中看到作者所说的修改选项,估计有可能是因和作者所用的网卡不同的原因(编者所用的为ISA接口的7009网卡),希望读者都试验一下,欢迎到天极DIY论坛讨论结果更换网卡的物理地址更换网卡的物理地址--怎一个爽字了得

我们直到网卡的地址有两种

1IP地址-->这个要修改比较容易。

2MAC地址-->网卡的物理地址,它师Ethernet协议采用的地址,主要用于局域网中。

一般由600--0FFH之间的16进制数组成,中间用"-"隔开表示,如:00-80-c8-74-12-37

一般来说,这个Mac地址是网卡自己的唯一标识,不可以随便更换的。本文对网卡Mac地址的

修改是基于注册表技术实现的。

可以更改的原理//这是我们需要直到的,也是本文的闪光之处。

Windows9x下,网卡驱动程序使用NDIS规范与操作系统通讯。MAC地址就存储在操作系统的

某个存储单元内,Windows9x系统就根据这个存储单元的内容来识别你网卡的物理地址。所以

我们完全不用修改EPROM的内容而只通过修改存储单元的内容就能达到修改MAC地址的目的。

修改方法:

运行regedit.exe,找到

HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/Net/0000下,如果

你有一块以上的网卡,就还有0001,0002...在这里保存了有关你机器网卡的信息,其中的

DriverDesc的内容就是你的网卡的信息描述,比如我的网卡就是

Intel 21041 based Ethernet Controller

在相应的0000下新建一字符串"NetworkAddress",键值设为你想设置的地址,主意要连续写。

如,我设置的是112233445566设置完毕,重新启动计算机,你无论是使用winipcfg或者是使用

nbtstat -a xxx.xxx.xxx.xxx

xxx.xxx.xxx.xxx是你的具体IP,来查看你都会发现你的网卡的MAC地址已经被修改成了

11-22-33-44-55-66

更进一步的设置:

HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/Net/0000

下的NDI/Params中新建主键NetworkAddress;再在NetworkAddress主键下添加名为default

的串值,键值设置为你要预设置的MAC地址,如112233445566;继续添加名为ParmasDesc串,键

值设置为"MAC Address"

设置好后,重新启动机器,打开网上邻居属性,选择相应的网卡,查看其属性页中的高级选项

有一项就是刚才我们设置好的Mac Addess它的设置值就是我们的预设值112233445566

 

以上修改只适合于Windows系列操作系统,对于别的操作系统可能得想别的办法。

修改注册表前请注意备份。另:你改了你网卡的物理地址之后,你就不能上网了

(不过,这时另一个比较恶毒的念头

在我的思维的火光中涌现出来..........)

 

IP地址的盗用和防范

  Internet是一个开放的、互操作的通信系统,其基础协议是TCP/IPInternet协议地址(简

IP地址)是TCP/IP网络中可寻址设施的唯一逻辑标识,它是一个32位的二进制无符号数。对于

Internet上的任一主机,它都必须有一个唯一的IP地址。IP地址由InterNIC及其下级授权机构分

配,没有分配到自己的IP地址的主机不能够直接连接到Internet  

    随着Internet的迅速发展,IP地址的消耗非常快,据权威机构预测,现行IPv4版本的IP只够

    用到2007年。现在,企业、机构、个人要申请到足够的IP地址都非常困难,作为一种稀缺资

    源,IP地址的盗用就成为很常见的问题。特别是在按IP流量计费的CERNET网络,由于费用是

    IP地址进行统计的,许多用户为了逃避网络计费,用IP地址盗用的办法,将网络流量计费

    转嫁到他人身上。另外,一些用户因为一些不可告人的目的,采用IP地址盗用的方式来逃避

    追踪,隐藏自己的身份。  

    IP地址盗用侵害了Internet网络的正常用户的权利,并且给网络计费、网络安全和网络运行

    带来了巨大的负面影响,因此解决IP地址盗用问题成为当前一个迫切的课题。  

1  IP地址盗用方法分析  

IP地址的盗用方法多种多样,其常用方法主要有以下几种:  

1) 静态修改IP地址  

     对于任何一个TCP/IP实现来说,IP地址都是其用户配置的必选项。如果用户在配置TCP/IP

     或修改TCP/IP配置时,使用的不是授权机构分配的IP地址,就形成了IP地址盗用。由于IP

     址是一个逻辑地址,是一个需要用户设置的值,因此无法限制用户对于IP地址的静态修改,

     除非使用DHCP服务器分配IP地址,但又会带来其它管理问题。  

2) 成对修改IP-MAC地址  

     对于静态修改IP地址的问题,现在很多单位都采用静态路由技术加以解决。针对静态路由技

     术,IP盗用技术又有了新的发展,即成对修改IP-MAC地址。MAC地址是设备的硬件地址,对

     于我们常用的以太网来说,即俗称的计算机网卡地址。每一个网卡的MAC地址在所有以太网

     设备中必须是唯一的,它由IEEE分配,是固化在网卡上的,一般不能随意改动。但是,现在

     的一些兼容网卡,其MAC地址可以使用网卡配置程序进行修改。如果将一台计算机的IP地址和

     MAC地址都改为另外一台合法主机的IP地址和MAC地址,那静态路由技术就无能为力了。  

   另外,对于那些MAC地址不能直接修改的网卡来说,用户还可以采用软件的办法来修改MAC地址,

即通过修改底层网络软件达到欺骗上层网络软件的目的。  

 3) 动态修改IP地址  

     对于一些黑客高手来说,直接编写程序在网络上收发数据包,绕过上层网络软件,动态修改自

     己的IP地址(或IP-MAC地址对),达到IP欺骗并不是一件很困难的事。  

     

2  防范技术研究  

针对IP盗用问题,网络专家采用了各种防范技术,现在比较通常的防范技术主要是根据TCP/IP的层

次结构,在不同的层次采用不同的方法来防止IP地址的盗用。 

 

2.1  交换机控制  

解决IP地址的最彻底的方法是使用交换机进行控制,即在TCP/IP第二层进行控制:使用交换机提供的

端口的单地址工作模式,即交换机的每一个端口只允许一台主机通过该端口访问网络,任何其它地址

的主机的访问被拒绝[1]。但此方案的最大缺点在于它需要网络上全部采用交换机提供用户接入,这

在交换机相对昂贵的今天不是一个能够普遍采用的解决方案。  

 

2.2  路由器隔离  

采用路由器隔离的办法其主要依据是MAC地址作为以太网卡地址全球唯一不能改变。其实现方法为通

SNMP协议定期扫描校园网各路由器的ARP表,获得当前IPMAC的对照关系,和事先合法的IP

MAC地址比较,如不一致,则为非法访问[2]。对于非法访问,有几种办法可以制止,如:  

         使用正确的IPMAC地址映射覆盖非法的IP-MAC表项;  

         向非法访问的主机发送ICMP不可达的欺骗包,干扰其数据发送;  

         修改路由器的存取控制列表,禁止非法访问。  

路由器隔离的另外一种实现方法是使用静态ARP表,即路由器中IPMAC地址的映射不通过ARP来获得,

而采用静态设置。这样,当非法访问的IP地址和MAC地址不一致时,路由器根据正确的静态设置转发

的帧就不会到达非法主机。路由器隔离技术能够较好地解决IP地址的盗用问题,但是如果非法用户针对其理

论依据进行破坏,即成对修改IP-MAC地址,对这样的IP地址盗用它就无能为力了。  

 

2.3  防火墙与代理服务器  

使用防火墙与代理服务器相结合,也能较好地解决IP地址盗用问题:防火墙用来隔离内部网络和外

部网络,用户访问外部网络通过代理服务器进行[3]。使用这样的办法是将IP防盗放到应用层来解决,

IP管理为用户身份和口令的管理,因为用户对于网络的使用归根结底是要使用网络应用。这样实现

的好处是,盗用IP地址只能在子网内使用,失去盗用的意义;合法用户可以选择任意一台IP主机使用,

通过代理服务器访问外部网络资源,而无权用户即使盗用IP,也没有身份和密码,不能使用外部网络。  

使用防火墙和代理服务器的缺点也是明显的,由于使用代理服务器访问外部网络对用户不是透明的,

增加了用户操作的麻烦;另外,对于大数量的用户群(如高校的学生)来说,用户管理也是一个问题。

 

如何防止宽带网络IP地址被盗用 

   随着网络技术在国内的蓬勃发展,宽带网在许多大楼和社区应运而生。但在享受各种多媒体信息的同时,有个问题经常困扰着网络管理员和用户,那就是宽带网络内分配的IP地址经常被盗用,授权用户用自己的IP地址在网络中产生冲突,无法进入网络。这种现象导致了网络管理的混乱,影响授权用户的利益,也对用网络流量来进行计费的宽带网带来较大的影响。

  一、开放系统互联模型结构

  要清楚IP地址盗用的方法,首先必须了解国际电联规定的开放系统互联模型(OSI)的结构层次。需要传输的数据在传输层被分割并重组为数据串(segment),然后在网络层加入源和目的IP地址,封装成包(packet),再在数据链路层附加数据链的帧头和帧尾,将数据包放进帧(frame)里,最后在物理层转换成以比特为单位的数据。所以,IP地址是网络层用来标识不同地点的逻辑地址,它的长度是32位;而在数据链路层则是用MAC(媒介存取控制)地址来标识网络节点的位置,它的长度是48位,它也是设备的物理地址。

  二、盗用IP地址的几条途径

  1. 修改静态IP地址

  在修改TCP/IP协议属性配置时,使用的不是网络管理员分配的IP地址,而是已知的授权的IP地址。由于IP地址是一个逻辑地址,是一个需要用户设置的值,因此无法限制用户对于IP地址的静态修改,当盗用者修改IP地址后,也可以通过网关访问外网。

  2. 成对地修改IP地址和MAC地址

  为防止静态IP地址被修改,一般采用静态路由技术予以解决。针对静态路由技术,IP盗用技术又有了新的门路,即成对修改IP-MAC地址。MAC地址是设备的物理地址,对于我们常用的以太网来说,俗称为计算机网卡地址。每一个网卡的MAC地址在所有以太网设备中必须是唯一的,它由IEEE分配,是固化在网卡上的,一般不能随意改动。但是,目前的一些兼容网卡,其MAC地址可以使用网卡配置程序进行修改。如果将一台计算机的IP地址和 MAC地址都改为一台合法主机的IP地址和MAC地址,那静态路由技术就无能为力了。另外,对于那些MAC地址不能直接修改的网卡来说,高明的盗用者还可以采用软件的办法来修改MAC地址。

  三、几种防止IP地址被盗的方法

  1.锁定交换机端口

  对于交换机的每一个以太网端口,采用MAC地址表(MAC-address-table)的方式对端口进行锁定。只有网络管理员在MAC地址表中指定的网卡的MAC地址才能通过该端口与网络连接,其他的网卡地址不能通过该端口访问网络。我们可以在计算机上先运行ping命令,然后用arp-a命令就可以看到网络用户相应的IP地址对应的MAC地址,这样就使MAC地址和物理顺序对应起来,使得一根网线、一个端口对应一个MAC地址。这种方法比较适合于单幢大楼的宽带用户,在每一层楼或每个单元放置一台交换机,对交换机的每一个以太网端口进行限定,让每个用户单独占用一个端口,如果有人盗用了IP地址也将无济于事。下面用一段程序,举例说明指定交换机的e0/9口对应MAC地址083c.0000.0002,只有这个MAC地址可以通过该端口访问网络。

 

  Switchconfig terminal

  Switch(conf)mac-address-table permanent 083c.0000.0002 e0/9

  Switch(conf)int e0/9

  Switch(confif)port secure max-mac-count1

  Switch(confif)exit

  Switch(conf)exit

  2.应用ARP绑定IP地址和MAC地址

  ARPAddress Resolution Protocol)即地址解析协议,这个协议是将IP地址与网络物理地址一一对应的协议。每台计算机的网卡的MAC地址都是唯一的。在三层交换机和路由器中有一张称为ARP的表,用来支持在IP地址和MAC地址之间的一一对应关系,它提供两者的相互转换,具体说就是将网络层地址解析为数据链路层的地址。

  我们可以在ARP表里将合法用户的IP地址和网卡的MAC地址进行绑定。当有人盗用IP地址时,尽管盗用者修改了IP地址,但由于网卡的MAC地址和ARP表中对应的MAC地址不一致,那么也不能访问网络。以Cisco交换机为例,在Cisco Catalyst 5000网络交换机上,关于ARP表的设置和删除有以下几条命令:

  Set arp [dynamic | static] {ip_addr hw_addr} 设置动态或静态的ARP表);

  ip_addrIP地址),hw_addrMAC地址);

  Set arp static 20.89.21.1 00-80-1c-93-80-40(将将IP地址20.89.21.1和网卡MAC地址00-80-1c-93-80-40绑定);

  Set arp static 20.89.21.3 00-00-00-00-00-00(对未用的IP进行绑定,将MAC地址设置为0);

  Set arp agingtime seconds(设置ARP表的刷新时间,如Set arp agingtime 300);

  show arp (用来显示ARP表的内容);

  clear arp [dynamic | static] {ip_addr hw_addr}(清除ARP表中的内容)。

  其他品牌的三层交换机也有类似的命令和功能,用其他交换机来构建宽带网络时,也可以采用这种设置ARP表的办法来防止盗用IP地址,以达到限制每个IP地址的流量和根据网络流量进行计费的目的。这种方法比较适合于社区的宽带用户,但它只能防止盗用者静态地修改IP地址。

  3. PPPoE协议进行用户认证

  对于盗用者使用第二种方法同时修改IP地址和MAC地址时,可以使用PPPoE协议进行用户认证。现在有很多基于PPPoE协议的软件,在ADSL的宽带网中广泛使用。PPPoE全称是Point to Point Protocol over Ethernet(基于局域网的点对点通讯协议),这个协议是为了满足越来越多的宽带上网设备和网络之间的通讯而最新制定开发的标准,它基于两个广泛接受的标准,即以太网和PPP点对点拨号协议。对运营商来说,在现有局域网基础上不必花费巨资来做大面积改造,使得PPPoE 在宽带接入服务中比其他协议更具有优势,因此逐渐成为宽带上网的最佳选择。 PPPoE的实质是以太网和拨号网络之间的一个中继协议,它兼有以太网的快速性和PPP协议拨号的简易性以及用户验证和IP分配等优势。在ADSL宽带网的实际应用中,PPPoE利用以太网的工作原理,将ADSL Modem10BASET接口与内部以太网络互联,PPPoE接入利用在网络侧和ADSL Modem之间建立一条PVC(永久虚电路)就可以完成以太网上多用户的共同接入,实际组网方式简单易行,大大降低了网络的复杂程度。

  在客户端,其设置和拨号上网方式一样,安装虚拟拨号软件,通过虚拟拨号的方式完成。在客户机接入网络后,由PPP服务器或RADIUS服务器来进行认证,其使用的验证协议有两种:PAPCHAP

  PAP是密码身份验证协议,它使用原文(不加密)密码,是一种最简单的身份验证协议。如果网络的接入不能用更安全的验证方式,一般就使用PAP

  CHAP是质询握手身份验证协议,它是使用MD5message digest 5一种工业标准)的一种散列方案,散列方案是一种转换密码的方法,它生成的结果是唯一的且不能被改回到原始形式。CHAP在响应时使用质询-响应机制和单向 MD5 散列。用这种方法,可以向服务器证明用户知道密码,但不必实际将密码发送到网络上。通过支持 CHAP MD5,网络和拨号连接能够安全地连接到几乎所有其他的PPP服务器上。

  当用户合法身份通过RADIUS服务器验证后,由宽带接入服务器给客户机分配IP地址,避免了IP地址被盗用的情况。这种由宽带接入服务器和RADIIUS服务器配合来完成用户身份并分配IP地址的方法,还可以分配不同性质的IP地址(如公网地址或私有地址),并且符合RFC 2138RFC 2139建议,支持Radius Proxy功能,可实现用户的漫游认证。在现有的很多宽带网里,使用网络防火墙也具有同样的用户认证功能。

PPPoE协议进行用户认证的方式适合于大范围安装ADSL和局域网的宽带用户群,是可以较好地防止盗用IP地址的一种方法。 

 

原创粉丝点击