物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

IoT 2年前 (2023) admin
231 0 0

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

简介






本文主要针对一款智能门锁进行安全分析,并探索了从硬件、固件、App到云端多个层面的安全问题。在分析过程中,发现了门锁采用的离线动态密码生成算法,并对其进行了分析。同时,利用序列号越权劫持门锁。在挖掘漏洞的过程中,我们进行了固件提取、固件分析、获取UART shell、分析App和通信协议等多种手段,从不同的角度深入分析了门锁的安全问题。
功能分析和离线动态密码生成机制






该智能门锁采用了一种离线动态密码生成算法。门锁在进入配网模式后,会生成一串经过AES加密的数据,并通过wifi模组发送给App。App需要使用管理员密码进行解密,从而得到randomcode。此时,randomcode作为生成动态密码的参数之一。另一个参数是门锁的序列号。但是,生成动态密码的过程还需要考虑时间同步的问题。如果门锁的时间与App的时间不同步,就可能导致生成的动态密码无效,无法开锁。

App分析和动态密码生成过程追踪






如下图,getYb方法的作用是根据输入的 wifiSN randomCode 字符串计算出一个临时密码。

1.首先判断输入参数 wifiSN randomCode 是否为空,若为空则返回空字符串 “”

2.将输入参数 wifiSN randomCode 以及一个时间戳拼接在一起,生成一个新的字符串 str

3.str 字符串转换为字节数组 bytes,并使用 SHA-256 哈希算法对其进行哈希运算。

4.取哈希结果的前 4 个字节,将其转换为长整型数 l,通过调用 i(byte[] p0) 方法实现转换。

5.l 进行 0xf4240 取模运算,得到一个不超过 0xf4240 的非负整数。

6.将取模运算的结果转换为字符串类型,并在其前面补充若干个 “0”,使得 yb 的总长度为 6 个字符。

7.返回临时密码。

总结就是该方法的作用是生成一个临时密码,该字符串的值由 wifiSN randomCode 字符串以及当前时间戳经过 SHA-256 哈希算法计算得出,并对一个固定数值 0xf4240 取模运算得到一个 0 0xf4240-1 之间的整数。临时密码的长度为 6 个字符,其中前面可能会补充若干个 “0”

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端由此可知生成需要序列号以及一个未知的randomCode参数

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

随机码的产生过程定位






1.通过抓包分析和逆向工程,定位到了门锁绑定接口的位置

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

2.在绑定接口的代码中,通过调用 getStringExtra(“wifilockRandomCode”) 方法获取了随机码。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

3.为了追溯随机码的产生过程,使用全局搜索找到了随机码赋值的位置。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

4.下图就是赋值randomcode的方法,在m14595e方法中首先将输入的字符串进行补0操作,再进行 SHA-256 的摘要计算;将摘要值与输入的字节数组进行 AES 解密操作,得到随机数和校验和;对随机数进行 CRC32 校验,与解密得到的校验和进行比较,判断是否匹配。

其中,第一步是对输入的密码进行处理,以便于后续的加密和解密操作。第二步是通过密钥将输入的字节数组进行解密,得到随机数和校验和。第三步是对随机数进行 CRC32 校验,以验证其合法性。

我们只关心randomcode的生成也就是bArr4,根据代码分析得知调用m20569e进行aes解密之后得到了e2,其中参数一是由m14595e中的参数二取0-32得来,参数二是由m14595e的参数一补0然后sha256得来。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

5.通过回溯调用关系可以推断参数一为门锁的管理员密码,参数二为AP模式下设备发给app的aes加密过的数据。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

wifi模组固件提取






1.通过芯片手册还可以得知其是外置flash,拆下来的flash芯片将其焊接到转接板上。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

2.放入编程器读取固件,编程器识别出flash芯片型号。读取固件另存为bin文件,这里实际是RISCV 32bit 小端序。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

串口shell






1.可以看到主板上预留的uart接口,查看芯片手册可以确认芯片预留有uart和spi接口。现在开始连接uart接口先接GND让主板和ch340共地然后主板的rx与ch340的tx相连接,主板的tx与ch340的rx相连接。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

2.连接电脑后设置波特率等参数获得shell,如下是输出的日志。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

AES加密数据分析和随机码的推测






1.在进行配网的时候查看wifi模组日志看到g_tx_buffer[45]app中大小一致且是在配网过程产生的由此可以推测打印出的这串数据很有可能就是randomcode aes加密过的数据。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

2.查看固件可以看到序列号,连接的wifi名,密码等,设置好固件架构,基地址等搜索字符串send opf data定位到日志输出的位置回溯,FUN 230acdd8的代码表示将0x4201cc08处的内容赋值给DAT_420122d0.

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端3.在门锁进入配网模式后可以看到0x4201cc08有了内容。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

4.全局搜索-0x3f8的位置查看操作0x4201cc08的位置,下面代码0x4201cc08开始到0x4201cc28就是aes加密过的randomcode,0x4201cc28开启0xe个字节这里其实是设备的序列号,他们都取决于参数二。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

5.回溯看到可能是一个回调函数。推测参数二可能是门锁向wifi模组传输的数据。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

6.同时发现在进入配网模式后wifi模组会recv一段data而这串数据包含0x4201cc08的内容,由此可以确定aes加密过的数据是在门锁固件里面生成发给wifi模组的。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

7.下面是把wifi模组recv dataaes加密的部分拿出来,并使用管理员密码对其aes解密得到的就是randomcode

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

8.那这里如果想知道randomcode怎么生成的就需要提一下门锁固件了,要说明的是固件存放的位置一般分为两种,一种是集成在MCU中,另外一种是单独放在一块芯片上,这里的芯片没有找到datasheet,所以就直接把看着像外置flash的芯片提了一下发现都不是,难受噢,不过想了两种情况:

第一种:门锁->随机数->sha224->randomcode

第二种:门锁->随机28个字节的十六进制数->randomcode

后面有机会在验证下!

序列号越权劫持门锁






1.回到绑定过程,请求包是加密的,对其hook可以看到包含六个参数,其中包含了设备的序列号,用户idrandomcode等。因为randomcode是门锁生成的通过ap模式传给了appapp会把randomcode发给云端保存,但是在这里randomcode云端是没有校验的。所以我们要想劫持门锁app权限,只需要将arg0arg1写成我们想要劫持的设备的序列号就可以了。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

2.然后逆向一下算法写个脚本跑一下就可以劫持指定序列号的门锁获取其app权限了。

物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

总结






在本文的分析过程中,我们探索了一款智能门锁的多个安全层面,包括从硬件、固件、App到云端。通过固件提取、分析、获取UART shell、分析App和通信协议等多种手段,从不同的角度挖掘了门锁的安全问题最后,希望大家能够喜欢这个分享内容,有什么想要讨论的,可以随时联系。




原文始发于微信公众号(DX安全实验室):物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端

版权声明:admin 发表于 2023年4月18日 上午8:53。
转载请注明:物联网 | 智能门锁安全分析:多方位探索硬件、固件、app和云端 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...