0x00 前言

随着物联网 IOT 的飞速发展, 各类嵌入式设备, 路由器安全研究也越来越火. 但因为跟以往纯软件安全研究的要求不同, 这类研究往往需要结合相应的硬件知识. 很多朋友困惑如何开始, 甚至卡在了该选何种工具上. 因此汪汪将会在系列文章中分享一些实战案例和个人经验. 希望能对嵌入式安全研究起到抛砖引玉作用.

在WINKHUB这个案例中我们将使用几款简单的入门工具如万用表; UART 转接头和导线等. 同时将介绍一种通过芯片阻断的方式, 获取系统ROOT 权限. 这种方法是俗称边信道攻击中最容易上手的一种. 汪汪希望可以借此小文让大家体验下, 并不是所有的边信道攻击都那么的高不可攀.

0x01必备神器UART转接头

正所谓工欲善其事必先利其器, 拥有得心应手的辅助工具, 对我们研究嵌入式设备安全将起到事半功倍的作用. 而说起嵌入式设备不管是开发还是安全研究,都会用到这个UART转接头.

(如图所示: 各类UART 转接头)

Baudrate

0x02 WINKHUB 物联网关

终于到今天的主角上场了, 本次的攻击目标是这款名为WINKHUB 的物联网关. 你是否好奇为何需要此类网关设备呢? 玩过IOT设备的朋友就会发现, 现有的IOT产品仅同时支持1到2种互联方式. 比如Philips的HUE智能灯系列采用Zigbee作为联接技术. 而用户若是想把HUE跟使用Bluetooth的智能门锁互联,还需要在添加额外设备. 这从用户体验的角度上来说是非常不方便的. 而WINKHUB网关的优势就在于其同时支持WIFI; Bluetooth4.0; Zigbee; Z-Wave 和 RF 等主流的IOT 联接方式. 换句话说用户只需要买一个这样的网关, 就不用担心不同IOT产品间的兼容问题.![img]

然而成也萧何,败也萧何. WINKHUB 在功能上的优势, 也给攻击者提供了更多的攻击向量. 作为一款智能网关以往家用路由器上的安全隐患也依然存在. 譬如在早期的固件版本中就存在Command execution 漏洞 (set_dev_value.php). 而在官方修复的新版本中又被发现了SQL Injection漏洞.

图上为包含Command execution 漏洞的PHP 代码段. 通过此漏洞我们可以root 权限执行任何系统命令. 比如读取shadow 文件.![img]

(视频演示 WinkHubVuln1)

0x03 边信道 (NAND Glitch)

这里必须夸奖下WINKHUB的厂商,他们通过软件升级的方式迅速修复了这几个漏洞. 但对厂商来说, 还有一种攻击方式却没那么容易修复. 这便是用硬件芯片作为切入点, 通过边信道攻击来得到ROOT权限.

有很多朋友一提到边信道攻击,就觉得是个特别高大上. 其实边信道攻击也分好几种方式. 除了大家普遍了解的信息泄露之外, 错误注入攻击(Fault Glitch) 也是很常见的一种攻击方式.

x04 NAND Glitch 实战

(视频演示 WinkHubVuln2)

0X05 总结

通过这个案例, 相信大家对嵌入式攻击方式有了更多的了解. 同时汪汪也希望在开发一款嵌入式设备的时候, 开发者们也可以多从攻击者的角度考虑. “Think like an attacker” 绝不仅仅是说说而已, 因为剑走偏锋, 逆其道行之. 攻击者往往会从你想不到的地方作为攻击点.

0x06 参考文献

http://www.wink.com/products/wink-hub/

https://www.exploitee.rs/index.php/Wink_Hub

源链接

Hacking more

...