转载|某智能锁破解

2021-07-07 19:09:38 浏览数 (1)

年初疫情期间撸了把门锁,上交 CNVD 了。近日漏洞信息公开了,我自闭了。

下图是 CNVD 上其中的一个漏洞信息,漏洞描述请忽略(经后台修改过)。

反馈邮件也没人回!呜呜~~

技术细节(部分)

网关预留了不少的调试口,MCU也没有开启CRP(Code Read Protection)。

  • 透传网关: MTK MT7688KN
  • FLASH: 兆易创新 SPI FLASH GD25Q16CSIG datasheet
  • MCU: STM32F030
  • 射频芯片: Silicon si4338

固件提取

MCU 固件通过 SWD 提取,MTK MT7688KN 固件可以从 telnet 或者从Flash拿到。以下是使用 OpenOCD 提取MCU固件。

代码语言:javascript复制
root@kali:~# telnet 127.0.0.1 4444> halt
target halted due to debug-request, current mode: Thread
xPSR: 0x21000000 pc: 0x0801a8de msp: 0x20007990
> flash list
{name stm32f1x base 134217728 size 0 bus_width 0 chip_width 0}
> dump_image lock.bin 0x0 0x4000
dumped 16384 bytes in 0.246591s (64.885 KiB/s)
> dump_image lock_code.bin 0x0 0x2000000
SWD DPIDR 0x0bb11477
Failed to read memory at 0x00008000
mem_helper.tcl:6: Error:
in procedure 'stm32f0x_default_examine_end' in procedure 'mmw' called at file "target/stm32f0x.cfg", line 65in procedure 'mrw' called at file "mem_helper.tcl", line 25at file "mem_helper.tcl", line 6> dump_image lock_code.bin 0x0 0x8000
dumped 32768 bytes in 0.475478s (67.301 KiB/s)
> dump_image lock_flash.bin 0x8000000 0x40000
dumped 262144 bytes in 3.812859s (67.141 KiB/s)
> dump_image  lock_flash_systemMemory_sraw.bin 0x1fffd800 0x2000
dumped 8192 bytes in 0.118082s (67.750 KiB/s)

Ghidra 分析定位到主函数。

Si 4438 中心频率计算

由于 LaTex 乱码,就只贴最终的分析结果。分析过程以后在放出来,也比较有意思,也是花了好几天才看懂 datasheet。

POC

WiFi 模块存在硬编码

WIFI 模块支持快速联网,使用了默认密码。

劫持网关开锁 DEMO

0 人点赞