# Cobalt Strike:使用已知的私钥解密流量-Part 1

博客系列:Cobalt Strike:流量解密

  • Cobalt Strike:使用已知的私钥解密流量-Part 1(当前部分)

  • Cobalt Strike: 使用已知的私钥解密流量 - Part 2

  • Cobalt Strike: 使用进程内存解密流量 - Part 3

  • Cobalt Steike: 解密被掩盖的流量 - Part 4

  • Cobalt Strike: 解密DNS流量 - Part 5
    我们发现6个流氓软件Cobalt Strike的私钥,可以用来将C2网络流量进行解密

Cobalt Strike信标(客户端)和Cobalt Strike团队服务器(C2)之间的通信是用AES加密的(即使通过HTTPS进行)。AES密钥由信标生成,并使用加密的元数据blob(默认为cookie)传达给C2。

RSA加密被用来加密这个元数据:信标有C2的公钥,C2有私钥。
# Cobalt Strike:使用已知的私钥解密流量-Part 1_第1张图片
图1:C2 流量

公钥和私钥都存储在.cobaltstrike.beacon_keys文件中。这些密钥是在Cobalt Strike团队服务器软件第一次使用时产生的。在我们对面向互联网的Cobalt Strike服务器进行指纹识别时,发现许多不同的服务器都在使用公钥。这就意味着它们使用相同的私钥,因此它们的.cobaltstrike.beacon_keys文件是共享的。

我们验证了一个可能的解释:是否有被破解的Cobalt Strike版本,由恶意行为者使用,其中包括一个.cobaltstrike.beacon_keys?这个文件不是合法的Cobalt Strike软件包的一部分,因为它是在第一次使用时产生的。

查遍了VirusTotal,我发现了10个破解版的Cobalt Strike:ZIP文件中包含了一个名字是.cobaltstrike.beacon_key的文件,再总的这10个文件包中,我解压出来6种不同的RSA钥匙对。其中2个密钥对已经在互联网上流传了:在我们采集指纹的Cobalt Strike服务器(1500多个)中,有25%使用这2个密钥对中的一个。这一关键信息现在包括在工具1768.py中,该工具由Didier Stevens开发,用于提取Cobalt Strike信标的配置。

只要一个公钥与已知的私钥被提取出来时,该工具就会标注出来。
# Cobalt Strike:使用已知的私钥解密流量-Part 1_第2张图片
图2:1768.py 从beacon中解压出的配置信息

至少,这一信息进一步确认了样本来自于一个恶意的Cobalt Strike服务器(而不是红队服务器)。

使用选项verbose,私钥信息也会显示出来。
# Cobalt Strike:使用已知的私钥解密流量-Part 1_第3张图片
图3:添加verbose选项能够显示私钥信息

这可以被用于解密元数据,以及C2流量(这方面的后面细讲)

# Cobalt Strike:使用已知的私钥解密流量-Part 1_第4张图片
图4:解密元数据

在后面的博客文章中,我将展示关于如何使用私钥解析元数据和解密C2数据流的一些细节。

你可能感兴趣的:(cobalt,Strike,安全,web安全)