海思芯片存在后门风险通告

发布时间 2020-02-06

漏洞编号和级别


CVE编号:暂无,危险级别:高危,CVSS分值:官方未评定


影响版本


https://github.com/tothi/pwn-hisilicon-dvr#summary


漏洞概述


海思是一家总部位于深圳的中国半导体公司,隶属于华为,也是中国最大的集成电路设计公司,其芯片被全球数以百万计的物联网设备所使用,包括安全摄像头、DVR和NVR。


近期,俄罗斯安全专家Vladislav Yarmak公布了在海思芯片中发现的后门的利用详情,利用后门可以让攻击者获得目标设备中root权限的shell,完全控制住设备。


最新的固件版本虽然默认禁用了Telnet访问和调试端口(9527/tcp),但打开了9530/tcp端口,可以通过向包含海思芯片设备的9530端口发送一系列特殊命令来利用后门。这些命令可让攻击者在目标设备上启用Telnet服务,接着就可以使用以下六个默认Telnet凭据之一进行登录,获得一个root权限的shell。



后门激活流程如下:


1.客户端连接目标设备的9530端口,发送字符串OpenTelnet:OpenOnce,该字符串前面要加上指示消息长度的字节。该步骤对于以前版本的后门利用是最后一步。如果此步骤后没有响应,则telneted服务可能已经运行。


2.服务端(指设备)会回复randNum:XXXXXXXX,其中XXXXXXXX是8位随机数字。


3.客户端使用预共享密钥作为加密密钥,配合随机数进行以下步骤。


4.客户端利用加密密钥加密随机数字,附加在randNum:之后,再在头部添加总长度的字节,然后发送给服务端。


5.服务端从/mnt/custom/TelnetOEMPasswd加载预共享密钥,或直接使用默认密钥2wj9fsa2。


6.服务端对随机数进行加密,并验证结果是否与客户端发送过来是否一样。验证成功回复verify:OK,否则回复verify:ERROR。


7.客户端加密字符串Telnet:OpenOnce,前面带上总长度字节,CMD:字符串,然后发送给服务端。


8.服务端解密出接受到的命令。如果得到的结果等于字符串Telnet:OpenOnce,就会回复Open:OK,开启调试端口9527,启动telnet服务。


漏洞验证


PoC:https://github.com/Snawoot/hisilicon-dvr-telnet


用法:./hs-dvr-telnet HOST PSK


其中PSK默认是2wj9fsa2


示例用法


修复建议


目前厂商还未修复漏洞,可采取临时防御措施:用户可以根据需要限制对受影响设备的网络访问,只允许受信任的用户进行访问。


参考链接


https://habr.com/en/post/486856/