腾达AC1200路由器漏洞分析

固件安全
2022-02-10 18:23
18303

测试环境:Ubuntu 18.04

固件版本:V15.03.06.51_multi

固件下载地址:https://www.tendacn.com/en/download/detail-3801.html

厂商地址:https://www.tendacn.com/

0x01

首先我们将官网上面的固件下载到本地使用binwalk对固件进行解包

binwalk -Me US_AC6V2.0RTL_V15.03.06.51_multi_TDE01.bin 

看来固件没有加密,成功拿到文件系统


接下来我们对固件升级包解压后的文件进行分析

通过对其前端的登录页面可以发现,路由器使用的登录方式是POST请求传参,密码使用的MD5加密


对系统服务httpd文件分析,可以得知改路由器没有对登录进行次数限制,换句话说已知用户名admin未知密码,我们就可以使用密码爆破的手法进行登录


身份验证则采用的是cookie方式,换句话说cookie等于密码的MD5+随机8位字符串


路由器的管理员密码我设置的是12345678,验证其cookie的值是否是MD5+随机8位字符串

0x02 CVE-2020-28093

我们在进行login逻辑分析的时候,看到一行这样的代码

可以看出如果请求的url不是/goform/telnet或者/goform/ate,那么就会return 0。他没有写else也就是说当url是/goform/telnet的时候就会触发开启telnet,后面还加了g_Pass[0]也就是说这是一个在登录状态下才会启动成功,我们直接浏览器访问


返回状态没有报错,使用工具nmap扫描一下端口,可以看到telnet端口已经开启


直接登录telnet,通过百度查询可知账号root密码Fireitup


尝试写一个txt文件验证一下


发现这是一个只读文件系统,最后发现webroot目录是具有写入权限的但是重启之后会被重置


我们可以使用tar命令将整个文件系统进行打包带webroot目录下面,在通过授权的访问下载出来整个文件系统

0x03.CVE-2020-28095

根据wireless_ssid.js可以看到提交的数据接口为goform/WifiBasicSet


根据IDA的函数名进行搜索WifiBasicSet,可以看到获取传递的值,默认的值为12345678


当wrlPwd的长度超过一定范围时,触发溢出漏洞,从而导致设备进入DOS状态。经测试可知,一旦设备进入到DOS状态只有重置路由器才可以恢复到正常使用状态。

视频链接:http://mpvideo.qpic.cn/0bc33uacaaaakaaotqqexjrfbxodedoqaiaa.f10002.mp4?dis_k=9af10781f34c9b2e6403d6e004e30adf&dis_t=1644488534&vid=wxv_2263055816461385730&format_id=10002&support_redirect=0&mmversion=false

分享到

参与评论

0 / 200

全部评论 5

zebra的头像
学习大佬思路
2023-03-19 12:14
Hacking_Hui的头像
学习了
2023-02-01 14:20
tracert的头像
前排学习
2022-09-17 01:32
0xHL1n的头像
系统服务httpd文件在那个目录下呀
2022-09-08 14:59
Ler2sq的头像
请问这是用什么框架模拟的呀 还是手撸的
2022-07-05 16:47
IOTsec-Zone的头像
qemu 手撸
2022-07-06 13:01
投稿
签到
联系我们
关于我们