荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: hellsolaris (qq), 信区: Security
标  题: IP MAC捆绑原理及缺陷的讨论
发信站: 荔园晨风BBS站 (Thu Oct 30 09:35:05 2003), 站内信件

路由器从外面收到发给子网的包时,直接用其事先存储的 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
是EEPROM或ROM),在网卡组帧时需要将该网卡地址写入帧中,那么网卡在写入
帧中时是否是将MAC地址直接从ROM中写入帧的呢?答案是否定的。
实际上在网卡中有一地址寄存器,该处也记着MAC地址,网卡组帧时所用的MAC
地址即从此处读出,然后由硬件写入帧中,而地址寄存器的内容则是程序在网卡
初始化时从ROM中读出写入的,用图表示如下:
                  ———————          ———————           ——
——
                 |  ROM        |          |地址寄存器  |          | 帧
  |
                 ---------------          --------------
-------
                     |                         |  |                 |
                     |-----程序----------------|  |————硬件------
由此过程可以看出,程序部分是唯一一部分可以用来修改MAC的部分,即我们可以
截取
网卡驱动程序中该部分代码,进行修改以修改MAC。


如果HUB换用Switch, 某些Switch可以锁定端口和MAC, 某个端口只允许指定
MAC接入, 再加上IP-MAC绑定, 还要加上将Switch锁起来, 情况回好些. 这时
别人要盗用IP除了要改IP,改MAC,还要将机器搬过来换网线:).

  有这个问题, 好象TCP/IP启动时会先发ARP广播一下自己的IP和MAC(?) 不知到
95/NT是否会检测到这个. 我的试验是在两台Linux上做的(许多实验室都用Linux跑
router)至少ifconfig后两台机器都没有给出信息(在前台, 没看log). 这里的关键在于
那合法IP的MAC地址是在router处定好的(static), router不会发ARP查询 MAC, 因此至
少从router外来的包ARP不会乱(也就是一直用合法IP机的MAC), 而盗用IP的目的当
然不会是在subnet内转悠 :-) 相当于盗用IP机进入promisc模式, 从合法IP机的包中取
出属于自己的IP包(port不对的丢弃). 经实验, ping, traceroute等ICMP双方(合法非
法IP机)都可以用, UDP也可以(DNS实验). 但TCP不行(telnet, ftp等), 我看看source到
底是怎么回事, 现在是合法IP机TCP可用, 盗用者不可用...

  要是TCP也可以了, 那盗用IP岂非很简单, 根本不用改什么MAC,
ifconfig/route
  两条命令就搞定了...

----------摘自清华BBS

--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.44.223]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店