年初疫情期间撸了把门锁,上交 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 模块支持快速联网,使用了默认密码。