IOT Security Research
A simple blog for IOT Security Research.
前置知识
固件的获取
直接从厂商官网或官方服务器下载
使用BP或者UART串口进入设备的shell抓包获取下载地址
使用固件烧写器或者编程器提取ROM中的固件
固件的处理
解包
常用工具:binwalk、firmware-mod-kit、binaryanalysis-ng
解密
-
使用老版本未加密固件中的解密程序实现新版本加密固件的解密
-
逆向分析低版本固件的解密逻辑实现对新版本固件的解密
漏洞复现
TP-Link WR740 后门漏洞
首先获取固件,固件下载地址:https://github.com/dioos886/TP-LinkWR740
使用binwalk扫一下,可以直接看到Squashfs文件系统,使用-Me参数进行提取
Tips:如果这里无法提取出文件系统,可能是没有正确安装sasquatch,直接根据Github中的步骤安装即可
sasquatch下载地址:https://github.com/devttys0/sasquatch.git
解包完成后,可以使用 firmwalker 进行敏感信息扫描
firmwalker下载地址:https://github.com/craigz28/firmwalker.git
使用方法:./firmwalker.sh squashfs-root的路径
多次出现httpd的字样,因此猜测是httpd起的服务
接下来逆向分析一下/usr/bin/httpd这个文件
通过搜索passwd跟踪到以下DebugResultRpmHtm这个函数,可以得到 用户名:osteam 密码:5up
再往上可以找到另外两个函数ArtRpmHtm和CmdRpmHtm
然后我们对固件进行模拟,我这里使用的是AttifyOS3.0中的 firmware-analysis-toolkit
模拟成功后我们直接访问 192.168.1.1 即可
使用默认密码 admin admin 登录
登录成功后直接访问 192.168.1.1/userRpmNatDebugRpm26525557/linux_cmdline.html
然后输入我们之前逆向得到的用户名密码:osteam 5up 即可实现 RCE