光猫 SK-D840N 获取管理员密码和登录Telnet简记
文章目录
- 光猫特点
- 获取管理员密码
- 开启Telnet
- 提权的失效和解决办法
- 对用户配置的修改在设置为运营商Version后都会失效
- 解决 `Error 1010 before [Ln = 312, Col = 36] on file 'login_t.gch'.` 错误,和正确的添加用户方法
- 启用“家庭存储”等管理权限设置的解决方案
- 保留开启Telnet端口(包括改桥接配置等其他情况)的解决方案
- 完美解决的思路
光猫特点
光猫信息如下:
项目 | 内容 |
---|---|
运营商 | 中国移动 |
设备型号 | SK-D840N |
硬件版本号 | V2.0 |
软件版本号 | V2.0.0 |
编译时间 | 2024-06-20 16:16:11 |
该光猫系统是比较“新的”,经过分析其源码文件(参见 光猫的嵌入式Linux系统(中兴zxic):Web服务框架深度解析),其有以下不同于以往光猫的显著特点(应该都是防止被获取管理员权限、开启Telnet的升级改进措施):
- 按照 光猫超级管理员账号密码和Telnet登陆 所记录的方法,按住复位键在光猫重启后松开,发现管理员并未恢复默认密码。需要继续按着不要松,大约1分钟才会真的恢复。
- 管理员权限不再依赖于
DevAuthInfo
表的Level
字段,而是仅仅根据用户名确定,具体而言:管理员是IGD.AU1
的用户名,用户则写死是user
。(原提权方法记录于 光猫超级管理员账号密码和Telnet登陆、光猫的 Telnet 命令(sidbg或sendcmd)和常用管理操作 失效) - 如果只是对普通用户使用Level字段进行提权,访问管理后台会报
Error 1010 before [Ln = 312, Col = 36] on file 'login_t.gch'.
错误。解决方法见下面详述。 - 其他常规的升级改进措施,如一些开启Telnet端口之类的页面,都被封死了。
获取管理员密码
按住复位键 1分钟,在光猫重启后也不要松开。尝试使用默认管理员密码登录(参见 光猫超级管理员账号密码和Telnet登陆),要是无法登录,再次尝试该方法,延长按复位键的时间。
最好断开光纤进行操作,以防过程中管理员密码被自动下方配置覆盖。
开启Telnet
- 在获取管理员密码之后,使用管理员密码登录光猫管理后台。
- 访问 http://192.168.1.1/hidden_version_switch.html,如果没能正确打开,尝试重新登录管理员账号。
- 在页面下方显示的
SKYRegionCode[ID: 1003] is set to xxxx
,就是你当前的运营商区域码,十六进制字符串形式(小端序)。 - 在页面上方
Version Type
下拉框中选择Default Version
,点击Submit
按钮后,光猫会自动重启。 - 等待重启完成,就可以使用账号:
root
,密码:Pon521
来登录光猫Telnet(telnet 192.168.1.1
)。
提权的失效和解决办法
对用户配置的修改在设置为运营商Version后都会失效
想要重新注册成功,需要先将 Default Version
恢复为运营商Version,以下2种方法都可用:
- 管理员登录后,在 http://192.168.1.1/hidden_version_switch.html 设置,提交后光猫会自动重启。
- 使用
sismac 1 1003 xxx
设置,其中xxx就是之前看到的运营商区域码,要使用“十六进制字符串”对应的数字来设置。设置后手动重启光猫后生效。
注意:无论是对用户配置进行任何修改,比如修改/新增管理员、普通用户等,在启用运营商Version后都会失效。
解决 Error 1010 before [Ln = 312, Col = 36] on file 'login_t.gch'.
错误,和正确的添加用户方法
如果按照以往方法通过修改user用户的 Level = 1
的方法对普通用户进行提权,则会在访问光猫管理后台时直接页面报错:Error 1010 before [Ln = 312, Col = 36] on file 'login_t.gch'.
。
原因:因为该版本光猫系统在光猫的后台管理页面的登录页面会默认列出普通用户的作为登录名,而其获取普通用户时根据Level
来判断,如果列表为空,则会造成处理异常。
解决办法:页面报错不影响光猫zxic系统正常运行,直接Telnet登录后修改回来即可:
# 恢复user的普通用户身份
sidbg 1 DB set DevAuthInfo 1 Level 2
添加管理员用户的正确方法(只能有1个管理员账号,其实没必要折腾):
# 将原管理员的ID命名为第三者
sidbg 1 DB set DevAuthInfo 0 ViewName IGD.AU3
# 增加1个管理员权限的用户
sidbg 1 DB addr DevAuthInfo
# 为该用户设定各种值,并占用原管理员ID
sidbg 1 DB set DevAuthInfo 2 ViewName IGD.AU1
sidbg 1 DB set DevAuthInfo 2 Enable 1
sidbg 1 DB set DevAuthInfo 2 AppID 1
# 此处设置你想要的用户名、密码
sidbg 1 DB set DevAuthInfo 2 User useradmin
sidbg 1 DB set DevAuthInfo 2 Pass 123456
sidbg 1 DB set DevAuthInfo 2 Level 1sidbg 1 DB save
此外,普通用户也只能有1个,锁死了是 user
用户。再添加其他账号(非IGD.AU1
账号),在权限上都是按照第三类账号“其他账号”来处理的,基本上等同于普通账户。
启用“家庭存储”等管理权限设置的解决方案
- 获取管理员权限,无需切换版本来开启Telnet。如果已经处于
Default Version
,需要先切回运营商Version。 - 使用管理员权限登录后台,修改相关管理员权限才能修改的配置,例如:“家庭存储”。像 “改桥接配置” 这样的配置应该是会被运营商自动下发的配置进行覆盖,更改了之后也无法生效。
- 点击光猫登录页面右下角的 “设备注册” 按钮,输入 Password(也就是LOID码),耐心等待流程自己走完,即可按正常流程完成注册。
保留开启Telnet端口(包括改桥接配置等其他情况)的解决方案
- 长按复位键获取管理员初始密码,登录后台,记录“网络”中的
Internet
配置信息,尤其是几个关键点比如:改写(tag)、上网账号和密码(密码不显示,也无法从后台获取,需要自己安装宽带时记下来,或者后期问运营商)。最好是截张图,省心省力。 - 在http://192.168.1.1/hidden_version_switch.html切换
Default Version
后,Telnet就打开了。 - 管理员权限登录光猫后台,在“网络”中删除
TR069
配置。 - 在光猫登录页点击右下角的 “设备注册” 按钮,输入 Password(也就是LOID码),光猫会卡在30%进度(正在获取管理IP)的进度处,此时即可关闭该页面。
- 管理员权限登录光猫后台,在“网络”中新建
Internet
连接,其参数同之前记录的各种信息,尤其是改写(tag)等关键参数。像“全局地址获取方式”等非关键参数没有完全一致的选项,选择“自适应”即可。 - 此时,家里的网络应该是可以正常上网了。如果不能,就检查第4步和第5步是否有误。
- 现在Telnet还是开启的,可以进行任意设置,包括改桥接等。
- 最后,可以用控制台强行改光猫的状态(重启后生效),此后,再点击光猫登录页点击右下角的 “设备注册” 按钮回提示“注册已经成功”:
sidbg 1 DB set PDTCTUSERINFO 0 Status 0
sidbg 1 DB set PDTCTUSERINFO 0 Result 1sidbg 1 DB save
注意:
- 未完成注册,包括删除
TR069
配置来拒绝运营商下发配置的影响尚未可知,据说部分地区可能会导致无法上网或者光猫异常状况,请自行试验观察。 - “用控制台强行改光猫的状态” 只是一种欺骗效果,实际没有任何改变。但,如果运营商如果对未完成注册的设备进行了DNS污染等操作,该方法也许能解决。
完美解决的思路
在已经开启Telnet的情况下,可以获取密钥,来通过配置文件加解密的方式来完美解决再次开启Telnet端口,并且无惧之后的系统升级。
详细方法等回头有空再搞一下。。