一次UDP收不到包的问题排查
可能是“网络尖兵”在作怪!
怎样破解“网络尖兵”?仔细看下面的文字,或许会有用。
ADSL共享上网有两种方式,一种是代理,一种是地址翻译(NAT),大家常说的路由方式其实就是NAT方式,其实路由和NAT的原理还是有区别的,这里不作讨论,现在的ADSL猫一般都有NAT的功能,用它本身的功能实现共享上网是比经济方便,本文主要讨论这种方式。
要想阻断一台以上的计算机上网必须能发现共享后边的机器是否多于一台,NAT的工作原理如图一所示,经过NAT转换后访问外网的内网的计算机的地址都变成了19216801而且MAC地址也转换成了ADSL的MAC地址,也就是说,从原理上讲,直接在ADSL出口抓经过NAT转换的包是不能发现到底有几台机器在上网。那是如何发现的呢?经过研究发现它是采用多种方法探测用户是否用共享方式上网,从而进行限制,下面分别进行破解:
图一、NAT的工作原理
一检查同一IP地址的数据包中是否有不同的MAC地址,如果是则判定用户共享上网。破解的办法是把每台机的MAC地址改为一样修改的方法如下:
首先要获取本机的MAC: MAC地址是固化在网卡上串行EEPROM中的物理地址,通常有48位长。以太网交换机根据某条信息包头中的MAC源地址和MAC目的地址实现包的交换和传递。
⑴在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。
⑵在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。
或者右键本地连接图标、选择状态然后点击支持选项卡,这里“详细信息”中包含有MAC和其它重要网络参数。
1
如果你的网卡驱动有直接提供克隆MAC地址功能,如RealTek公司出的RTL8139芯片,那恭喜你了,点击“开始→设置→控制面板”,双击“网络和拨号连接”,右键点击需要修改MAC地址的网卡图标,并选择“属性”。在“常规”选项卡中,点击“配置”按钮,点击“高级”选项卡。在“属性”区,你应该可以看到一个称作
“Network Address”或“Locally Administered
Address”的项目,点击它,在右侧“值”的下方,输入你要指定的MAC地址值。要连续输入12个数字或字母,不要在其间输入“-”。重新启动一次系统后设置就会生效了(Windows
98和Windows 2000/XP用户操作略有区别,请参照系统说明操作)
2如果你的网卡驱动没有提供克隆MAC地址功能,那下面分别提供一些方法,希望能找到一个适合你的
WIN98下:
a在"网上邻居"图标上点右键,选择"属性",出来一个"网络"对话框,在"配置"框中,双击你要修改的网卡,出来一个网卡属性对话框。在"高级"选项中,也是点击"属性"标识下的"Network
Address"项,在右边的两个单选项中选择上面一个,再在框中输入你要修改的网卡MAC地址,点"确定"后,系统会提示你重新启动。重新启动后,你的网卡地址就告修改成功!!
b点击“开始→运行”,键入“winipcfg”,选择你要修改的网卡,并记录MAC地址值。点击“开始→运行”,输入“regedit”运行注册表编辑器(在修改注册表前,一定要先备份注册表),依据注册表树状结构,依次找到“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net”,你会看到类似“0000”、“0001”、“0002”等样子的子键。从“0000”子键开始点击,依次查找子键下的“DriverDesc”
键的内容,直到找到与我们查找的目标完全相同的网卡注册表信息为止。
当找到正确的网卡后,点击下拉式菜单“编辑→新建→字符串”,串的名称为“networkaddress”,在新建的“networkaddress”串名称上双击鼠标,就可以输入数值了。输入你指定的新的MAC地址值。新的MAC地址应该是一个12位的数字或字母,其间没有“-”,类似“00C095ECB761”的样子。
有两种方法激活新的MAC地址:
如果你使用的是普通内置网卡,就必须重新启动计算机来使修改生效。
如果你使用的是PCMCIA卡,你可以按照下面的步骤操作而不必重新启动操作系统:运行winipcfg,选择并释放DHCP设置,关闭winipcfg。打开控制面板或系统托盘“PC
Card
(PCMCIA)”,停止并弹出PCMCIA网卡。重新插入PCMCIA网卡,打开winipcfg,选择并刷新DHCP设置,运行winipcfg,确定修改的MAC地址已生效
WIN2000下:。
a在桌面上网上邻居图标上点右键,选"属性",在出来的"网络和拨号连接"窗口中一般有两个图标,一个是"新建连接"图标,一个是"我的连接"图标。如果你的机器上有两个网卡的话,那就有三个图标了。如果你只有一个网卡,那就在"我的连接"图标上点右键,选"属性",会出来一个"我的连接
属性"的窗口。在图口上部有一个"连接时使用:"的标识,下面就是你机器上的网卡型号了。在下面有一个"配置"按钮,点击该按钮后就进入了网卡的属性对话框了,这个对话框中有五个属性页,点击第二项"高级"页,在"属性"标识下有两项:一个是"Link
Speed/Duplex Mode",这是设置网卡工作速率的,我们需要改的是下面一个"Network
Address",点击该项,在对话框右边的"值"标识下有两个单选项,默认得是"不存在"
,我们只要选中上面一个单选项,然后在右边的框中输入你想改的网卡MAC地址,点"确定",等待一会儿,网卡地址就改好了,你甚至不用停用网卡!
你也可以在"设置管理器"中,打开网卡的属性页来修改,效果一样。
b1在“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的随时更改。
WinXP下
大部分的网卡都可以通过在控制面板中修改网卡属性来更改其MAC地址。在“设备管理器中”,右键点击需要修改MAC地址的网卡图标,并选择“属性/高级”选项卡。在“属性”区,就可以看到一个称作“Network
Address”或其他相类似名字的的项目,点击它,在右侧“值”的下方,输入要指定的MAC地址值。要连续输入12个十六进制数字或字母,不要在其间输入“-”。
另外有几个可以修改MAC的软件都可以在XP/W2K下运行,大家可以去网上搜下,所以这里就不详细介绍了
linux下:
需要用 #ifconfig eth0 down 先把网卡禁用 ,再用ifconfig eth0 hw ether
1234567890ab ,这样就可以改成功了
要想永久改,就在/etc/rcd/rclocal里加上这三句(也可在/etc/initd/network里加下面三行)
ifconfig eth0 down
ifconfig eth0 hw ether 1234567890ab
ifconfig eth0 up
如果你想把网卡的MAC地址恢复原样,只要再次把"Network
Address"项右边的单选项选择为下面一个"没有显示"再重新启动即可。在WIN2000下面是选择"不存在",当然也不用重新启动了。
二、通过SNMP(简单网络管理协议)来发现多机共享上网。有些路由器和ADSL猫内置SNMP服务,通过扫描软件(ipscan、superscan)扫描一下,发现开着161端口,161是SNMP(简单网络管理协议)的服务端口,难道是通过SNMP协议发现的主机数量,用xscan对猫进行了漏洞扫描,果然有默认密码,登陆到猫的管理界面但是找不到关闭SNMP服务的地方,看来是留的后门,由此基本可断定是通过SNMP协议发现的主机数。为了进一步证实,用SNMP的一个管理软件ActiveSNMP查看ADSL猫的连接情况,如图二所示,可以清楚地看出通过SNMP协议可以发现同时上网的主机数量。
解决办法:
1如果该猫可以关闭SNMP协议,那就把SNMP用的161端口禁止就行了使用路由器或打开ADSL猫的路由模式共享上网的朋友可以进入管理界面有关闭SNMP选项的关掉它。如果猫的管理界面无关闭SNMP选项的只好买一个没有SNMP服务的路由器,例如TP-LINK
TL-R400,放到adsl
moden和hub中间,如下图在该路由器中再做一个NAT服务,这样进到ADSL猫中的就是一个地址,这样就解决了共享上网。
注意在路由器中要关闭SNMP协议。
2修改配置文件,可以将配置转换成一个文件,用二进制编辑工具修改默认密码,然后再加载到猫中,这只是一种思路,没有试过
三、监测并发的端口数,并发端口多于设定数判定为共享。
这是一个令人哭笑不得的设定,“网络尖兵”不停扫描用户打开的端口数,多于设定值的就判断是共享,有时连按几次F5键它是认为是共享,连单用户上网也受到了影响,这个就没法破解了(除非你把网络尖兵黑了),俺这里的解决办法是装成无辜的用户到ISP的客服电话大骂,并声明搞不好就换ISP,一会儿网络就正常了
四、“网络尖兵”还使用了未知的方法从共享的计算机中探测到共享的信息,目前解决的办法是所有共享的客户机均要安装防火墙,把安全的级别设为最高,因条件有限,只试用了几种防火墙,发觉金山网镖V(http://wwwgz-petcom/Soft_ShowaspSoftID=10)有用,把IP配置规则里面所有的允许别人访问本机规则统统不要,允许PING本机不要,防止ICMP,IGMP攻击也要勾选。如果是WINXP,要打开网卡的网络防火墙。
采取以上破解的办法后,在自己的局域网不能看到本机,而且WINXP打开网卡的网络防火墙后,在QQ不能传送文件,网速有所减慢,但总算又可以共享了,如果有好的办法,也请大家告知。
总的来说,“网络尖兵”还是一个不成熟的产品,主要是他对单用户上网也产生影响,浏览网页经常要刷新几次,有的网页比较复杂,要调用几个服务器文件时它也当你是共享,造成网页部分不能显示。并且由于“网络尖兵”不停扫描用户端口占用带宽,导致网速变慢
0条评论