伪造HTTPS证书

作者:{Fr4nk, Craftsman}@ArkTeam

11月9日,维基解密曝光了名为Vault 8的新一系列CIA网络武器,其中公布的蜂巢Hive工具是一个植入框架,目的是让CIA特工能够非常隐蔽地控制其部署在受感染机器上的恶意软件,协助CIA从目标机器中以HTTPS协议和数据加密方式执行命令和窃取数据。

Hive整个框架分为四个层次。被感染机器上运行有hive框架生成的恶意植入软件。这些植入软件有着不同的后门功能,但他们至少都会与其中一个域名服务器通信。服务器表面上像是CIA后端基础设施的公共端,用来作为HTTPS请求通信的中转站,但实际目的是通过VPN去链接一个CIA隐藏服务(Blot)的功能。Blot Server根据请求来源把请求分配到不同的服务器。普通用户通过浏览器直接访问Blot Server时,由于没有带有合法的SSL验证,Blot会将流量分配给cover server,服务器会返回一个正常的网页内容给用户。若Blot 接受到客户端发送的带有有效证书的流量(只有恶意软件会发送带有有效证书的流量),那么blot就将此流量转发给Honeycomb。Honeycomb服务器接收来自恶意软件客户端的信息,CIA可以使用恶意软件在目标机器上执行任务,因此Honeycomb充当了恶意软件真正的CC服务器的作用。


图1 蜂巢HIVE框架

有意思的是在披露的源码目录下存在伪装成卡巴斯基公司的客户端认证证书client.crt,该证书的签发机构为Thawte Premium Server CA数字证书公司。这样即使流量被分析,也不会把矛头指向CIA。在分析过程中,我们提炼出伪造卡巴斯基证书部分并实现到域名劫持应用场景。

图2 蜂巢Hive中证书伪造部分结构

搭建Apache服务器+SSL模块为网站配置HTTPS,能够实现正常访问后,内网中搭建DNS服务器并完成正反向域名解析配置。通过openssl完成伪造证书的过程,并生成相关私钥KEY、证书请求文件CSR、CA证书和经CA颁发的证书CRT。


图3 相关证书文件

将证书文件添加到Apache服务器配置文件中。


图4 Apache服务器全局配置文件

重启Apache服务器、DNS服务器,通过内网用户电脑查看相关域名IP映射验证DNS服务器是否搭建完成。


图5 用户查看域名IP映射

用户访问域名www.kaspersky.com,实现安全访问网站,伪造证书成功。


图6 伪造证书并实现安全访问


图7 伪造证书与浏览器信任证书对比

通过复现证书伪造过程并应用到实际场景中,可以看到伪造HTTPS网站证书并结合其他利用手段威力强大,同时这次泄密事件的发生也再次为我们敲响了没有绝对安全的警钟。当然在实验的场景应用中最终实现HTTPS域名劫持效果是结合DNS劫持、伪造证书及权威CA的组合效果。

对此,我们给出的建议是企业保护其用户免受恶意证书的危害的最好办法是确保浏览器保持更新了最新的证书信任列表。打开浏览器中的证书吊销检查并不能够很有效地确定证书仍然有效,更好的选择是使用防火墙来深层扫描SSL加密流量,以嗅出假证书或恶意代码。安全团队还应该监控安全新闻feeds,并且在还没有可用更新而对网络的风险被认为不可接受时,应该从根存储手动删除不受信任证书。

发表评论

电子邮件地址不会被公开。 必填项已用*标注