渗透测试神器Cobalt Strike的“双面间谍”身份分析

栏目: 编程工具 · 发布时间: 5年前

CobaltStrike是一款内网渗透的商业远控软件,支持自定义脚本扩展,功能非常强大,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端只有一个,而客户端则有多个,可让团队进行分布式协同操作。

Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、 java 程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。

2018年11月,Github上有人放出了CobaltStrike3.12的试用版。不过在2019年1月2日,Cobalt Strike 3.13版本发布,其中包含一个“外部空间”的修复程序。在过去一年半的时间里, Fox-IT(荷兰安全公司)正是使用服务器响应中这种不常见的whitespace来监测Cobalt Strike服务器的。WhiteSpace,是一种只用空白字符(空格,TAB和回车)编程的语言,而其它可见字符统统为注释。Whitespace是一种深奥难懂的程序设计语言,由Edwin Brady和Chris Morris开发,2003年4月1日发布。

为什么要对Cobalt Strike进行安全监测并进行快速的更新呢?

Cobalt Strike已经存在了十多年,但在过去的五年中,由于Cobalt Strike的易用性和可扩展性,它已经被攻击者给利用了。在过去几年中,Cobalt Strike已经成为他们的 工具 包,例如FIN6、FIN7(Carbanak)、APT29等黑客组织。攻击者使用Cobalt Strike来托管他们的C&C服务器,然后通过它在受感染主机上部署恶意软件。Cobalt Strike由于其特殊的“双面间谍”身份,使其成为安全研究人员研究野外威胁的重要途径。

但是,由于Fox-IT研究人员在Cobalt Strike服务器组件中发现了一个漏洞。该漏洞基于Java的网络服务器NanoHTTPD构建,所以攻击并不知道Fox-IT使用这个不常见的whitespace来检测信标与其C&C服务器之间的Cobalt Strike通信,通过该漏洞研究人员已经揭露了数千个恶意软件命令和控制(C&C)服务器的位置。其中一些IP地址可能属于安全公司为测试目的而托管的合法Cobalt Strike实例,但Fox-IT认为其中许多也来自黑客组织。直到2019年1月2日,Cobalt Strike开发人员在Cobalt Strike 3.13版本中修复了这个漏洞。

在本文中,安全研究人员将发布一个完整的服务器列表,以供读者检查其基础设施的日志记录和安全控制情况。

由于Cobalt Strike是使用Malleable C&C配置文件进行配置的,该配置文件可用于自定义其信标的行为,使用户能够模拟野外攻击利用中的TTP (Time-Triggered Protocol)。由于该框架在模拟攻击的框架上设计的非常成功,这也导致该软件的盗版使用现象非常严重,这也意味着对Cobalt Strike 3.13的更新,在未来需要很长一段时间才能完成。所以,在未来扫描期间出现的大多数服务器很可能是恶意软件操作的一部分。

Cobalt Strike团队服务器

虽然Cobalt Strike的植入组件被称为“信标”,但服务器组件被称为“团队服务器(team server)”。由于服务器是用Java编写的,操作员可以连接到服务器,使用用户界面管理Cobalt Strike信标并与之交互。另外,团队服务器还充当信标连接到的网络服务器,用于命令和控制,但也可以将其配置为服务信标有效载荷、登录页面和任意文件。

通过使用诸如Snort之类的入侵检测系统(IDS)签名,可以对与这些服务器的通信进行指纹识别。但是如果对信标进行了过多的自定义,并且使用了自定义的TLS证书,识别过程就会很麻烦。这时,就需要通过应用其他指纹识别技术(如下一节所述),才能绘制出可以公开访问的Cobalt Strike团队服务器的精准画像。

识别Cobalt Strike团队服务器

Fox-IT采用 InTELL 分析方法,对HTTP标头异常进行了分析,他们发现了Cobalt Strike团队服务器在对恶意活动进行全球调查时,会出现一个不寻常的外部空间。尽管这是一个偶然的现象,但对于安全研究人员来说,诸如此类的细节可以让他们捕获与恶意活动相关的重要信息。在捕获这一细节后,安全研究人员觉得有必要对团队服务器的设置进行额外的研究,这最终导致Fox-IT能够更好的保护他们的客户免受用Cobalt Strike漏洞的影响。

Cobalt Strike中团队服务器的网络服务器基于NanoHTTPD,这是一个用Java编写的开源网络服务器。但是,此网络服务器会在无意中在其所有HTTP响应中返回多余的whitespace,乍一看很难发现它们,但经过仔细观察,Cobalt Strike网络服务器的所有HTTP响应中都有多余的空格。

渗透测试神器Cobalt Strike的“双面间谍”身份分析

利用这些多余的空格,可以识别NanoHTTPD服务器,包括可能的Cobalt Strike团队服务器。安全研究人员发现公共NanoHTTPD服务器不如团队服务器常见。即使团队服务器使用Malleable C2 Profile,由于“外部空间”的存在,仍然可以识别服务器。

Cobalt Strike利用Malleable-C2-Profiles来进行伪装流量,实现通信隐匿的效果。具体过程是研究人员对cobalt strike的server端进行隐藏,伪造成一个正常的Web服务器,以此来伪装流量,最终达到通信隐匿的效果。

如上所述,“外部空间”在2019年1月2日发布的Cobalt Strike 3.13中得到修复。假设它自2012年发布以来首次使用NanoHTTPD,这意味着这一漏洞已经在Cobalt Strike中有近7年的历史了。如果仔细观察,你还可以在一些 YouTube视频 中找到2014年的对这个“外部空间”的讲解。

渗透测试神器Cobalt Strike的“双面间谍”身份分析

在更改日志中记录了删除这个“外部空间”的事实,这使安全研究人员相信Cobalt Strike开发人员已经意识到这样一个空间在服务器响应中的含义,以及它对攻击者的潜在价值。

渗透测试神器Cobalt Strike的“双面间谍”身份分析

上面突出显示的更改日志项指的是删除的空间是“无关的”,在字面上的意思是不相关或无关的。由于其作为指纹识别机制的重要性,此描述在此处存在争议。

扫描和结果分析

通过利用Rapid7 Labs Open Data等公共扫描数据,以及如何对NanoHTTPD服务器进行指纹识别的知识,安全研究人员可以识别互联网上可公开访问的团队服务器的历史状态。

渗透测试神器Cobalt Strike的“双面间谍”身份分析

上图显示了端口80和443上Cobalt Strike(NanoHTTPD)网络服务器的稳定增长,这是该框架日益普及的一个佐证。自2019年开始,这使用量就开始下降了,很可能是由于“外部空间”被修复,因此在应用指纹时不会出现在扫描数据中。

总体而言,Fox-IT在2015-01和2019-02期间观察到7718个独立的Cobalt Strike团队服务器或NanoHTTPD主机。下表就是恶意攻击者使用的Cobalt Strike团队服务器的几个示例:

渗透测试神器Cobalt Strike的“双面间谍”身份分析

使用此方法识别的Cobalt Strike团队服务器的完整列表可以在 Fox-IT GitHub存储库 中找到。

请注意,此处列出的是可能合法的NanoHTTPD服务器,并且其中某些IP地址可能已经被快速替代或重用了,例如成为Amazon或Azure云基础架构的一部分。

因此,安全研究人员建议调查与这些IP地址的相关的连接。首先要验证请求的URI是否与Cobalt Strike信标校验和匹配,或者使用passive DNS收集DNS历史数据。根据isc.org的描述,被动DNS最初于2004年由Florian Weimer发明,旨在对抗恶意软件。根据其定义,递归域名服务器会响应其接收到的来自其它域名服务器的请求信息,然后对响应信息进行记录并将日志数据复制到中央数据库当中。

另请注意,此列表既包含合法操作的服务器,又包含非法操作的服务器,因为这些服务器无法轻易区分。Fox-IT就是利用的这个漏洞的构建和传播的攻击属性,特别是出于安全测试目的。安全研究人员认为发布此列表(允许每个人追溯检测不需要的攻击)的好处超过了缺点,所谓的缺点就是可能影响正在进行安全防护项目。安全研究人员认为,发布此列表可以全面提高各方的运营安全和意识。

网络IDS签名

Fox-IT开发了一种用于网络检测的 Snort规则 ,该规则可以检查HTTP标头中的“外部空间”。请注意,此检测规则仅适用于在发布3.13之前使用Cobalt Strike版本检测进出Cobalt Strike团队服务器的明文HTTP流量。尽管如此,考虑到攻击者倾向于使用盗版和破解版本,这仍然是一个有价值的检测规则。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创造突破性产品

创造突破性产品

Jonathan Cagan、Craig M.Vogel / 机械工业出版社 / 2004-1 / 35.00元

在《创造突破性产品:从产品策略到项目定案的创新》中作者总结多年的研究成果,指明了与产品创新相关的一系列因素,并提供了一套全新的开发突破性产品的理论与方法,该书旨在帮助企业,技术和设计人员: 获得对用户的需求和市场新的趋势的准确洞察力; 认识可以创造新市场的产品机会缺口; 指导产品模糊前期的构造; 正确地运用定性和定量的研究方法; ......一起来看看 《创造突破性产品》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换