当用户在安装森海塞尔的HeadSetup软件时,很少有人知道这个软件还会在“受信任的根证书颁发机构存储库”中安装一个根证书。除此之外,它还会安装一个加密版本的证书私钥,而这是一种非常不安全的行为。
没错,这种证书及其对应的私钥对于任何安装了这款软件的用户来说都是相同的。这样一来,攻击者就可以在成功解密密钥之后,颁发一个其他网站域名下的伪造证书了,而此时,当用户访问了这些网站的时候,攻击者将能够通过执行中间人攻击来嗅探目标用户的网络通信流量。
解构
虽然这些证书文件会在用户卸载HeadSetup软件时被删除,但是可信任的根证书却不会被移除。这将使得拥有正确私钥的攻击者在目标用户卸载了HeadSetup这款软件之后,继续实现嗅探攻击。
当HeadSetup安装完成之后,它会在目标计算机中存放两个证书。该软件会使用这些证书以及TLS加密的Web套接字来与耳机通信。第一个证书名为SennComCCCert.pem,它是一个根证书,而SennComCCKey.pem是证书的私钥。
研究人员在分析这个私钥文件时发现,它采用了AES-128-CBC加密,而且需要找到正确的密码才能解密。由于HeadSetup程序同样需要使用这个解密密钥,因此这个密码肯定存储在软件里的某个地方,研究后发现密码存储在一个名叫WBCCListener.dll的文件里。
研究人员解释称:“为了解密私钥文件,我们需要弄清楚它所使用的加密算法以及密钥,我们首先猜测,供应商采用的是常见的AES加密算法(CBC模式,128位密钥)。在HeadSetup安装目录内,我们只发现了一段可执行代码中包含有文件名‘SennComCCKey.pem’和DLL文件‘WBCCListener.dll’。我们搜索了这个DLL中包含“AES”的字符串,最终发现了AES-128.cbc的标志,而且还是以明文形式存储的。”
在把解密私钥转换为标准OpenSSL PEM之后,研究人员还需要一个密码来使用它。这个密码存储在一个名叫WBCCServer.properties的文件中:
得到了访问根证书的私钥之后,研究人员就可以生成大量可用于对google.com、sennheiser.com、以及其他耳机厂商的流量进行签名的证书了,比如说jbl.com、harmankardon.com和bose.com等等。
由于这个证书使用的相同私钥创建的,那么其他设备同样也无法幸免。接下来,攻击者将能够利用这个证书来执行中间人攻击,最终实现拦截和篡改用户访问目标站点的通信流量。
这也就意味着,攻击者还可以创建银行网站的伪造证书,然后窃取目标用户的网银登录凭证、信用卡信息和其他敏感信息。
移除不安全的根证书目前,研究人员已经将相关问题上报给了森海塞尔公司,该漏洞分配到的ID为CVE-2018-17612。森海塞尔公司也表示,更新版本将在12月初发布,更新版本将移除可信任的根证书,并确保在软件卸载之后不会遗留任何证书。
与此同时,森海塞尔还发布了一份Batch文件,广大用户可以使用该文件来移除相关证书。研究人员强烈建议安装了HeadSetup的用户尽快运行该脚本来保护自己的安全。
微软方面也发布了相关的安全公告(ADV180029),并解释称,微软已经发布了更新版本的可信证书列表,并从原先列表中移除了相关的恶意证书。
* 参考来源: bleepingcomputer ,FB小编Alpha_h4ck编译,转载请注明来自CodeSec.Net