引言
联通很是抠门, 1000Mbps的网只给了个1000Mbps并且性能十分羸弱的光猫, 跑PT只要速度高一点点, 光猫和路由器之间的延迟就开始飙升.

于是想将光猫改为路由器桥接拨号, 互联网上关于这款光猫获取超密的信息很少, 只在恩山找到一篇拆机光猫后使用ttl来获取超密的教程, 但相信大多数人没有这种设备.
之前在咸鱼花20块钱买过一次远程获取超密服务(后因跑PT限速被运维上门重置光猫超密失效), 观看其操作, 只是远程我的电脑打开了一个CLI程序, 证明超密获取不需要使用任何外部物理工具, 经过一晚上折腾(晚上睡觉前折腾网络是大忌), 得到了在不拆解光猫, 不借助任何外部物理工具的情况下获取超密的方法.
提示: 本教程可能仅针对部分省份生效.
虽然本文为SG631Z, 但对于其他部分光猫可能有效.
SG631Z使用的是sidbg, 其他光猫用的可能是sendcmd, 自行替换命令即可.
开启Telnet并固化
首先使用光猫背面记录的账号密码登录光猫后台, 记录loid和password, 以让我们重置光猫后可以重新注册.

现在联通的光猫用户名和超级密码在手动重置光猫并且未连接光纤的情况下多数情况下是
CUAdmin
CUAdmin
基于此, 我们可以在未连接光纤(准确说是运营商未云端下发配置)前将Telnet固化, 使得运营商即使远程下发了新的配置, 我们也可以获取新的超密.
首先断开光纤连接, 长按光猫后面的reset按钮大概20s, 等待所有指示灯熄灭并且重新闪烁后, 松开.
此时使用上述的用户名,密码登录. 在登录后的的界面地址栏输入 http://192.168.1.1/getpage.gch?pid=1002&nextpage=tele_sec_tserver_t.gch

即可开启telnet.
具体连接telnet的方法请使用搜索引擎, 此处我们使用putty连接.
登录用户名:
admin
密码:
chzhdpl@246
su密码:
aDm8H%MdA
此时我们便拥有了root权限. 为防止运营商远程下发配置使得我们之后无法使用telnet登录, 修改部分配置文件, 使得telnet"固化"
sidbg 1 DB p TelnetCfg
sidbg 1 DB set TelnetCfg 0 TS_Enable 1 # 允许 LAN 侧连接 Telnet
sidbg 1 DB set TelnetCfg 0 Lan_EnableAfterOlt 1 # 插上光纤后仍然启用 Telnet
sidbg 1 DB set TelnetCfg 0 Lan_Enable 1 # 开启 Telnet 服务
sidbg 1 DB set TelnetCfg 0 TS_UName root
sidbg 1 DB set TelnetCfg 0 TS_UPwd Zte521
sidbg 1 DB set TelnetCfg 0 Max_Con_Num 99
sidbg 1 DB set TelnetCfg 0 ExitTime 999999
sidbg 1 DB set TelnetCfg 0 InitSecLvl 3# 调整权限
sidbg 1 DB set TelnetCfg 0 CloseServerTime 9999999
sidbg 1 DB set TelnetCfg 0 Lan_EnableAfterOlt 1
sidbg 1 DB save
PS: 固化命令是在网上抄的, 固化确实是成功了, 但不知为何, 登录的用户名和密码却还是原来的admin, 也尝试修改了TelnetUser下的用户名和密码, 依然无效, 如果有知道的, 烦请不吝赐教.
这下就已经固化成功了, 可以插入光纤下发配置了, 填入loid和密码即可注册成功.
获取超级密码
在正确的获取到运营商配置后, 继续登录Telnet, su后输入
sidbg 1 DB decry /userconfig/cfg/db_user_cfg.xml
cat /tmp/debug-decry-cfg |grep Pass\"
即可获取到超级密码

以cuadmin开头的即超级密码, 此时就可以改桥接, 使用路由器拨号, 撇弃弱鸡性能的光猫了.
更改桥接注意:
记录好光猫拨号时的VLAN模式和VLAN ID, 桥接时的参数要保持一致
TR069删除
如果不愿意让运营商视奸自己的光猫, 下发配置等, 可以选择删去TR069, 但这会带来一个问题

ITMS会显示连接失败等信息, 导致所有的dns请求都被劫持到192.168.1.1, 在正常逻辑下是光猫将未注册设备劫持到注册页面, 但我们已经通过桥接的方式正常上网了, 这会导致我们的53端口dns全部被劫持, 表现为nslookup或者ping的结果都变为192.168.1.1
有两个解决方案
方案1(推荐)
光猫的ITMS连接状态也是写在文件中的, 所以我们只需要修改注册结果即可
同样是Telnet到光猫后输入
sidbg 1 DB set PDTCTUSERINFO 0 Status 0
sidbg 1 DB set PDTCTUSERINFO 0 Result 1
sidbg 1 DB save
sidbg 1 DB set PDTCTUSERINFO 0 tForcePushFlg 0 #如果有强推的话, 还需要关闭一下强推
reboot
即可欺骗光猫让其以为ITMS注册成功.
方案2
部分读者使用上述方案可能依然不成功, 可以选择内网搭建一个adguard home等本地dns服务器, 使用纯ip的doh/dot(如https://223.6.6.6/dns-query)来规避光猫的"dns劫持", 缺点就是部分应用如docker或pve下lxc容器等会遇到一些dns问题, 需要自行解决.
总结
通过以上操作, 光猫超密便获取完毕了, 只要不手动重置光猫, Telnet不会丢失, 但有部分机器可能会偶尔在重启后无法登录Telnet, 此时只要在使用超密登录后重新访问http://192.168.1.1/getpage.gch?pid=1002&nextpage=tele_sec_tserver_t.gch开启即可.
参考资料
此处记录研究过程中提供了帮助或参考过的一些博客,论坛等, 排名不分先后, 可能存在遗漏深表抱歉.
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8385198
https://www.right.com.cn/forum/thread-8390053-1-1.html
https://blog.nkxingxh.top/archives/310/
https://www.right.com.cn/forum/thread-8395900-1-1.html
https://global.v2ex.co/t/1160713
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8427322
https://blog.csdn.net/zhiyuan411/article/details/141201541
https://jishuzhan.net/article/1825107113882423298#%E8%AE%BE%E7%BD%AESN