试图破解光猫hg8321r的超级用户名和密码

Posted by wsxq2 on 2020-06-10
TAGS:  HG8321R光猫PWN

本文最后一次编辑时间:2020-06-12 11:19:08 +0800

本文讲述了一次试图攻破光猫 HG8321R (得到它的 Web 管理接口的超级用户名和密码)的经历

情况说明

自家正在使用的光猫是华为生产的重庆移动光猫 HG8321R,当时安装的时候忘了找安装人员要超级用户名和密码。而我一直对它充满好奇,很早就想看看光猫的管理界面是什么样子的,提供哪些管理功能,是否有什么有价值的功能,是否可以尝试使用某些功能改善使用体验(移动宽带经常卡)。而为了达到这些目的,我就必需获取它的超级用户名及密码。当然,直接找维护人员要或许是一个不错的方法,但是这一点也不极客。所以我选择了一条非常艰难的道路——试图破解

扫描

使用 nmap 扫描光猫暴露的端口:

1
nmap -sS 192.168.1.1

得到三个结果:80(HTTP)、23(Telnet)、53(DNS)。

HTTP

首先自然想到从 HTTP 下手。在浏览器中输入http://192.168.1.1,进入光猫登录界面。再输入默认用户名和密码(在光猫背后),失败。说明密码被修改过(可能是维修人员,也可能是我自己 :joy:)。猜了几个用户名和密码:

1
2
3
4
5
6
7
8
9
10
# 自己瞎编的
admin:123456
admin:admin
user:123456

# 网上找的
telecomadmin:admintelecom
CUAdmin:CUAdmin
lnadmin:lnadmin
CMCCAdmin:aDm8H%MdA

(上述网上找的密码主要参考了 联通HG8321R光猫开路由破解详细步骤-百度经验移动光猫改桥接问题(问题已解决写下给新手看) - 网络设备 - KoolShare - 源于玩家 服务玩家

全部不行。

当然既然猜密码失败了,我们还可以考虑字典攻击和暴力破解,比如使用Burp Suite等 Web 相关的安全渗透工具,或者直接使用 Python,详情参见 Web暴力破解–前端JS表单加密进行爆破-云栖社区-阿里云。但是由于时间有限,所以暂且保留这一方案作为最终方案

当然,除了上述的字典攻击和暴力破解外,还可以找 Web 漏洞进行 Web 攻击,然而在这方面的我完全是个小白,所以就放弃这个想法了。

Telnet

其次自然想到的是 Telnet。首先使用telnet命令连接到光猫:

1
telnet 192.168.1.1

再输入用户名和密码。问题来了,这里的用户名和密码又是啥呢?网上搜索一番,得到了结果:root:admin。一试,还真对了。好了,让我们连上看看。

然而,连上后反而有些迷茫了,因为我的目标是获取 Web 管理接口的超级用户名和密码。通过 Telnet 进入了光猫,但是却无从下手。

所以我去网上搜索了一番,果然找到了使用 telnet 获取超级用户名和密码的方法:

1
2
3
4
# 使用 telnet 连上后执行如下命令
su
shell
grep telecomadmin  /mnt/jffs2/hw_ctree.xml

问题来了,执行最后一行命令时报错说grep命令不存在。查看帮助(以下内容为记忆内容,仅供参考):

1
2
3
4
5
6
SU_WAP(Dopra Linux)# ?
exit
get*info.sh
restorehwmode.sh
SU_WAP(Dopra Linux)# help
ERROR: help is not exists

居然只有这三个命令,尴尬了,原来这就是传说中的阉割版。

想办法直接获取hw_ctree.xml文件(失败)

接下来便想着有木有其它方法获取/mnt/jffs2/hw_ctree.xml文件,即不使用 shell 方法,而是直接使用 Telnet 中的其它命令(因为我家的这个光猫,Telnet 命令相当多,多达 100+,所以我认为应该有相关的命令可以达到这个目的)。

找该光猫 Telnet 的命令参考手册(失败)

我首先想到的是找该光猫的 Telnet 命令参考手册。然而使用谷歌换了好些个关键字搜索也没有找到答案。

最后直接搜索光猫型号HG8321R企图找到官方文档,找到了一些资料,然而需要登录并申请。

申请时需要使用产品序列号进行产品注册。于是通过查阅相关资料(直接点击旁边的如何获取SN?)得到了获取方法:Telnet 连接光猫,执行命令display sn即可

然而申请需要审核,审核需要较长的时间

自行探索获取 hw_ctree.xml 文件的命令(失败)

因此我想着先自行探索一下,看有木有明显的命令可以获取/mnt/jffs2/hw_ctree.xml文件的内容或者将其下载到我的电脑上。

我查看了很多命令的名字和帮助(使用?命令),然而并没有找到相关内容。

最后我找到了一个wap list命令,具有ls命令的效果,但是却没有找到类似cat的命令。同时,我也试图查找能将文件下载到本机的命令,然而依然以失败告终

补全 Shell(失败)

后来我又在浏览相关内页时发现竟然有补全 shell 这种操作,于是我开始找补全 shell 的方法。

很快,找到了这个

然而,下载附件时发现需要猫粮,然而我不想注册和登录,于是想找个免费的下载,果然,很快我就找到了一个免费的,然而这个型号不对。

但是后来又想到只是 shell 而已,应该通用吧。于是我直接下载并尝试了:

1
2
3
4
5
6
SU_WAP>load pack by tftp svrip 192.168.1.4 remotefile allshell2.bin
success!
SU_WAP>
SU_WAP>
SU_WAP>Software Operation Successful!RetCode=0x0!
New Version [V300R017C10SPC120B153]!

但是不知怎么肥事,我弄错了文件,弄了个 23.3M 的文件上去,结果就凉了。事后才想到,弄上去那个文件应该是个固件,而且是型号不匹配的固件。(后来重新试了下,发现它是兼容 HG8321R 的,其版本号为 V300R016C10SPC135B029,即 2016 年的(R016))

再说说“凉了”的表现:重启后,再也无法访问192.168.1.1了,无论是 Web 还是 Telnet,更别说 Internet 了。直连光猫抓包后发现,主机不断地发送 DHCP Discovery 包,然而一直收不到回复;改成固定 IP 192.168.1.4 后就表现为我的主机一直发送 ARP 包,同样收不到任何回复。

对于连 ARP 包都不给回复的情形,我不曾遇到过,也不知道如何解决,网上搜索了也没找到解决办法,所以我认为凉了。用签字笔戳光猫侧面的 reset 孔也没有用。

因为时间有限(我计划今天之内完成这个事),所以最后为了保证家里人能用网,我选择了找维修人员 :joy: 。维修人员说,其实他可以直接把超级用户名和密码告诉我的。/抚额

最后维修人员也没能修好光猫,打算本周五(当前周三)给我们换一个,还好第一次换免费 /笑哭。

华为光猫 ONT 使能工具救砖(成功)

第二天我实在有些不甘心,反正那个光猫也还在,于是继续想办法。后文便是我继续折腾的经过。

在网上游走了一段时间后,我终于想到不是还有个华为光猫 ONT 使能工具吗?这个工具在各大相关论坛中出现了很多次,说不定还有救(之前我在论坛瞎逛的时候,有人说华为的猫非常顽强,刷固件很难将它刷坏,这也大大地激励了我)。于是我又把目光转向了 华为光猫ONT使能工具773版本,研究了一下其中的使能和升级的操作方法和大致原理

工具使用方法

以“使能”为例(部分来自网络):

  1. 拔掉插在光猫上的光纤、电源线、各种网线,将光猫拿到电脑旁边,方便后续操作
  2. 将你的电脑通过有线直接连接到光猫的 LAN1 口
  3. 启动光猫,等待其完成开机
  4. 运行程序,选择“使能”,并选择连接到光猫的网卡,接着点启动即可
  5. 等到 PON 灯不亮,其它全部常亮,且只有 LOS 灯为红色。然后停止工具
  6. 重启光猫。

工具大致原理

这部分为个人理解和推测。

该工具通过向网络中发送目标地址为224.0.0.99的源端口为 918、目的端口为 4891 的在 Wireshark 中显示协议为BT-uTP的 UDP 包,使光猫产生如下反应:

  1. 起初是 LOS 灯为红色并不停闪烁,LAN1 灯为绿色并时常闪烁,POWER 灯为绿色并常亮,其它灯不亮;
  2. 之后是所有灯开始闪烁(只有 LOS 灯为红色,其余均为绿色);
  3. 最后是 PON 灯不亮,其它灯全部常亮,且只有 LOS 灯为红色,其余为绿色。

关于各个指示灯的具体含义请参见HG8321R 产品手册联通光电猫pon los分别指示的是什么灯-百度知道

救砖

知道了该工具的使用方法和大致原理后,我先是尝试通过“使能”的方式救砖,希望能获得 Telnet 访问能力。然而,工具界面虽然显示成功了(左下角当前成功数 1),我却依然无法使用telnet 192.168.1.1访问。抓包显示的结果依然没变:电脑设置成 DHCP 时无法正常获取 IP 地址;设置成静态 IP 192.168.1.4又无法得到 ARP 响应。

通过“使能”救砖失败后,我开始尝试使用“升级”来救砖,希望刷个新的固件后能够正常工作。我先在网上找了个看起来靠谱的固件: 华为HG8321R固件 - 固定接入 - 通信人家园 - Powered by C114。然后开始刷,刷的过程中光猫的灯的变化依然如前所述(其实只要有变化就能说明光猫有反应了,工具起到了作用)。完成后发现依然无法访问光猫默认的 Web 管理界面 http://192.168.1.1。然后我又自闭了

突然,我灵光一闪,既然在刷的过程中光猫是有响应的,工具也提示成功了,而光猫和工具间是使用网络直连的,那么工具是如何判断在光猫上的刷机操作是成功的呢?必然是光猫给了一个回复包才对。于是我在抓包工具 Wireshark 中使用过滤器:

!(ip.src==169.254.136.97 || ip.src==192.168.1.4) && ip

其中169.254.136.97是我使用 DHCP 配置时主机获得的一个“无效”的 IP 地址(也并非真的无效,它有其它作用,详情自行搜索);192.168.1.4则是我使用静态 IP 地址时分配给电脑的 IP。以上过滤器的目标是显示所有不是从169.254.136.97192.168.1.4发出去的 IPV4 包,从而减少查找量。很快,我就找到了光猫给的回复包:两个源地址为192.168.100.1的包,这两个包的内容是一样的(具体的含义我也不清楚,但容易想到,其中包含了“操作成功”这样的信息)。

于是我终于知道为什么之前使用静态 IP 192.168.1.4时发出去的 ARP 包全部都石沉大海了,因为光猫默认的 LAN 的地址变了呀!不再是192.168.1.1,而是192.168.100.1。至于原因,我的推测是新的固件默认使用192.168.100.1作为管理地址。到这里可以看到,说不定起初的刷固件操作并没有导致光猫变砖,本部分的内容或许也称不上救砖,不过事已至此,这都不重要了

于是我直接访问 http://192.168.100.1。果然,访问成功,但是用户名和密码是多少呢?首先我试了下光猫背后默认的用户名user和密码qiknty,失败。于是我开始尝试前面网上盛传的几个用户名和密码,结果,第一个(telecomadmin:admintelecom)就成功了。

于是我很欢快地进入光猫的管理界面,发现光猫的界面果然不同凡响,和路由器不是一个层面的。甚至产生了写一篇家用路由器和一篇家用光猫的文章的冲动

至此,我终于达到了我最初的目的。

事后,我还使用 telnet 连上看了下 shell,发现果然补全了,只是 Telnet 命令少了很多。于是简单玩了下里面的 shell 就结束了

当然,光猫还是要换的,毕竟昨天已经和维护人员说好了。现在的光猫虽然能用了,但由于刷了新的固件,之前的 WAN 配置信息也没了,即压根连不上 Internet,所以还是需要维修人员。

DNS

因为目标达到了,所以没有做相关尝试。

总结

事实上,上面的经历描述有不少都是整理后的,实际步骤有一定的出入。下面从技术、心得、经验三个方面作个简单的总结

技术

本次经历涉及技术层面的东西实在太少,本来以为需要找 Telnet 的漏洞来试着攻击的,结果不小心刷机了,还刷出问题了,因此只能想办法刷回来。刷回来成功后,自然也达到了目的。所以整个过程关键的步骤如下:

  1. 结合网络猜 Web 管理接口的超级用户名和密码,失败
  2. 结合网络猜 Telnet 管理接口的超级用户名和密码,成功(root:admin
  3. 试图通过 Telnet 管理接口得到 Web 管理接口的超级用户名和密码,失败(shell命令过少)
  4. 补全 shell,失败,还错误刷机了
  5. 使用华为光猫 ONT 使能工具救砖,成功(可能本来就不是砖)

其中用到技术几乎都来自网络,没有一点创意。如果非要说有的话,就只有救砖时通过分析抓包内容得到了光猫新的 LAN IP 192.168.100.1,这一点是靠自己的思考得出的

心得

光猫破解一类的资源有些难找,找到的也常常语焉不详,或者只有只言片语。也没有找到那种适合入门的系统的学习文章,只能靠各种拼凑得到一些难以验证的结论和抽象的印象。

论坛的信息有些良莠不齐,厉害的大佬非常厉害,萌新的也非常萌新,甚至还有刷广告和凑字数的。不过还是非常感谢其中认真求索的人提供的教程,让我不至于直接懵逼,无人下手。果然,现在做什么事情都能站在巨人的肩膀上。网络真好

经过这次经历,也认识到自己还是没有找到论坛学习知识的正确“姿势”,望以后再接再厉。

经验

光猫、路由器等相关的问题可参见如下几大主流论坛:

可能需要深入其中,经常逛逛,对接收到的碎片信息进行整理才能学到不少知识。

学到的词汇:

  • PWN:攻破
  • NTLM: NT Lan Manager。Windows 中的一种安全机制,可保护 Telnet 等,但能被轻易绕过
  • LOS: Loss Of Signal
  • PON: Passive Optical Network。无源光网络
  • GPON: Gigabit Passive Optical Network
  • OLT: Optical Line Terminal。服务商光纤端
  • ONU: Optical Network Unit。客户光纤端(“光纤入户”中的“户”)
  • ONT: Optical Network Terminal。ONT 基本和 ONU 相同
  • ODN: Optical Delivery Network。光纤分配网络,由很多组件组成
  • LOID: 一种在“光纤入户”中时常出现的认证方式。

    LOID+CHECKCODE authentication: defined by a telecom operator. In this authentication mode, LOID has 24 bytes, and CHECKCODE has 12 bytes and is optional. Whether 24 bytes or 36 bytes are used for authentication depends on data planning, which is unified over the entire network.

    ——引用自 How to Configure a GPON ONT (Distributed Mode) - Thunder-link.com

  • IPoE: Internet Protocol over Ethernet
  • PPPoE: Point to Point Protocol over Ethernet

一些可能为后续研究有帮助的链接: Obtaining administrator access on Huawei HG8247H · the.Zedt: https://zedt.eu/tech/hardware/obtaining-administrator-access-huawei-hg8247h/

链接

下面总结了本文中使用的所有链接: