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

Cobalt Strike的特殊功能(external_C2)研究分析

来源:本站整理 作者:佚名 时间:2017-10-10 TAG: 我要投稿

本文所先容的内容并不是Cobalt Strike民间支撑的功效,而且咱们尚未对这些功效停止完备的测试。假如你想要本身着手停止试验的话,你可以或许参考@armitagehacker给出的这份参考文档【点我获得】。
不管如何,研讨的过程都是充斥兴趣的。本文将要先容的功效可以或许给咱们供给很大的灵活性,并容许咱们在一个高度平安的情况中充足应用Cobalt Strike的壮大功效。除此之外,咱们也盼望这个功效在将来可以或许正式成为Cobalt Strike民间支撑的功效。
External_C2
咱们起首碰到的成绩便是必要给C2流量抉择一种尺度信道,咱们的抉择工具有DNS、HTTP或HTTPS,但咱们觉得Mallable格局大概对C2流量的支撑会更好,尤其是当咱们向一个实在的网站发送非C2流量时(共同Haproxy),后果会比拟好。固然了,咱们还必要构建咱们本身的通讯信道并让Cobalt Strike接收它。除此之外,咱们乃至还盘算本身搭建一台署理并对特别的Mallable内容停止解码,将数据经由过程咱们本身的信道发送,而后在咱们的重定向器中对Mallable数据从新停止剖析,终极将其转发给Cobalt Strike的Team Server。
其时我还专门向 @armitagehacker 征询了有无其余办法可以或许让咱们跟Mallable数据引擎停止交互,他其时提到了一部门试验代码,大概咱们可以或许用这些试验代码来碰运气。这个接口名叫“External_C2”,它容许咱们应用beacon数据包并经由过程可选端口与Team Server停止交互。上面给出的是全部交互过程中的External_C2数据流图:

咱们的第三方控制器名叫C2_server,而客户端为C2_client。C2_client将会请求停止第一阶段的通讯操纵,加载shellcode并与beacon的指定管道停止衔接。接下来,C2_client将会从这个指定管道中读取数据包并将其转发给C2_server,而后C2_client便会收到相应数据包和beacon。C2_clinet与C2_server之间的通讯完整取决于开辟职员的实现办法,咱们可以或许将beacon数据看成是一种“黑盒”,而你必要确保将其看成一种二进制数据来处置(不能使0x00闭幕字符串)。
在Cobalt Strike中,这类“未地下的代码”可以或许被用来运转上面这个剧本:

人人可以或许看到,如今咱们曾经设置了一个external_C2监听器,而且正在监听teamserver的2222端口。
PoC:beacon与文件同享功效
@armitagehacker给咱们供给了一些样本代码(C说话),此中包含有客户端和服务器端过程代码。将代码依照客户端跟服务器端分别实现以后,咱们测验考试经由过程咱们本身的通讯衔接来获得一个可用的beacon通讯。实际上,为了便利停止下一步的调试,我决议要将C2_client的数据存储在一份文件当中,而后让C2_server的代码每隔X秒就对该文件的巨细停止一次检测。假如巨细超过了两个字节,则筹备捕捉一个新的数据包,而后将其发送给Team Server。相应数据将会被存储在另一份文件中,而这个文件则交由C2_client来停止处置。这也就意味着,为了让全部通讯过程可以或许失常运转,客户端和服务器端必需要可以或许对统一目次停止读取和写入。我曾经在Samba同享目次和Owncloud同步目次中停止了测试,测试过程均没有呈现任何成绩,只不外有时候速率会比拟慢而已。
为了加速开辟进度,我用Python对代码停止了重写。如许不只简化了代码,而且还可以或许赞助咱们更轻松地拜访各类通讯信道,由于比拟于C说话,Python可以或许让咱们的开辟变得加倍简略。今朝为止,我尚未用Python完备实现C2_client,而且Python版的C2_client也无奈失常拜访指定管道。不外我可以或许将这些功效放在一个DLL文件当中,而后再在Python代码中挪用这些功效就临时办理这一成绩了。
PoC代码:【点我获得】

咱们的Python代码今朝仍旧必要从DLL文件中挪用@armitagehacker给咱们供给的功效以履行shellcode,如许就能够或许正确地与指定管道停止交互了。
固然了,完备的Python版本照样异常好的,然则我本身没有那末多光阴去办理指定管道的成绩,而且这也是我第一次应用Python来实现C说话下的DLL,再加之我并不是业余的开辟职员,以是人人先迁就着用吧!

不外就我小我而言,我照样比拟盼望应用纯Python代码来实现的。
PoC演示
就在咱们宣布了这个PoC的几个月以后,咱们忽然发如今客户端部门彷佛还可以或许优化一下。如今你必要晓得的是,客户端的收集装置架构实在并不是默许状况的,此中还涉及到高度平安的数据处置流程和平安危险管控。简略来讲,在全部目的收集架构中存在多个“超等平安空间”(Super Secure Zone),这些空间与通俗的构造IT收集和IT治理空间停止了严厉的分别。上面的图片表现的便是这类装置架构:

对付这类特别的场景,客户端在拜访IT治理空间时,咱们就能够或许经由过程一些收集嗅探和SMB-relay进击来测验考试接收IT治理空间内的某些账号,并终极登录Bastion主机。
接下来,咱们必要从Bastion主机开启一个beacon,并测验考试从新衔接到咱们的Team Server(处于IT治理空间当中)。但有意思的是,全部体系就跟Bastion主机异样,咱们很容易就实现了入侵和重连,而且这里并无安排任何的治理协定(SMB、WinRM或WMI等等)。除此之外,比方ARP诱骗、ICMP重定向、LLMNR和其余范例的流量进击办法在收集层也被屏障了。独一可行的出站流量便是从Bastion主机发往超等平安空间(Super Secure Zone)的收集数据,而入站流量则是针对中间同享文件的web-RDP流量和SMB流量。

[1] [2]  下一页

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