背景
漏洞来源于之前一个众测项目,拿到设备的时候人懵了下。是个智能洗衣机的主板。连上网后礼貌性的对设备进行了端口扫描,发现未开放任何端口,整个设备采用云端服务器下发的方式执行指令。
攻击路线分析
因为不存在任何端口开放,因此最开始将攻击点固定在了设备的云端以及联网方式上。云端已经测过一轮没有测试的必要,而劫持的话会比较简单。但是项目负责人反馈劫持这类攻击不算,因此重新回到联网位置。
这时脑中冒出了一个大胆的想法,既然只有连接WiFi的时候参数是可控的,那么有没有可能WiFi这里存在溢出或是命令注入呢?
WiFi连接到RCE
提出固件后直接定位到APP引用,IDA中直接搜索连接WIFI会出现的关键字如SSID和Passwd等。这时发现有个WiFi password wrong format比较显眼。
通过交叉引用,跟入发现如下逻辑。其中可以发现std::NetWorkListener::startConnectWiFi(),猜测为连接过程,跟入函数
继续跟入startConnectWiFi后发现如下赋值流程,直接拼接system,显然存在命令注入。
使用电脑新建热点,取名为"';busybox reboot;'"
使用设备连接该WiFi,可以发现设备瞬间重启,成功执行了命令,真实攻击场景下可以使用busybox telnetd -l sh -p 1339命令反弹shell。同理WiFi密码字段也存在该问题。
演示视频
知识星球
以上分享内容均来自物联网安全知识星球,星球内分享了各类物联网0day和测试过程,欢迎大家的加入。
本文始发于微信公众号(白帽100安全攻防实验室):从WIFI连接到洗衣机RCE
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论