欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

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

来源:本站整理 作者:佚名 时间:2019-04-12 TAG: 我要投稿

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响应中都有多余的空格。

利用这些多余的空格,可以识别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开发人员已经意识到这样一个空间在服务器响应中的含义,以及它对攻击者的潜在价值。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载