软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
IP MAC捆绑原理及缺陷的讨论

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

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

ideal(2001-06-07 22:33)

返回〗〖转发〗

路由器从外面收到发给子网的包时,直接用其事先存储的 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




相关文章

相关软件