关于CobaltStrike的若干检测特征分析

admin 2021年12月22日11:39:34安全文章评论90 views4360字阅读14分32秒阅读模式

点击蓝字关注我们




CobaltStrike被广泛利用于渗透攻击中,可以与其他攻击工具(如Mimikatz、Metasploit和PowerShell Empire)联合使用,支持在网络中横向移动。


一、关于C2的阐述


CobaltStrike是实现C2的具体平台框架。C2全称为Command and Control,即命令与控制。这里分别从KILL CHAIN和MITRE ATT&CK对C2进行简单介绍。


在KILL CHAIN中,一次完整的渗透攻击过程被规范为以下七个阶段:


关于CobaltStrike的若干检测特征分析


如上图所示,C2位于攻击流程的末端,是攻击者通过一系列手段成功进入受害者系统后,为实现受害机器(被植入恶意软件)与攻击者控制端通过网络进行交互的一个阶段,关键是拉取二段 exploit 进行驻留。


而MITRE ATT&CK从实现方式上对C2这一阶段进行了详细地介绍,它包括19种常用技术手段,主要为编码混淆、应用层协议利用、网络层协议利用、隧道技术、代理、单双向通信等。这些技术手段均可承载于某一攻击框架。这里C2的释义更接近于某种“基础设施”。


由此,C2架构也就可以理解为,恶意软件通过什么样的方式获取资源和命令,以及通过什么样的方式将数据回传给攻击者,以达到潜藏监控、命令控制的目的。


二、C2 Matrix介绍


一个合适的C2工具,往往可以更好地推进“行动”进展。C2 Matrix包含了用于测试各种C2 的实验室环境、有关每个C2的详细信息(包括如何安装和使用它们等)以及如何为红队交战和紫队演习建设攻击基础设施。


关于CobaltStrike的若干检测特征分析


C2 Matrix收录颇丰,但所收录的工具版本普遍落后于当下。目前,业内应用最多者,当属KALI集成的Metasploit以及CobaltStrike。本文的实验研究主要围绕CobaltStrike进行。


三、CobaltStrike介绍


CobaltSrtike早期版本依赖Metasploit框架,而现在的CobaltStrike已经不再使用MSF,而是作为单独的平台使用。它分为客户端(Client)与服务端(Teamserver),服务端只有一个,客户端可以有多个,团队可进行分布式团队协作。


关于CobaltStrike的若干检测特征分析


CobaltSrtike拥有多种协议主机上线方式,集成了提权、凭据导出、端口转发、Socket代理、Office攻击、文件捆绑、钓鱼等功能。同时,CobaltStrike还可以调用Mimikatz等其他常用工具,因此广受黑客青睐。


关于CobaltStrike的若干检测特征分析

CobaltSrtike


四、特征讨论(网络维度与端点维度)


环境准备:


本次实验主要利用了CobaltSrtike Attacks中的MS Office Macro和Windows Executable两种攻击方式。


环境介绍:


·  CobaltStrike Sever:kali

·  CobaltStrike客户端:kali、MAC


关于CobaltStrike的若干检测特征分析

靶机:win10


主要工具:


cobaltstrike4.2、office2016、wireshark、processhacker、火绒剑


1、CobaltStrike HTTP隧道通信与流量分析


CobaltSrtike4.0之前的版本支持http传输,木马基于TCP协议会产生明显的通讯特征,如独有的端口、协议数据格式等。


关于CobaltStrike的若干检测特征分析


beacon与C2的通信逻辑


a)stager的beacon会先下载完整的payload并执行,stage则省略这一步。


b) beacon进入睡眠状态。结束睡眠状态后,它会用http-get方式发送一个metadata(具体发送细节可以在malleable_profile文件里的http-get模块进行自定义),metadata的内容包括目标系统的版本、当前用户等信息。


c)如果存在待执行的任务,C2会响应这个metadata并发布命令,beacon将会收到具体任务内容与一个任务id。


d)执行完毕后,beacon会将回显数据与任务id用post方式发送回C2(细节可以在malleable_profile文件中的http-post部分进行自定义),然后又会回到睡眠状态。


PCAP包:


关于CobaltStrike的若干检测特征分析



PCAP分析:


·  GET /cx 请求轮询指令

·  HTTP 200 OK响应附带指令

·  POST 提交指令响应数据


检测CobaltStrike网络指标


CobaltStrike默认配置文件通过伪造HTTPS流量规避安全监测,所以需要使用TLS检查,然后隔离bot通信流,完成后再通过检查HTTPS请求中的数据来识别可疑的通信流。


关于CobaltStrike的若干检测特征分析


控制端发起desktop监控,该操作指令携带在TCP握手响应包里,靶机POST携带输出结果。


针对get、post轮询请求建立模型,检查与目标的通信频率,人工产生的流量不断变化,机器人产生的流量趋于一致且均匀。此外,在默认设置中,Sleeptime=60000ms,可根据这一设定尝试建立模型,检测出来自未修改默认设置的可疑CobaltSrtike攻击。


2、进程分析


关于CobaltStrike的若干检测特征分析

释放进程rundll32.exe


关于CobaltStrike的若干检测特征分析


Word关闭后进程依然在运行,控制端发起desktop监控,rundll32.exe又发起一个rundll32.exe。


关于CobaltStrike的若干检测特征分析
关于CobaltStrike的若干检测特征分析


火绒剑显示其远程地址是127.0.0.1,判断应该是做了混淆处理,此处可作为特征。


3、来自默认设置的一些信息证书


SSL/TLS证书


证书是teamserver主控端使用的加密证书,网上一些文章提到CobaltStrike默认的SSL/TLS证书是固定的,所以一般都使用这个证书作为特征值来发现CobaltStrike服务器。


关于CobaltStrike的若干检测特征分析

CobaltSrtike证书查看


默认的证书具有很明显的特征。Eg:

O=cobaltstrike,;OU=AdvancedPenTesting;

CN=Major Cobalt Strike


https上线使用的证书


https上线使用的证书,并不是前文中修改的那一个!


关于CobaltStrike的若干检测特征分析


Self-signed Certificates with SSL Beacon和Valid SSL Certificates with SSL Beacon是用来修改https上线使用的证书的。


默认证书特征


Fofa搜索:

cert="73:6B:5E:DB:CF:C9:19:1D:5B:D0:1F:8C:E3:AB:56:38:18:9F:02:4F"&&after="2020-01-01"


Censys.io搜索:

443.https.tls.certificate.parsed.fingerprint_sha256:87f2085c32b6a2cc709b365f55873e207a9caa10bffecf2fd16d3cf9d94d390c


结合搜索引擎,情报社区来判断。


全局选项


官方文档显示:“可将Malleable C2配置文件配置为具有许多全局选项,以调整流量和Beacon的行为。完整列表可在官方文档中找到。至少应设置sleeptime、jitter和useragent选项。”这一提示非常重要。


Eg:


关于CobaltStrike的若干检测特征分析
关于CobaltStrike的若干检测特征分析


3.1 sleeptime用于配置频率,以毫秒为单位;jitter用于按指定的百分比更改检查间隔,它接受0到99的值。


3.2 useragent配置将用于HTTP通信的useragent字符串。如果可以收集目标组织中主机正在使用的实际用户代理(向目标机构成员发送一封带有Web漏洞的电子邮件并监视后续GET请求中发送的user-agent值),使用该代理为好。先进的组织经常监视其环境中是否存在不规则的用户代理字符串,大多数公司仅使用了少数合法字符串。


关于CobaltStrike的若干检测特征分析


Eg:set useragent "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 5.2) Java/1.5.0_08";


查看bot通信流的来源,检查生成TLS通信流的用户代理。乍一看用户代理貌似是合法的,“Mozilla/5.0 (Windows NT 6.1)”,这是Internet Explorer (IE)的值。然而,用户代理完全可以被伪造,一些机器学习算法可以推导出数据包流的真正用户代理。由此,我们得出一种检测恶意流量的方法。


如果使用的是明文HTTP流量或者是目标环境中存在SSL拦截,那么与环境不匹配的User-Agent值就会被发现。


关于CobaltStrike的若干检测特征分析


3.3 dns_idle选项用于发送信号给DNS的信标没有任务在排队等候。我们可以设置任何IP,但是主机广泛使用Google DNS服务器作为DNS主机,因此我们将使用它(8.8.4.4)。同样,这是自定义目标DNS服务器的理想选择。


3.4 DNS隐蔽信道:使用Wireshark观察到,主机访问了nexus.office.live.com这种不规则域名,即可粗略猜测这是一个C&C服务器。


关于CobaltStrike的若干检测特征分析


特征:


关于CobaltStrike的若干检测特征分析


这里我们可以通过根据AV引擎或其他IOC给出的情报做二次判断。


4. 检测加密流量


JA3方法用于收集Client Hello数据包中以下字段的十进制字节值。


关于CobaltStrike的若干检测特征分析


原理:这里相当于把支持的TLS扩展信息,都收集起来当作一个特征值来用(除了客户端发起的,还有关于服务器的JA3S)。


“这其实算一种降维打击,并且我们发现主流在线沙箱、主流IDS大都支持了JA3/JA3S指纹检测。”


其他


从一位使用者的角度来看,50050端口是否开启,也可成为确定CobaltSrtike server的一个佐证。CobaltSrtike能得到大量黑白帽子的使用,必然是隐蔽性极高,高度的定制化是其重要原因,我们很难通过某一特征判定是否为恶意流量,但众多模糊特征的聚合一定可以让我们看到不一样的东西。


五、检测规则以及分析思路


利用日志易SIEM安全大数据分析平台,根据相关特征制定C2检测规则。


1、进程特征利用——父子进程关联


分析平台根据四种进程分析部分,可以将分析结果归纳为五种可疑进程。实际使用时,分析平台会对进程进行检索,并将出现可疑进程的检索结果的机器ip写入观察列表。


2、U-A头利用


检索可疑useragent字符串,这些U-A头可以来自情报或机器学习算法推导,将这些可疑结果IP写入观察列表或作为搜索条件。


3、IOC利用


关于CobaltStrike的若干检测特征分析



不同情报源的CobaltSrtike server IP将被写入观察列表。


4、特征联合利用


将步骤1和步骤2作为检索主体,联合步骤3进行检测,进一步提高检测精度。


关于CobaltStrike的若干检测特征分析


5、联合设备告警


告警设备之间联合,设备与情报、本地规则联合,提高了告警精度,聚焦了入侵阶段与机器安全状态。


关于CobaltStrike的若干检测特征分析

告警可在威胁处置展示,也可进行定制化推送。



相关阅读

加密威胁检测:创新流量安全解决方案

可以逃避虚拟机安全检测的网络钓鱼站点

DAIC:检测商业电子邮件欺诈(BEC)的开源利器


关于CobaltStrike的若干检测特征分析

合作电话:18311333376
合作微信:aqniu001
投稿邮箱:[email protected]





关于CobaltStrike的若干检测特征分析

本文始发于微信公众号(安全牛):关于CobaltStrike的若干检测特征分析

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月22日11:39:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  关于CobaltStrike的若干检测特征分析 http://cn-sec.com/archives/447388.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: