FakeTLS恶意加密流量分析
日期:2022年09月02日 阅:83
观成科技安全研究团队近期发现一款使用FakeTLS技术进行加密通信的工具,可以创建一个C2服务器和恶意木马客户端,利用 FakeTLS 技术伪装TLS协议通信,在加密载荷中传输命令控制信息。
Client Hello 消息中的 TLS 扩展之一Server Name,该字段的服务器名称为“www.bing.com”,如下面数据包内容中标注的,它通过使用信誉度高的常见域名,来伪装成知名网络服务提供商的TLS流量:
通过分析源码,在伪造Client Hello消息时,它将从13个知名域名中随机挑选一个:
Server Hello 消息中的其余字节,有些是硬编码的,有些是随机生成的,这两种情况的源代码代码片段如下所示,通过这种方式组合出Server Hello、Change Cipher Spec等消息:
Server Hello 包数据
Change Cipher Spec 消息中使用的硬编码字节
TLS握手消息中使用的硬编码字节和随机字节
服务端发送加密的命令使用byte{0x17, 0x03, 0x03}硬编码,作为命令控制包的头部,客户端发送加密返回数据使用0x17, 0x03, 0x03,0x00硬编码,作为返回数据包的头部。事实上是伪装成TLS的Application Data消息。
服务端发送加密的命令
客户端返回数据
有效数据传输部分并未使用TLS握手中协商的密钥和算法进行加密,而是将命令和响应消息经过RC4加密后伪装成TLS加密载荷传输。在下图的例子中,我们发送了ls列出当前目录中文件的命令。加密不会改变消息的长度,因此我们以看到发送的命令与“ls”的长度(两个字节)匹配。在第二张图中也是如此,它显示了从受害者中返回的加密响应消息(60 字节)。使用的加密密钥为key[16] = {0x79, 0xE1, 0x0A, 0x5D, 0x87, 0x7D, 0x9F, 0xF7, 0x5D, 0x12, 0x2E, 0x11, 0x65, 0xAC, 0xE3, 0x25 };
使用 RC4 加密发送的命令“ls”
接收到的使用 RC4 加密的目录列表数据包
使用密钥解密返回数据包为目录列表
FakeTLS技术在较知名的几个APT组织中曾经有过使用。大致分为两类,一类是建立TCP连接,伪装整个密钥协商过程和加密数据交互过程;另一类是建立TLS连接,正常进行密钥协商过程,但是后续加密数据交互过程并不是密钥协商后的TLS连接,而是直接利用TCP连接进行伪装。本文所述的工具为第一类FakeTLS。此工具通过TCP连接伪装TLS的流量通信,按照TLS协议规范固定结构的硬编码和非固定结构的随机编码相结合,辅之以在Server Name扩展中填入知名网站,让流量看起来与正常的TLS通信极其相似。这种流量伪造方式灵活多变,使得加密流量的检测难度进一步提升,经过深入分析后才能形成检出能力。
目前瞰云-加密威胁智能检测系统(ENS)对该工具已具备检测能力。观成科技安全研究团队一直针对各类加密协议的最新威胁保持密切跟踪,并随时更新方案进行应对。
观成科技成立于2018年8月,由国内一流安全团队创建,团队核心成员拥有十余年的攻防对抗、产品研发、安全分析、人工智能的实战经验。 观成科技坚持“自主研发、持续创新”,公司将人工智能、攻防技术和密码技术相结合,在国内首家推出针对加密流量AI安全检测、防御的创新型产品,产品已申请加密流量检测相关国家发明专利20余篇,应用在军工、网信、部委、央企等重要客户,并被多个央企、龙头安全企业选为合作伙伴。 公司2019年6月获得联想之星、基石基金的天使轮投资;2021年2月获得奇安投资、基石基金的Pre-A投资。