破解移动定制光猫 H60G:telnet 提权、禁 TR069 与 Padavan 桥接拨号

2026年7月23日| Ruichen Zhou| 约 10 分钟阅读

家里办移动宽带送了一台吉比特 H60G 光猫,中兴方案,4 个千兆 LAN 口,体积小巧塞弱电箱正合适。送的带宽想拿来跑监控,把监控流量从主网络里分出来。但移动定制的光猫,超管密码被运营商随机化了,user 账号能做的事有限。要真正用起来,得先拿到超管。

先把教程过一遍

网上(恩山之类)有现成教程,思路是利用中兴的 sidbg 调试后门直接读写配置数据库,绕过网页层。动手前我先评估了一遍可行性,标出几个存疑点:

  • “reset 三次才生效” 的说法没把握,标准做法是长按 10 秒;
  • su 提权密码:教程说注册后超管会被随机化,但 telnet 的 su 还用默认密码,逻辑上矛盾,得实测;
  • sendcmd 1 DB set WANC 0 Enable 0 禁 TR069 可能误伤 internet 连接。

整体可行(sidbg 后门是真实的、通用的),但风险点必须实测,不能照抄。

破解过程

复现用凭据

下面的值是这台 H60G、它的注册流程和这条宽带的复现凭据,按用途区分;它们不是作者其他系统的本机密码:

用途 用户名或账号 密码或值
reset 后网页超管与 su CMCCAdmin aDm8H%MdA
LAN 侧 telnet admin chzhdpl@246
OLT 注册 Password(reset 前的局端值) LY00578788
reset 后页面 loid / 光猫标签值 i9bhz7wk
光猫路由或 Padavan 的 PPPoE <宽带账号> <已隐藏>

探测:确认中兴方案

curl 拿响应头,Server: Mini web server 1.0 ZTE corp 2005,确认中兴方案。登录页 JS 里 passInput.value = btoa(passInput.value),所以提交的密码是 base64 编码。登录成功返回 302 跳转 /start.ghtml,session 是 IP 绑定(没有 cookie),登录后同 IP 的请求直接放行。

reset:打破密码死锁

这里有个死锁:超管密码被 ITMS 随机化 → 网页登不进 → 开不了 telnet → 没法用 sidbg 改回密码。唯一出路是 reset 恢复出厂,让超管回到默认值。reset 后用默认超管(移动通用的 CMCCAdmin / aDm8H%MdA)成功登录,确认 reset 生效。

双网卡:一个隐蔽的问题

本机 WiFi 走电信宽带(用来上网),USB 网卡接光猫做管理。结果一插上网线就和远端失联了。

排查路由表发现,光猫通过 DHCP 给 USB 网卡下发了“默认网关 192.168.1.1”,而 USB 网卡在 macOS 网络服务顺序里排第 1(高于 WiFi),于是上网流量全被送到光猫,而光猫 reset 后没法上网。

修复:给 USB 网卡设静态 IP,但故意不设网关

sudo networksetup -setmanual "USB 10/100/1000 LAN" 192.168.1.250 255.255.255.0

不设网关就不会产生 default 路由,访问光猫走有线直连,上网继续走 WiFi,两者并存。这是整个过程中最不显眼、却最耽误时间的地方。

telnet + su:提权链路

web 后台开启 telnet(页面 tele_sec_tserver_t.gch,路径 getpage.gch?pid=1002&nextpage=...),使用 LAN 侧 admin / chzhdpl@246 登录。telnet 登录后是普通用户 ~ $su 提权。实测确认了教程的存疑点:su 密码就是超管密码 aDm8H%MdA(至少这台的 ITMS 没有随机化它)。拿到 root(uid=0,groups 里还带 csp)。

sidbg:教程里的 sendcmd 不存在

教程用 sendcmd 1 DB save 保存配置,但这台固件里 sh: sendcmd: not found。换成 sidbg 1 DB save 即可(sidbg 1 DB 能列出全部子命令:p / set / save / decry / addr / delr 等)。dump 了 DevAuthInfo、TelnetUser、WANC、PortBinding 几张表,账号、WAN 连接、端口绑定一目了然。

顺便一提,这版的 BusyBox grep 不支持 -E-A,要用 -e 多 pattern 或不带上下文,试了几次才习惯。

注册:到底用哪个密码

reset 前页面回显的 Password 是 LY00578788,reset 后变成另一个(光猫背后标签上的出厂值 i9bhz7wk)。直觉上应该用出厂值重新注册,结果 OLT 报“注册失败”。换回 reset 前那个值,立即注册成功。

教训:局端绑定的是下发覆盖后的值,不是出厂标签值。reset 把光猫本地的 Password 还原成出厂值,但局端不认那个。

禁 TR069:锁住控制权

sidbg 1 DB set WANC 0 Enable 0   # Row0 是 TR069 连接(VLAN 1000)
sidbg 1 DB save                   # 持久化到配置文件

禁掉 TR069 后,移动的 ITMS 平台无法再远程管理这台光猫 —— 超管密码、WAN 配置都不会被远程覆盖。注册后立刻 telnet 验证,su 仍然可用,确认 ITMS 没有反扑。

反转:光猫路由模式下 PPPoE 其实早就拨通了

禁完 TR069 准备改桥接时,dump WANC 看到 INTERNET 连接 Status=0,我以为 PPPoE 没拨上,还排查了一通 pppd 进程。结果 ifconfig ppp0 一看:

ppp0  inet addr:100.92.49.60  P-t-P:100.92.0.1
     UP POINTOPOINT RUNNING
     RX bytes:114370221

接口早就 UP,拿到的 IP(100.92.x.x,移动 CGNAT 段)也在,收发了一百多 MB 流量 —— 早就拨通了。WANC 表里那个 Status 字段会骗人,得看实际接口状态才准。这是切换桥接前、由光猫自身运行 PPPoE 时的状态,不是后文 Padavan 接管后的状态。

几个结论

桥接已完成:Padavan 接管 PPPoE

2026-07-24 最终还是改成了桥接。光猫路由模式能上网这一点没有错,但本次目标就是让 Padavan 接管 PPPoE,所以不能停在“光猫自身已经拨通”的结论。

一开始直接用 sidbg 改 WANC,虽然表面上保存成功,但遗漏了固件内部关联对象,Padavan 持续报 Timeout waiting for PADO packets。最终改用光猫网页删除异常的 INTERNET 条目后新建桥接,由固件完成关联配置:

  • IPv4/v6、桥模式、IP_BRIDGED、业务模式 INTERNET
  • VLAN 模式为“改写(tag)”,VLAN ID 200,802.1p 优先级 6,DHCP 服务关闭;
  • 端口只绑定 LAN1;H60G LAN1 接 Padavan WAN,LAN2 留作光猫管理口;
  • VLAN 200 由光猫桥接条目改写;Padavan WAN 使用普通 PPPoE,不再额外启用 VLAN 200 标记

验收不能再看光猫网页或普通 HTTP 响应,而要看 Padavan 的 PPPoE 日志。本次日志依次出现 PPP session、CHAP authentication succeededUsing interface ppp0WAN up (ppp0)PPPoE: Connected;Padavan 的 ppp0 获得 100.92.31.103。这证明 PPPoE 发现、认证和地址获取都由 Padavan 完成。

CGNAT:没有公网 IP

无论切换前由光猫拨号,还是现在由 Padavan 拨号,ppp0 拿到的都是 100.92.x.x,属于移动的 CGNAT 内网地址。想从外网远程访问监控(手机不在家时),没有公网 IP 会很麻烦,得靠监控自带的云存储 / P2P,或打 10086 申请公网 IP。

教训汇总

  • 先评估教程可行性,标出存疑点实测,别照抄;
  • su 密码 = 超管密码(本机验证,注册后未被覆盖);
  • sendcmd 可能不存在,sidbg 1 DB save 是等价替代;
  • 注册密码以局端绑定的为准,不是光猫出厂标签值;
  • 光猫路由模式下,WANC 的 Status 字段不可靠,看实际接口状态(ifconfig ppp0);桥接后则看 Padavan 的 PPPoE 日志,先有 PADO、再有 CHAP 和 WAN up 才算成功;
  • 不要手工拼 WANC 关联表,优先用光猫网页删除并重建桥接连接;
  • 双网卡共存:静态 IP + 不设网关。

上述 H60G、注册凭据按复现要求明文保留,便于复现;它们是本文设备和线路的公共复现信息,不代表作者其他系统的本机密码。PPPoE 账号/密码涉及个人宽带身份,已隐藏。

评论