专门“坑害”僵尸网络服务器的Cobalt Strike漏洞
2021-08-17
来源:安全牛
日前,渗透测试工具Cobalt Strike爆出一个有趣的漏洞,由于该漏洞的补丁仅发送给正版用户,因此对那些使用该工具的盗版用户,包括数量庞大的僵尸网络系统,将会因为未能及时修复漏洞而面临被“攻击”的威胁。
众所周知,Cobalt Strike是渗透测试人员用来模拟网络中恶意活动的合法安全工具。在过去几年中,各种黑客团伙正在越来越多地使用该软件。对于防御者和攻击者来说,Cobalt Strike提供了一个完整的软件包集合,允许受感染的计算机和攻击者服务器以高度可定制的方式进行交互。
Cobalt Strike的主要组件是Cobalt Strike客户端(也称为 Beacon)和Cobalt Strike团队服务器(Team Server),后者向受感染的计算机发送命令并接收它们泄露的数据。攻击者首先启动一台运行Team Server的机器,该机器已配置为使用特定的“延展性”自定义,例如自定义客户端向服务器报告的频率或定期发送特定数据。
然后攻击者在利用漏洞、欺骗用户或通过其他方式获取访问权限后,将客户端安装在目标机器上。接下来,客户端将使用这些自定义来保持与运行Team Server机器的持久联系。
将客户端连接到服务器的链接称为Web服务器线程,它处理两台机器之间的通信。通信中的主要内容是服务器发送的“任务”,以指示客户端运行命令、获取进程列表或执行其他操作。然后客户端以“回复”进行响应。
安全公司SentinelOne的研究人员Gal Kristal在Team Server中发现了一个严重的漏洞,可以很容易地使服务器脱机。该研究员表示:“该漏洞的工作原理是发送服务器虚假回复,从C2的Web服务器线程中榨取所有可用内存。”
执行攻击所需的只是了解一些服务器配置。这些设置有时会嵌入到VirusTotal等服务提供的恶意软件样本中。任何可以物理访问受感染客户端的人都可以获得这些配置。
为了简化这一过程,Sentinel One发布了一个解析器,可以捕获从恶意软件样本、内存转储以及客户端用于连接服务器的URL中获取的配置。一旦掌握了这些设置,攻击者就可以使用解析器附带的通信模块伪装成属于服务器的Cobalt Strike客户端。
据了解,该工具能够:
解析Beacon的嵌入式Malleable配置文件说明
直接从活动的C2解析信标的配置(如流行的nmap脚本)
作为假信标与C2通信的基本代码
即使服务器没有先发送相应的任务,假客户端也可以发送服务器回复。Team Server软件中的一个漏洞(编号为CVE-2021-36798)阻止其拒绝包含格式错误的数据的回复。一个例子是客户端上传到服务器的屏幕截图附带的数据。
“通过操纵屏幕截图的大小,我们可以让服务器分配任意大小的内存,其大小完全由我们控制,通过将Beacon通信流的所有知识与我们的配置解析器相结合,我们拥有伪造Beacon所需的一切。”Kristal写道。
虽然这个漏洞理论上可以同时用来攻击白帽黑客和黑帽黑客,但有趣的是,后者可能最容易受到漏洞的威胁。这是因为大多数专业的安全维护者都购买了Cobalt Strike的许可证,而相比之下,许多恶意黑客都在使用该软件的盗版版本。