狗汪汪玩转嵌入式——I2C 协议分析
按:嵌入式产品Hacking一直都是备受关注的议题,而越来越多的攻击者也瞄上了物联网嵌入式设备。跟以往纯软件安全研究不同的是,这类研究往往需要结合相应的硬件知识和设备。如何能快速入门嵌入式系统?邀请了狗汪汪,分享针对I2C协议的实战案例和相应的工具使用。希望可以一起来Hackingall the Things。
本文由阿里云先知社区小冰推荐。
0x01 I2C协议基础
凡是接触过嵌入式系统的朋友,对I2C协议一定不会陌生。其与UART,SPI和JTAG等并列为最常见调试协议。I2C 全称为Inter-IntegratedCircuit,是由飞利浦公司设计的一种多主从架构的串口通讯协议。
I2C协议非常简单,仅有Clock 和 Data 两条数据总线,外加 Ground.通常是1个主设备和多个从设备的架构。在通讯速度上分别为100khz,400khz,1Mhz,3.2Mhz。在运用方面对速度没有高要求的,都可以使用I2C进行通讯。比如PC风扇的温度和电池的电压数据采集等,每个I2C设备都各有一个读和写地址,只有知道了这个读写地址才能跟其通讯。
除此之外许多用来存储系统配置和参数的EEPROM芯片自身也支持I2C协议,比如IBM Thinkpad 系列用来存储BIOS密码的EEPROM,就是通过I2C协议在MCU与EEPROM 之间进行交互。
0x02 神器BusPirate
工欲善其事必先利其器,拥有一款神器对嵌入式设备Hacking将起到事半功倍的作用。BusPirate 是由Dangerous prototypes设计出品的一款硬件hacking 瑞士军刀,支持多项常见协议并可跨平台Windows/Linux/MAC,并拥有丰富的帮助文档。
BusPirate可以Sniffing 和读写 I2C等协议,同时还可对AVR 等芯片进行编程操作,在操作上也是非常简单,只需用minicom以115200 波特率跟BusPirate连接便可。
BusPirate支持协议如下:
BusPirate 接口连接示意图:
BusPirate 命令列表:
0x03 攻击案例 -- 数字密码锁
接下来我们来看一个通过分析I2C 协议,从而破解门锁密码的实战案例,我们的目标是这款 型号为YL99的数字密码锁。这款密码锁完全依赖于用户设置的数字密码,也许对某些人来说不需要带一堆钥匙的确方便了很多。
因为YL99 是完全电子化的的门锁,所以提供了普通机械锁没有的功能。比如YL99 拥有多 个功能不同的账户,Master账户:可用于设置管理用户密码(默认0123#)。普通账户:用于存储普通用户密码。YL99 同时还提供了贴心的防密码泄漏功能,操作方法:键入起始码(0) +跟随用于掩盖的任意几位数字+ 跟随正确密码 + # (确认结束). 通过这样的方式就算边上有人,也不怕被看到正确密码了。
但是千里之堤,溃于蚁穴。YL99 的设计缺陷,竟能让人从外部将锁的键盘部分分离,从而访问到内部PCB 主板。而玩过硬件Hacking的朋友都知道,被人轻易访问到内部PCB 主板部分是大忌。
在YL99被打开后主板结构便展现眼前。除了YL99 使用的元器件外,我们还可以清晰看到主板上还标有一个Reset复位触点。那么这个时候我们便可以通过短接复位触点和Ground 的方式将密码恢复到出厂设置,从而得到bypass的目的。但这方法的短处也非常明显,在bypass 的时候每次都需要卸螺丝,而且如果恢复到出厂值,很容易就被人发现了。
演示视频如下:https://www.youtube.com/watch?v=4sqDXkUQbqM
不过好戏才刚开始。我们在主板上还发现了YL99使用的MCU em78p156e 和用来存储密码信息的EEPROM 24C02。通过阅读24C02的datasheet 我们得知其使用I2C 协议和MCU 通讯,同时datasheet 也清晰的标出了芯片管脚的用途,比如I2C 使用的SCL(时钟频率)和SDA(数据总线)。
终于我们的神器BusPirate要派上用场了。我们首先用数据线将24C02的I2C 管脚和BusPirate的对应接口连接起来。
随后通过minicom 或其他serial tools 进入Buspirate的I2C调试模式。
在I2C 的调试模式中,有个非常有用的功能I2C sniffer。通过它我们可以监控I2C 的数据,用过WIRESHARK 的朋友一定不会陌生。
开启了I2C Sniffer 模式后,我们便可开始观察MCU 和 EEPROM之间的密码交互。比如YL99 的密码输入过程为起始码(0) + 正确密码 +结束确认(#)。
通过观察发现在按下结束确认(#) 后,MCU 便向24C02 发送密码验证请求。但随后致命的设计错误出现,EPPROM 24C02将正确的密码以明文的方式发回给MCU 以求完成密码验证过程,而这过程我们通过BusPirate 的I2C sniffer一览无遗。
▲如图:因为使用的little endian 所以密码 123 和456 会反着显示
0X04 总结
通过本文的介绍和实践案例,相信大家对I2C协议和利用方式有了一定的了解。剑走偏锋,反其道行之。攻击者往往将系统的短板作为攻击点,倘若某款嵌入式系统的设计者仅仅考虑到软件层面的安全,而攻击者又能得到物理访问的话,那些防御方式便形同虚设。同时嵌入式产品往往面临上市后便难以升级的困难,一旦攻击方式曝光由此给产品带来的损失是巨大的,因此安全产品在设计之初即应将安全考虑进去。
0x05 参考文献
https://learn.sparkfun.com/tutorials/i2c
http://dangerousprototypes.com/docs/Bus_Pirate
https://code.google.com/archive/p/the-bus-pirate/
http://dangerousprototypes.com/blog/bus-pirate-manual/i2c-guide/
http://arduino.ada-language.com/recovering-ibm-thinkpad-t42-bios-password-with-avr-ada-and-arduino.html
推荐系统
番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载
语言:中文版系统大小:3.98GB系统类型:Win10雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载
语言:中文版系统大小:3.98GB系统类型:Win10电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.15GB系统类型:Win10
相关文章
- 对中东石油和天然气供应链产业的APT攻击
- Gartner发布2020年端点安全技术成熟度曲线报告
- 苹果手机微信聊天记录删除了怎么恢复?
- 专访 HackerOne COO 王宁:尊重规则是漏洞平台成功的秘诀,欢迎更多成人网站进驻 | 宅客
- Win10搜索没有结果
- Edge浏览器总是出现选择以设置Adobe flash
- 王者荣耀中如何赠送好友英雄?
- 加密解密那些事之SSL(https)中的对称加密与非对称加密
- Getright 5 手动脱壳和重建IAT--第一部分(图)
- 内存不能为read修复方法 解决内存不能为read
- 软件安装过程出现错误,无法修改系统设置
- 技嘉遭勒索软件攻击 黑客威胁称不支付赎金就公开112GB内部数据
- 解决Win10专业版系统更新后网络变慢的问题
- 齐向东:数字经济开采“数据富矿”要安全第一、守住红线
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 3深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 4电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1华硕笔记本&台式机专用系统 Windows10 企业版 2018年4月(64位) 提供下载
- 2电脑公司 装机专用系统Windows10 x64 企业版2022年6月(64位) ISO镜像高速下载
- 3深度技术 Ghost Win7 x64 Sp1 电脑城纯净版2020年3月(64位) ISO镜像高速下载
- 4电脑公司Ghost Win7 Sp1 装机万能版2019年12月(32位) 提供下载
- 5深度技术Ghost Win7 Sp1 电脑城万能装机版2020年5月(32位) ISO高速下载
- 6电脑公司Ghost Win7 Sp1 装机万能版2018年10月(32位) 提供下载
- 7新萝卜家园 Ghost Win7 x64 SP1 极速版2020年3月(64位) 高速下载
- 8番茄花园Ghost Win8.1 x64 办公纯净版2021年10月(激活版) ISO镜像高速下载
- 9深度技术 Ghost Win7 Sp1 电脑城万能装机版2018年7月(32位) ISO镜像免费下载
- 10深度技术Ghost Win8.1 x32位 特别纯净版2021年9月(免激活) ISO镜像高速下载