记一次瞎折腾天翼网关 TEWA-768G

发布于 2021-02-21  476 次阅读


博主的光猫是天翼网关,型号 TEWA-768G ,同一型号的小伙伴可以参考一下。当然,不排除博主的操作其实是诈胡的可能性。

起因

第一次下载的原盘资源中尝到甜头的博主想要下更多的原盘资源,这就避不开使用pt下载技术。pt下载的门槛包含拥有一台NAS,于是博主计划在家里整一台NAS,并且让它在公网能够访问。(其实早就想搞了,但是没那么多数据需要存)

具体来说,让家里的NAS能够在公网访问需要以下几个步骤:

  • 确认自己是不是公网IP
  • 把光猫的模式调成桥接
  • 设置光猫DMZ服务器
  • 搭建NAS服务器
  • 设置DDNS

进过各种测试,博主发现自己的IP是公网IP。然而,博主家的光猫不能在192.168.1.1的管理界面设置桥接和路由选项。

获得超级管理员账号密码

为了防止有人没看到第一段,再重复一遍:博主的光猫是天翼网关,型号TEWA-768G

它长这样

博主经过各种搜索,发现网上的几乎所有方法都不适用。最后,博主搜索型号,找到了这篇文章。它仍然不适用,但是它给了我很大启发。

如果你是想要获得超级管理员账号密码,找到了这篇文章,请阅读这篇文章后再看下一段内容。如果你只是凑个热闹,可以跳到下一个标题处了。

下面说明我的操作步骤:

  • 按照上述文章,使用普通账号的用户名密码登录进维护地址
  • 按照上述文章,打开管理-设备管理页面
  • 按照上述文章,进入Sources,切换到MD_Device_user.html
  • 不要按照上述文章操作,Ctrl+F搜索 快速恢复,然后看博主操作

你将会看到如下代码

//USB 快速恢复 启用/禁用
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 += '&set2_sessionKey=' + 'set2_sessionKey_901';
   
   var code = 'location="' + loc + '"';
   eval(code);
}

我们看到,代码定义了一个函数,并声明了变量loc,它的初始值是字符串"usbbackup.cmd?action=backupeble"。稍微有些知识的读者当然明白,它的意义是向路由器的usbbackup.cmd发送get请求,参数是action=backupeble。用更通俗易懂的话就是:在浏览器中把它输入在路由器ip地址后边可以让路由器无视登录用户备份路由器配置。

通过备份的配置,我们可以轻而易举的获得超级管理员账号密码。然而……执行备份需要一个动态的验证码

让我们忽略 with ( document.forms[0] ) 到 loc += '&enabled=0'; }} 之间的代码。关注下面一行代码,这是博主所展示的代码和你实际操作中遇到的代码唯一不同的地方(当然也可能相同)

loc += '&set2_sessionKey=' + 'set2_sessionKey_901';

我们看到,它对loc进行了拼串操作,loc最后的值是:

usbbackup.cmd?action=backupeble&set2_sessionKey=set2_sessionKey_901

模仿博主操作,将它们拼起来,你得到的字符串和我的只有最后的三位数不同

然后把那个字符串复制到浏览器地址栏上,粘贴到路由器ip后边,例如:

http://192.168.1.1:8080/usbbackup.cmd?action=backupeble&set2_sessionKey=set2_sessionKey_901

敲下回车

注意:这个链接是有时效性的,在下一次操作中你需要重新得到链接(尽管只用修改最后的三位数)

然后,你可以回去参考他的教程了,毕竟博主的操作和它的教程只有刚刚那一段不同。(你可能已经关了那个标签页,这里放一个超链接)

附上RouterPassView的下载链接,直链下载更快

设置的过程同样险恶

原计划把它设置成既能桥接,又能路由,然而……

这是什么鬼东西???

设置成路由桥混合模式之后,出现了4个配置……

而且,在网络管理界面根本看不到它们中的任意一个……

经过反复设置之后,居然出现了10个上网业务?!

最后不得已,只能恢复出厂设置。而且,只有完全恢复出厂设置才能删掉设置错误的一堆上网业务

请注意,如果你需要完全恢复出厂设置,请确认你已经按照上一章节的操作备份了配置文件

请尽量不要 完全恢复出厂设置

于是,我就完全恢复出厂设置。但当我重启光猫之后,我后悔了

LOID(逻辑ID)是什么鬼东西啊

重启之后,原来的超级管理员账号密码不可用,而且,光猫的逻辑ID没有了。它现在的状态就是装光猫的人刚刚把全新的光猫插上线的样子。

于是,可喜可贺,它只有光猫的第一次启动的注册界面,它要求我填写逻辑ID和密码(可惜没有图)

一般人是没有机会见到这一页的,只有在第一次安装光猫的时候,安装光猫的工作人员才能看到它

但没有关系,我有备份的配置文件

你可以跳过这一小节,到“cfg文件对LOID的加密”处

博主按照先前 获取管理员账号密码 章节的方式,再一次通过普通用户的身份进入了备份页面。在MD_Device.html中的js中寻找解决方法。

有些代码必须进入备份页面才能看到

在 MD_Device.html 中 Ctrl+F 搜索 远程恢复出厂设置,可以看到如下代码(部分数字可能不同)

//远程恢复出厂设置
function refactoryRemoteClick(){
    var loc = 'refactoryRemoteinfo.cgi?';

    loc += 'set5_sessionKey=' + 'set5_sessionKey_531';
    var code = 'location="' + loc + '"';

    if (confirm("将路由器所有配置恢复到出厂默认设置,确认恢复吗?"))
        eval(code);
}

远程恢复出厂设置在这个页面中是不显示的,但是这个页面的权限是超级管理员。也就是说,远程恢复出厂设置是位于本地的超级管理员都用不到的东西。

不卖关子了,直接说结论

在光猫上插上先前备份好数据的u盘,仿照之前手动拼串的操作,把loc拼出来

refactoryRemoteinfo.cgi?set5_sessionKey=set5_sessionKey_531

粘贴到路由器ip后面,敲下回车,等待数据恢复

这一次重启可能会花费较长的时间,需要耐心等候

当然,大可不必费这么大劲操作,你可以通过之前得到的配置文件直接找到LOID

cfg文件对LOID的加密

理论上,cfg是备份的文件,应该有LOID,事实上,博主一开始就是想这么找的。但是,博主搜索后,得到了这样的一串数字:313134353134353944373200000000000000000000000000

这个LOID仅供演示使用,不是真实的LOID

显然,这不是LOID

按照上一小节的方法,博主恢复了配置,得到了原来的LOID,然后推理出了它的加密方式

让我们再看一遍这串数字

313134353134353944373200000000000000000000000000

不难得出以下结论:

  • 它后面有很多个0,具体来说,是26个
  • 它前面不是0的数字有22位
  • 它有很多3

原来的LOID是 11451459D72 ,让我们把它们放一起看

先忽略掉那一堆0,然后每两位分组,得到:

31 31 34 35 31 34 35 39 44 37 32

把每一个数字减去30,得到:

1 1 4 5 1 4 5 9 14 7 2

把14转化成16进制,得到:D

合并,得到:

11451459D72

这就是LOID

顺带一提,密码为空


挟飞仙以遨游,抱明月而长终