成都电信光猫盒子(天邑808AE)破解超级密码记录
最近换了工作地点,新租房的房东默认配置了电信宽带,附带上宽带盒子,这个盒子算是一个多功能盒子,包括以下功能:
光猫
电视盒子(IPTV安卓4.4系统 + 带红外遥控 + 视频/音频HDMI接口 +
音频SPDIF接口)
路由(一个千兆网口 + 一个百兆网口)
2.4G WIFI(带WPS)
电话(RJ11接口)
还带两个USB2.0接口和SD卡接口,但侧边的USB和SD卡接口都是给IPTV安卓系统使用,只有后面的USB接口可以拿来做存储使用,该口也用作后面的破解密码使用 。
进入正题,接下来介绍具体的过程:
1. 获取管理界面
一般运营商所附赠的盒子都会在背面标注配置地址,常为192.168.1.1 ,也会标注上配置账号和密码(下称useradmin
账户),访问网页结果如下,目前该设备的账号名为useradmin
。
使用给定的useradmin
账户登录,查看设备详情,如下图。如果是相同或者相近的产品型号,可以根据我的思路进行破解。
需要注意,该界面,基本只能用于修改修改wifi配置信息,该配置地址192.168.1.1 也是一个非运维地址,真正运维地址是192.168.1.1:8080 ,该网页访问情况如下:
目前,可以使用useradmin
账户登录该管理界面,但也存在权限问题。虽然相较于之前的页面多了一些配置内容,但基本都是些无关痛痒的操作,并不能实现对宽带拨号、桥接、IPV6等的修改。要实现完全功能的修改,需要使用真正给运维人员的账户(下称telecomadmin
账户),接下来,我们将使用useradmin
账户+运维地址192.168.1.1:8080 来获取telecomadmin
账户。
2. 利用小trick拿到备份文件
在广大网友的智慧下,使用useradmin
账户登录运维地址,然后打开开发者界面(快捷键F12),切换到网络面板。然后网页访问:管理→设备管理,在网络请求中找到:MD_Device_user.html ,见下图:
该HTML源码中有个函数enableClick() ,作用是实现将盒子配置内容备份到USB存储设备中。但在网页中并没有提供触发这个函数的操作(比如点击某个按钮),需要我们手动触发。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 function enableClick ( ) { var loc = 'usbbackup.cmd?action=backupeble' ; with ( document .forms [0 ] ) { if ( enable[0 ].checked == true ) { if (list.length > 1 ) { btnDown.disabled = true ; } loc += '&enabled=1' ; } else if ( enable[1 ].checked == true ) { if (list.length > 1 ) { btnDown.disabled = false ; } loc += '&enabled=0' ; } } loc += '&sessionKey=' + sessionKey; var code = 'location="' + loc + '"' ; eval (code); }
分析该函数,发现只需要拼接一个字串,就可以访问该功能。其中enabled 代表是否启用USB快速恢复 功能,当然此处需要启用。最后拼接如下:
1 loc = usbbackup.cmd?action=backupeble&enabled=1&sessionKey=1795138985
这里的sessionKey 来源在源码的上方
1 2 3 4 5 6 7 var obj1Items = '1|7|0' ;var usblist = '' ;var list = usblist.split ("|" );var sessionKey = '1795138985' ;var usbbackenable = getValueFromList (obj1Items, 0 );
给出了 sessionKey 的值,复制过来,拼接成一个完整的字串。
懂URL编码的同学可以发现,该字串就是http请求url的一部分,其中的
enabled 和 sessionKey 都是GET请求的 params
然后补上前面的地址部分,形成一个完整的访问网址:
192.168.1.1:8080/usbbackup.cmd?action=backupeble&enabled=1&sessionKey=1795138985
一定要创建一个新页面,然后打开开发者工具,去访问该网页。如果顺利,会得到一个这样的网页:
但是由于 sessionKey
有访问时间、次数限制,如果短时间没有进行操作或者重复操作,会访问失败,得到如下结果。
如遇到这样的情况,请重新访问:管理→设备管理,拿到新的
sessionKey 来访问该网页。下图是是正常的访问页面。
在某些设备中,除上图中的三个按钮(恢复出厂设置 、重启 、保存设置 )外,还有有一个备份配置 的按钮,如下:
如果你有备份配置 按钮,可以提前插入U盘(最好格式化为Fat32格式),然后点击备份配置,得到一个
cfg
类型文件,跳过之后的步骤到第3步。
如果你遇到我这样没有备份配置按钮 的情况,那么😒,还需要绕一圈。我们继续使用开发者工具,查看该界面代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... var product_type = '3' ; ... if (product_type == '4' ){ document .write ("<div>" ); document .write ("<b id='Title_usb_backup_lable'>USB备份配置:</b>" ); document .write ("<div style='text-align:center'>" ); document .write ("<p id='Title_usb_fast_backup_lable'>快速恢复: " ); document .write ("<label id='RecEnable_checkbox'><input type='radio' name='enable' onClick='enableClick()' />启用</label>" ); document .write ("<input type='button' name='btnDown' onClick='btnApply()' value=' 备份配置 ' />" ); document .write ("</p>" ); document .write ("</div>" ); document .write ("</div>" ); }
发现product_type 还做了限制,必须product_type=4 的设备才能有该功能。不过我们可以继续梳理逻辑,如果存在该功能,当点击备份配置 按钮的时候,会访问到btnApply() 函数,继续找到该函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function btnApply ( ) { var loc = 'usbbackup.cmd?action=backup' ; with ( document .forms [0 ] ) { if ( usbsubarea.value == "" || usbsubarea.value == "none" ) { msg = '请插入USB设备' ; alert (msg); return ; } idx = usbsubarea.selectedIndex ; val = usbsubarea.options [idx].value ; loc += '&subarea=' + val; loc += '&sessionKey=' + sessionKey; } var code = 'location.assign("' + loc + '")' ; eval (code); }
又是一个拼接函数,继续按照逻辑拼接,得到如下的结果:
1 loc = usbbackup.cmd?action=backup&subarea=usb1_1&sessionKey=1222473631
其中的 subarea 值和 sessionKey
的值可以在该页面的上方找到:
1 2 3 4 var obj1Items = '1|7|0' ;var usblist = 'usb1_1|' ;var list = usblist.split ("|" );var sessionKey = '781652989' ;
注:若usblist 值为空串,
请插上U盘重试,建议U盘格式化为Fat32格式。
保证设备后面插上U盘,并形成一个完整的链接:
192.168.1.1:8080/usbbackup.cmd?action=backup&subarea=usb1_1&sessionKey=781652989
注:subarea 字段值为 sublist
以|
隔断的第一个字串。
访问该链接,如果顺利,不会有访问异常,而且在U盘目录下新生成有如下cfg
类型文件:
如果没有该文件,请尝试重试以上步骤🙄,尤其是 sessionKey
的获取有效。
3. 使用routerpassview
获取超级密码
如果拿到cfg
文件,在网络上搜索下载routerpassview 软件,并用该软件打开U盘内的cfg
文件。如果软件被杀毒软件拦截,请酌情放行。
在软件中查找telecom 关键词(快捷键Ctrl +
F),如果能找到如图的内容,恭喜你破解telecomadmin
账户成功👍。账号名为telecomadmin
,账户密码为图中Password 中间标识的字段,该密码跟随设备,相同设备间一般不一样,甚至同一设备恢复出厂设置后都有可能会修改。
最后,使用telcomadmin
账号登录运维地址
附上 useradmin 账号和 telcomadmin
账号登录运维地址的截图,可以看到多出来的配置功能。
telecomadmin账号登录运维截图
useradmin账号登录运维截图