开贴说说如何免费使用基于 DOCSIS 协议的宽带

2017-01-22 16:37:18 +08:00
 JackyBao

以前那种接有线电视线,然后给你一个 cable modem ,路由器设成 DHCP 就能上网的宽带,不知是否还有人记得?一般这种宽带都是当地的有线电视运营商来运营的,比如上海的东方有线。

现在这种上网方式在上海已经基本绝迹, NGB 改造后,都变成 PPPOE 了,其他城市不是很清楚,欢迎大家补充。

下面就和大家说说这种老式的基于 DOCSIS 协议的宽带认证过程存在的一个很愚蠢的 bug ,让用户可以不付费就能使用。

以下提到的内容技术上可能并不十分准确,因为 LZ 既没有在相关运营商内工作过,也没有正统的学习过相关知识。一切全靠个人理解,以及 google 。各位感兴趣的,想进一步了解的,欢迎自己 google 。

先抛砖引玉一下,什么是 DOCSIS 。想了解的点我: https://en.wikipedia.org/wiki/DOCSIS

以下所有内容都是 LZ 十几年前研究的,比如 DOCSIS 协议, LZ 只研究到 2.0 ,后面的版本据说修复了这个漏洞,不过后面的事情 LZ 就不知道。

先去撒泡尿,回来慢慢写。各位若要喷,请轻喷。

10427 次点击
所在节点    宽带症候群
73 条回复
skylancer
2017-01-23 08:46:05 +08:00
深圳早早已经是 3.0 了
skylancer
2017-01-23 09:00:33 +08:00
之前有人完全不说如何改说的自己很牛逼一样,后来查了半天资料硬啃半天文档才知道细节,然而天威还有各种坑可以挖
JackyBao
2017-01-23 09:05:46 +08:00
@sudo1453 @liyvhg @aprilRao @ovear

感谢各位业内人士的关注,看来你们才是大神。不过,故事我还是会继续写。写的不对的地方,欢迎指出。

好了,昨天说到蹭网 1.0 版和 1.1 版。大家可能觉得挺无聊的,也没有什么技术含量。这点 LZ 也同意,但是这 2 种方法的优点也非常明显,就是准入门槛低。随便买根 jtag 线,找台电脑就能开面免费蹭网之路。

今天继续开讲 2.0 版, 2.0 版的内容技术行量会高很多。开讲 2.0 版前首先要感谢 google 和 taobao ,万能的 google 什么都找得到,万能的 taobao 什么都买得到。

之所以称其为 2.0 版,因为从 2.0 版开始,蹭网不再需要复制 cable modem ,不再需要修改 mac ,只需要在认证阶段修改配置文件。继续回到那个年代,那时国外最流行的 cable modem 当属摩托罗拉的 sb510X 系列,然而流到国内的洋垃圾还有 sb3100 和 sb4100 这种更早一代的 cable modem 。为什么要提到国外呢?因为官方固件是不能载入自定义的配置文件的,你需要一个开发者固件或者第三方固件,这种固件国内途径基本上是搞不到的。

sb3100 ,这个应该算元老级的 cable modem 了,现在看来配置真是非常不堪。比如网口只有 10M 。但是可能就是因为年代久远,以及停产的缘故,网上竟然可以下载到可以自定义配置文件服务器和文件名的官方固件,也就是说这种固件在认证阶段会 override 局端在 DHCP 请求中返回的这两个重要信息!
于是一切就变得非常简单了,直接 snmp 一下正常用户的配置文件名,让 cable modem 直接从 ISP 的 tftp 服务器加在这个配置文件就能免费蹭网了。文件名也很容易辨识,比如某 ISP 有这些配置文件提供下载。
residential_2048_512_2_v1.0.cfg
residential_2048_512_2_v1.1.cfg
residential_2048_512_2_v2.0.cfg
2048 就是下行 2M , 512 就是上行 512K , 1.0/1.1/2.0 就是对应你的 cable modem 的 docsis 版本。
还有 unregister_128_64_1.cfg ,就是所有无效 MAC 地址拿到的配置文件,加载这个文件是无法上网的。
然后扫配置文件的时候 LZ 还发现了一个 test.cfg 文件,这个文件打开后可以发现下行有 4M ,上行多少不记得了,加载后也能正常上网。估计是运维测试用的吧?因为当时此 ISP 并没有提供 4M 的套餐。

不要以为故事就这么结束了,后面的内容更精彩。因为 sb3100 这种老掉牙的 cable modem ,以及流出版固件提供的这些功能,只是提供了一个很基础的设置。

有活要干了,后面的争取下午再写一些。还是那句想听故事的欢迎收藏。
aprilRao
2017-01-23 09:07:42 +08:00
@skylancer 哈哈,深圳都是天威的市场,而天威又是国内 DOCSIS 推广的主干力量,他们用的技术和设备的客制化都是比较接近欧美水平的。不过,国内和海外比客制化的东西又很多,海外的 CM 基本上来说都是按照规范来的。
JackyBao
2017-01-23 10:25:06 +08:00
忙好了,现在继续写。

刚在说道那时最流行的 cable modem 其实还是 moto 的 sb510X 系列,于是也就不奇怪了,国外自然有牛人开发了个中第三方固件。功能上对自定义配置文件做了进一步强化,其实 LZ 觉得 DOCSIS 这种完全依赖用户端配置文件的认证方式,如之前 @liyvhg 所说的,真的 Too young, too simple, sometimes naive~

LZ 记得当时 sb510X 的第三方固件大概分 3 个流派。

TCNiSO's SIGMA-X2
这个应该是最早的第三方 CM 固件, sb3100,sb4100,sb5100 的固件这个团队都做过,但是这个固件后来开始走收费路线了。

SB5100 MoD v1.0.4 Beta
这个固件是在上面的固件收费后不久推出了,感觉作者应该是不满上面固件的收费行为,所以自己开发了一套新的固件。但是这个固件还是需要使用 TCNiSO 的 bootloader 进行引导。

Haxorware 1.1 rev39
这个固件应该是稍微晚一些时间才被发布出来的,号称 DOCSIS 2.0 bpi 证书等特性都能完美支持。

简单的讲,以上固件除了可以 override 局端发回的配置文件信息,还可以把一个配置文件上传到 cm 的 falsh 里,每次正常认证的时候,到了 tftp 配置文件那步,忽略收到的配置文件,直接从 flash 内部加载。以及修改各种 cm 里的 snmp 信息,以欺骗局端检查,可以把自己完美的模拟成任何厂商的 cm 。并且在认证完成以后可以勾选自动释放 cm 自己的 ip 地址,这样 ISP 完全就查不到你这个 cm 在线。

所以 LZ 其实当年一直有一个疑问,这种认证完自动释放 cm 的 ip 的做法,真的足够安全,和具有足够的隐藏性吗?
不知道几位大神怎么看? @sudo1453 @liyvhg @aprilRao @ovear
JackyBao
2017-01-23 10:38:53 +08:00
LZ 手上现在已经没有这些 cm 了,所以网上找了一张 SB5100 MoD v1.0.4 Beta 的截图,这个页面就是 LZ 上面提到如何加载自定义的配置文件。

http://i47.tinypic.com/2z727aq.jpg
skylancer
2017-01-23 12:32:13 +08:00
@JackyBao 我去这还是 Vista 啊.. 好怀念
Jasmine2016
2017-01-23 13:46:13 +08:00
@skylancer 我怎么感觉那是 XP 改的主题... Firefox 的字体都是 Tahoma 的。
skylancer
2017-01-23 14:19:28 +08:00
@Jasmine2016 我没记错的话 FF 好像那时默认就 Tahoma ,并没有跟系统字体设置
Jasmine2016
2017-01-23 16:10:13 +08:00
@skylancer 如果我没猜错的话,这个是字体是 XP 主题限制的,那个主题我以前用过,好像叫「 Vista Black 」。
JackyBao
2017-01-23 16:16:54 +08:00
@skylancer
@Jasmine2016

2 位,不要跑题可以吗?
sobigfish
2017-01-23 16:37:48 +08:00
我还以为是设备内置了授权文件呢,就算你非授权连上了,但它这个有线电视的线路会不会有连接服务器的白名单,只有特定视频网站能访问
skylancer
2017-01-23 17:41:04 +08:00
@JackyBao 抱歉抱歉 哈哈
snsd
2017-01-23 23:52:56 +08:00
@JackyBao
@liyvhg

广电不是用的 QAM 调制吗?
JackyBao
2017-01-24 10:18:56 +08:00
@snsd QAM 是物理层的概念, DOCSIS 我也不清楚是哪一层,可能是上面某层的协议吧。
julyclyde
2017-01-24 12:37:02 +08:00
@JackyBao 这协议看着跟普天润汇以前给河南 adsl 用的那套。后来也是改成 pppoe 拉倒
aprilRao
2017-01-24 13:43:18 +08:00
哈哈哈,过年比较忙,才看见。
@JackyBao 原来你说的所谓的忽略下发的配置是通过第三方固件来实现的,这也是要看主芯片的方案。如果说是博通 3.0 系列的芯片,存在 PID 这个参数,用来防止刷第三方固件,只有 bootloader 中的 PID 和 image 中的应用程序的 PID 匹配时才能升级。当然了,如果用 jtag 整个烧写 flash 那 PID 这个参数也就没有意义了。
你说的 CM 在完成上线认证过程后自动释放 IP 这个动作是否存在问题,我只知道这样 CMTS 上确实是无法查看到这台设备的 mac 地址,但是此时数据的双向是否正常还有待考虑,也许你说到的第三方固件中有对这个问题进行处理。
并且,我理解的你说的从 flash 中加载配置文件参数这个动作更可能是在代码中直接更改了相关配置的默认值而已。也有可能第三方固件的开发者规划了 nonvol 中的一段内容用来存取所谓的自定义的配置文件,但是这样的工作量会稍微大一些。
JackyBao
2017-01-24 14:02:15 +08:00
@aprilRao 哈哈,我是等过年的节奏了。

我上面提到的几款固件都是自带 bootloader 的,而且如你所说都是用 jtag 直接写的,所以也没遇到过你说的问题。

认证后 CM 释放 IP ,这个我试过,完全没问题。我理解的是因为认证完成后, CM 就是个透明网桥,类似交换机,所以它有没有 IP ,应该不影响用户上网。

这几款第三方固件确实可以把一个配置文件存到 nonvol 里,然后在认证阶段调用。并不是只是修改几个默认值。建议你试试最后那款 Haxorware ,据说对 bpi 证书支持也很好,我现在没条件试了。他的官网在这里: http://www.haxorware.com/
sudo1453
2017-01-24 19:28:21 +08:00
请各位业内人士见谅,本人只是苦逼的高三狗一枚,一年前粗略玩了下这边的垃圾广电运营商,得出了一些比较 low 的分析,没有见过其它地方的,说的可能太片面了,实在是不好意思。
我这边的运营商 CMTS 和猫都在同一个段里,运营商有个 SNMP 数据汇总平台,每 5 分钟都去获取 CMTS 和 CM 的信息,运营商都懒得分 community 和对应权限了,整个 RF 段都允许 public 访问,所以获取这些信息十分轻松

对于运营商在 DHCP 上的限制问题,目前大多数 CM 都是 linux 系统的,可以交叉编译一个 tcpdump 去抓猫的 dhcp 包,或者在猫上线之前就用 brctl 把用户段和运营商的 RF 段桥接起来再用 wireshark ,…… 不管怎样,最后肯定可以模拟出一个一模一样的、有“入网许可”( RF 网段)的 DHCP 包出来吧

对于防止蹭网的问题,我这边的运营商在配置文件上把 MAX CPE 设置为 1 ,上下行速率限制为 10000 bps ,还有个什么 access 之类的设置成 0 ;运营商网络那边,以前是 DNAT 所有请求到一个要求续费的页面,现在是直接不响应用户的 DHCP 请求

我目前还有几个疑问,想请教各路大神一下:
0 、 CM 认证完成后把用户侧和运营商一侧桥接起来,这个时候我的网关是 CMTS ,但可以只用 1 跳到达 192.168.100.1 ( CM 的 lan 侧 ip ),这个是怎么做到的?
1 、两只 mac 和序列号都相同的、在同一 CMTS 下的 CM 是如何检测 ip 冲突的?
2 、 CM 能否 Online 由什么决定?是不是 RF 段里没办法联系上 DHCP/TFTP 服务器就一直不能 online 呢?
3 、目前光纤普及得很快,像电视线这种铜缆和 DOCSIS 这类协议在面对入户千兆网络的时候会不会因速度 /延时 /汇聚噪声等问题而被逐渐淘汰?

PS1 :用德仪 /Intel puma 方案( TNETC48x0/ DNCE25x0 )的 DOCSIS 3.0 CM 有 forceware 可刷,选项还算比较丰富

![]( http://p1.bqimg.com/567571/cdd0e4168c6434a1.png)

PS2 : Wikipedia 上面搜了下, DOCSIS 算是物理层+数据链路层的, QAM 好像只是 DOCSIS 物理层中的一种编码方式

![]( http://p1.bpimg.com/567571/3d239885ade6b6a4.png)
jedihy
2017-01-26 03:50:26 +08:00
为什么广电的 cable 是有上行链路的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/336250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX