Chinaunix首页 | 论坛 | 博客
  • 博客访问: 204571
  • 博文数量: 28
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 315
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-03 11:16
文章分类

全部博文(28)

文章存档

2008年(28)

我的朋友
最近访客

分类: WINDOWS

2008-07-08 15:08:36

共享上网通常使用代理或路由的方式,现在宽带路由器很便宜,大家都是用的路由器共享上网,路由器作NAT、NAPT方式的IP地址转换,把多个内网地址转换成一个公网IP地址。
  路由器或者代理只是对IP地址作了转换,从外部来看是看不出来与普通的IP包有什么不同的,那么是如何检测到的呢,我们需要看看在IP报头里就有那些细节会有共享的信息。让我们复习一下IP报文的结构:

版本:IP协议的版本,当前是4。
首部长度:报头首部的长度,4字节的整倍数。
服务类型(TOS):用来表示优先级。
总长度:整个报文首部和数据的长度。
标识(identification):数据报的标识,用来标识出数据长度超过MTU分片时,进行重新组装数据的位置标识。这部分可以用来分析共享上网的特征。
标志:有MF和DF分别标志分片结束和不能分片。
片偏移: 长报文分片后,在原报文中的位置。
生存时间(TTL):数据报在网络中的寿命。
协议: 携带数据使用的协议。
首部校验和:报文首部的校验信息。
源地址:4字节源IP地址。
目的地址:4字节目的地址。
从IP报头的组成来看,最有可能携带内网信息的就是“标识(IPID)”,在每一台内网机器作地址转换时,IPID的序号有规律单调增加是不变的,
12:19:41.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 4292552168 win 64240 (DF) (ttl 127, id 40255, len 40)
12:20:23.000000 10.10.49.204.62017 > 10.199.201.37.http: . [tcp sum ok] ack 1 win 64240 (DF) (ttl 127, id 40756, len 40)
12:21:37.000000 10.10.49.204.62216 > 10.54.226.252.http: S [tcp sum ok] 1820371619:1820371619(0) win 16384 (DF) (ttl 127, id 57601, len 48)
12:21:40.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 4293696808 win 64240 (DF) (ttl 127, id 41427, len 40)
12:22:06.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 4293946004 win 64240 (DF) (ttl 127, id 41671, len 40)
12:23:10.000000 10.10.49.204.62017 > 10.199.201.37.http: . [tcp sum ok] ack 1633741 win 64240 (DF) (ttl 127, id 42293, len 40)
12:24:00.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 4294795172 win 64240 (DF) (ttl 127, id 42632, len 40)
12:24:24.000000 10.10.49.204.61993 > 10.199.201.37.http: SFRPW [bad tcp cksum 1748!] 2115643160:2115643180(20) ack 972685314 win 46144 urg 3585 (DF) (ttl 125, id 42893, len 40)
12:25:05.000000 10.10.49.204.62259 > 10.200.222.45.http: P [bad tcp cksum 6be7!] ack 1 win 19652 (DF) (ttl 127, id 1673, len 40)
12:25:53.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 940080 win 64240 (DF) (ttl 127, id 43799, len 40)
12:25:56.000000 10.10.49.204.61993 > 10.199.201.37.http: . [bad tcp cksum 579d!] ack 1019539 win 17520 (DF) (ttl 125, id 43846, len 40)
12:25:56.000000 10.10.49.204.62017 > 10.199.201.37.http: E [bad tcp cksum 8380!] 2120652494:2120652506(12) win 11414 urg 5633 (DF) (ttl 125, id 43859, len 40)
12:26:05.000000 10.10.49.204.62259 > 10.200.222.45.http: R [tcp sum ok] 3206002624:3206002624(0) win 0 (DF) (ttl 127, id 1731, len 40)
有彩色标记出来的IPID序列号的变化很有规律,一定范围内变化的报文就是由一台机器发出的,因此可以判断有三台机器共享上网。
至于网上提到其它的检测方式,如网络尖兵的SNMP方式、TTL方式、操作系统版本的方式都有很大的误差,而且和用户的电脑配置有很大关系,只有这种检测IPID的方法很准确,破解方法,根据原理分析,只要打乱IPID的发包规律,或者顺序或者分散IPID就能使电信的检测系统失效。监测系统失效后的方法删除,详细原理请参见文档:
另外一种检测方法,利用TCP的报文首部中的可选项,资料上称为时间戳(timestamp),在接收方,用于简单的回应发送方的时间数据,发送方据此来调整发送窗口的大小。不同电脑的时间通常都会不同步,检测系统根据这个选项来判断共享的电脑数量。这种方式破解很简单,把所有电脑的时间尽可能设置一样,或者干脆所有的电脑启用windows XP的时间同步。方法双击时间显示,选Internet时间,启用时间同步即可。
阅读(1471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~