首页
社区
课程
招聘
[原创]初探HG110-B家庭网关
发表于: 2020-3-5 14:05 22205

[原创]初探HG110-B家庭网关

2020-3-5 14:05
22205

烽火HG110-B家庭网关是一种大多由联通/电信赠送的智能家庭网关,手中分析的这款是14年的老产品了,是联通定制的家庭网关。该网关除了具有“猫”功能,同时还具有路由功能,不过默认情况下,运营商并不提供配置Wifi的管理员密码,即功能已经被锁死。


去除外壳,它的样子。

在外部,需要收集的信息,包括板子的UART口,使用的Flash型号,开放的端口。首先可以看到UART是固定好的,通过使用电压表测量,是可以正常使用的。通过查看PCB板,找到了疑似的Flash,通过使用电子放大镜查到了型号【MX25L3206E】。(现在的角度看来,没有抹去芯片型号,也可以算是一个存在的问题了)

使用的廉价的电子放大镜:

加电运行后,使用树莓派进行了端口扫描:

敞开盖子工作的树莓派。。这代树莓派实在是太热了

经过对这些端口的尝试,没有发现可利用端口,本来以为老机器会由telnet之类的呢。

从现在的角度看,这样一个IoT设备没有移除UART口是不负责任的。从看到内部的第一眼,注意力就被UART口吸引过去。使用转换工具连接笔记本,可以看到顺利打印出启动信息:

可以尝试通过串口登录到系统中,使用用户名root,密码使用脚本跑了80多个IoT常用密码,最终都没有登录到系统(挖的一个坑)。所幸换一个方式,直接读取存储密码的文件,解密即可得到密码。我们都知道,Linux的用户的信息存储在/etc/passwd中,passwd是所有人可读的,为了安全考虑,passwd中通常使用x显示密码,而真正的密码存储在shadow中,在早期的系统中没有考虑这些安全性问题,密码同样存储在passwd中,综上,只需要拿到passwdshadow文件即可(挖的另一个坑)。

要想获取密码,首先需要拿到固件。固件获取的方式有几种方式:

前两者明显是行不通了,直接物理hacking,编程器读取。
使用编程器读取有3种方式:

拿到固件后,没有想更多,直接扔到虚拟机中,binwalk查看信息。

可以看到文件系统是Squashfs,我们想要的系统文件都在这里,直接解包。切换到etc目录,查看文件信息:

没有看到shadowpasswd也变成了链接文件,情况变得有些出乎意料。
沿着passwd指向的地址找下去,切换到var目录,查看目录结构:

似乎这些文件都不存在。推测可能是后期以某种方式写入或挂载的,在fstab文件中,也证实了我的猜想:

什么是tmpfs?
tmpfs 是一个不存在于实体硬盘上、而是驻在内存里的特殊文件系统。

/tmp 放置在 tmpfs 上有数个好处:

到这里,对直接读取passwd已经不抱有太多希望了,做最终的尝试,看看哪个文件中含有/passwd这样的字符串:

貌似第一个匹配的文件更像是想要的,拉出来拖到IDA中,先进行简单分析,观察到只有rut_createLoginCfg函数调用了/etc/passwd,尝试F5,失败了。想起来了之前用过的对于IoT更好用的Ghrida,这款NSA发布的开源逆向工具,查找该函数,注意到以下代码片段:

无心插柳柳成荫,原来可登录用户是adminsupportuser
再次使用弱口令字典爆破密码,额,分分钟出来结果:

我们可以执行部分命令了,查看/etc/passwd文件,使用工具可爆破解密出密码:

文章开始提到,该网关的一些功能被运营商锁死的,在固件中相关的配置文件中,找到了相关的账户配置,使用这些账户,即可解锁相应功能。

在工厂配置文件中,同样还发现了一个重要的账户——telnet账户:

虽然整个过程没有挖掘新的漏洞,但是已经获取到了系统的权限,可以修改防火墙,使用telnet,上传gdbserver进行调试分析。

https://wiki.centos.org/zh/TipsAndTricks/TmpOnTmpfs

 

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (19)
雪    币: 1790
活跃值: (3904)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
设备真全
2020-3-5 14:32
0
雪    币: 229
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
2020-3-5 15:03
0
雪    币: 285
活跃值: (1100)
能力值: ( LV13,RANK:405 )
在线值:
发帖
回帖
粉丝
4
拍拖 设备真全
哈哈,还好还好,和大佬们差多了
2020-3-5 18:57
0
雪    币: 9934
活跃值: (14769)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
5
2020-3-5 20:28
0
雪    币: 471
活跃值: (4223)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
不错.就喜欢这种软硬都有的文章
2020-3-7 17:58
0
雪    币: 35
活跃值: (264)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
7
设备真齐全
2020-3-10 13:45
0
雪    币: 29182
活跃值: (63621)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
8
666 感谢分享啊!
2020-3-12 14:37
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
66666
2020-3-24 09:07
0
雪    币: 3022
活跃值: (6771)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
欢迎入门硬件安全的小白
2020-3-26 19:14
0
雪    币: 1339
活跃值: (2228)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
11
编程器什么型号啊,求推荐一个
2020-3-27 11:21
0
雪    币: 285
活跃值: (1100)
能力值: ( LV13,RANK:405 )
在线值:
发帖
回帖
粉丝
12
茅山小僧 编程器什么型号啊,求推荐一个
文章里用的是RT-809H,评价挺好的,好多文章都推荐,可以去他家官方店铺买
2020-3-27 18:39
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
真是牛人!!
2020-4-1 20:30
0
雪    币: 320
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
楼主你好,对固件分析需要掌握什么知识呢
2020-4-7 23:12
0
雪    币: 1535
活跃值: (695)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢分享啊
2020-4-8 13:47
0
雪    币: 285
活跃值: (1100)
能力值: ( LV13,RANK:405 )
在线值:
发帖
回帖
粉丝
16
I_CAN 楼主你好,对固件分析需要掌握什么知识呢[em_85]
可以看看《揭秘家用路由器0day漏洞挖掘技术》这本书,当然,语言基础不可少
2020-4-9 11:20
0
雪    币: 320
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
sudozhange 可以看看《揭秘家用路由器0day漏洞挖掘技术》这本书,当然,语言基础不可少
ok
2020-4-10 15:25
0
雪    币: 0
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
没看懂,能说的清楚点么?
2020-5-27 23:29
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
软硬兼备啊
2020-5-28 10:42
0
游客
登录 | 注册 方可回帖
返回
//