根据周三发表的研究,政府、治安维持者和犯罪黑客有了一种新方法来破坏运行广泛使用的攻击软件 Cobalt Strike 的僵尸网络。 Cobalt Strike 是渗透测试人员用来模拟网络中恶意活动的合法安全工具。在过去几年中,代表民族国家工作或寻求利润的恶意黑客越来越多地接受了该软件。对于防御者和攻击者,Cobalt Strike 提供了一个完整的软件包集合,允许受感染的计算机和攻击者服务器以高度可定制的方式进行交互。该安全工具的主要组件是 Cobalt Strike 客户端(也称为 Beacon)和 Cobalt Strike 团队服务器,后者向受感染的计算机发送命令并接收它们泄露的数据。攻击者首先启动运行 Team Server 的机器,该机器已配置为使用特定的“延展性”自定义,例如客户端向服务器报告的频率或定期发送的特定数据。然后攻击者在利用漏洞、欺骗用户或通过其他方式获取访问权限后,将客户端安装在目标机器上。从那时起,客户端将使用这些自定义来保持与运行 Team Server 的机器的持久联系。将客户端连接到服务器的链接称为 Web 服务器线程,它处理两台机器之间的通信。通信中的主要内容是服务器发送的“任务”,以指示客户端运行命令、获取进程列表或执行其他操作。然后,客户端以“回复”进行响应。安全公司 SentinelOne 的研究人员最近在 Team Server 中发现了一个严重错误,可以很容易地使服务器永久脱机。 SentinelOne 研究员 Gal Kristol 在一篇文章中写道,该漏洞的工作原理是发送服务器虚假回复,“从 C2 的 Web 服务器线程中榨取所有可用内存”。这将允许攻击者在 Cobalt Strike 服务器(“Teamserver”)中造成内存耗尽,使服务器在重新启动之前无响应。这意味着在操作员重新启动服务器之前,实时信标无法与其 C2 通信。
但是,重新启动并不足以抵御此漏洞,因为在修补或更改 Beacon 配置之前,可能会反复瞄准服务器。其中任何一个都会使现有的实时信标过时,因为在使用新配置更新它们之前,它们将无法与服务器通信。因此,此漏洞有可能严重干扰正在进行的操作。执行攻击所需的只是了解一些服务器配置。这些设置有时会嵌入到 VirusTotal 等服务提供的恶意软件样本中。任何可以物理访问受感染客户端的人也可以获得这些配置。为了简化这一过程,Sentinel One 发布了一个解析器,可以捕获从恶意软件样本、内存转储以及有时客户端用于连接服务器的 URL 中获取的配置。一旦掌握了这些设置,攻击者就可以使用解析器附带的通信模块伪装成属于服务器的 Cobalt Strike 客户端。直接从活动的 C2 中解析信标的配置(如流行的 nmap 脚本),即使服务器没有先发送相应的任务,假客户端也可以发送服务器回复。 Team Server 软件中的一个错误(编号为 CVE-2021-36798)阻止其拒绝包含格式错误的数据的回复。一个例子是客户端上传到服务器的屏幕截图附带的数据。 “通过操纵屏幕截图的大小,我们可以让服务器分配任意大小的内存,其大小完全由我们控制,”Kristol 写道。 “通过将 Beacon 通信流程的所有知识与我们的配置解析器相结合,我们拥有伪造 Beacon 所需的一切。”
虽然漏洞可以用来对付白帽黑客和黑帽黑客,但后者可能最容易受到漏洞的威胁。这是因为大多数专业的安全维护者都为使用 Cobalt Strike 的许可证付费,而相比之下,许多恶意黑客获得了该软件的盗版版本。 Cobalt Strike 创建者 HelpSystems 提供的补丁需要时间才能泄露给盗版软件的人。它现在可供许可证持有人使用。