1、概述
Cobalt Strike(以下简称CS)是一款美国Red Team开发的渗透工具,在攻防、测试中扮演着重要角色,其功能强大、使用人数众多。CS支持HTTP、HTTPS、DNS多种协议主机上线方式,集成了提权、凭据导出、端口转发、socket代理、office攻击、文件捆绑、钓鱼等功能。CS使用C/S架构,分为客户端和服务端,可分布式操作,支持团队协同使用。CS因功能强大、定制方便,在攻防演练场景中使用广泛。
CS默认配置特征较明显,但是攻击者通常会对CS进行魔改。这些魔改版本,除了在终端层面对代码进行加密混淆,绕过AV/EDR查杀外,在流量层面也会使用HTTPS等加密协议通信,绕过IDS/NDR的检测。CS主要支持两种加密流量上线方式:HTTPS、DNS隧道。其中DNS隧道特征比较明显,故在演练场景下较少使用,使用比较多的是HTTPS协议。
CS产生的HTTPS流量,是由内向外反弹的加密流量,还利用CDN、域前置、云函数等技术规避检测,使得主流流量检测设备无法针对攻击流量做出有效检出。如何有效检测这类魔改型CS使用的加密流量,成为防御的关键。观成科技安全研究团队模拟了大量CS攻击流量,重点研究了CS木马利用CDN/域前置/云函数等各种公用基础设施进行流量伪装、混淆场景下的限定域指纹特征、流行为特征,同时对攻击流量进行AI模型训练,为CS木马的加密流量检测打下基础。
除了在CS加密流量上进行研究外,为了在攻防演练中做到“先知先防”,观成科技安全研究团队分析提取了多种CS服务器特征,利用这些特征进行主动探测获取C&C信息,提前掌握攻击设施。
2、CS流量伪装方式
Beacon执行后会收集IP地址、计算机名、用户名、进程名等,并将其作为上线标识信息存储在Cookie或URL中发送给C2服务器。为了获取控制指令,Beacon会频繁向服务器发送包含标识信息的心跳请求,这种反复产生的异常流量容易引起分析人员的注意。为了规避检测,攻击者会采用多种方式来隐匿流量特征。
2.1 利用配置文件进行伪装
CobaltStrike允许自行修改配置文件,对多种属性进行个性化设置,如数据的编码方式、混淆方式等。攻击者可利用配置文件,将上线数据、控制指令包装为亚马逊、必应、微软更新、谷歌云、JQuery等网站的正常访问流量,以逃避检测,提高攻击成功率。
CobaltStrike支持的数据编码方式包括BASE64、BASE64URL、NETBIOS、NETBIOSU和MASK。混淆方式包括在数据前后添加正常网页数据、代码数据,以及使用随机数据进行填充来更改返回数据大小。
图 2‑1 伪装成请求JQuery代码的CS流量
2.2利用CDN进行伪装
CDN(内容分发网络)由遍布全球的高性能加速节点构成,在CDN服务商处设置域名加速后,对该域名的HTTP请求会被调度至最接近用户的服务节点,直接由服务节点快速响应。攻击者可以利用CDN的特性,给C2域名配置CDN加速服务,通过CDN来转发Beacon和CS服务器之间的流量,从而将真实的域名和IP隐藏在CDN之后。
图 2‑2 利用CDN转发恶意流量
Beacon直接与CDN节点建立TLS连接,发送心跳请求,CDN节点根据HTTP Host字段的域名将请求转发给CS服务器,再将服务器响应转发给Beacon。从客户端捕获到的只有客户端和CDN节点之间的通信,TLS协议中服务器返回的证书也是CDN节点的证书,无法通过IP和证书进行检测。将多个CDN节点设置为C2地址,Beacon便会在通信时切换连接的CDN节点,更加提高了检测的难度。
图 2‑3 CDN转发TLS通信
2.3利用域前置进行伪装
Beacon执行后,会先向DNS服务器发起对可信域名的解析请求,获取CDN节点IP后,向CDN发送SNI为可信域名的TLS连接请求,随后发送Host为C2域名的心跳请求,CDN根据Host将数据转发给CS服务器并将接收到的返回数据转发给Beacon。这种完全伪装成与可信域名的通信流量,无法通过域名、IP、证书进行检测。
图 2‑4 通过可信域名实现流量伪装
图 2‑5 利用域前置的伪装流量
2.4利用云函数进行伪装
除了利用CDN进行流量转发外,攻击者还可以利用云函数来转发CS与服务器的通信流量。云函数(Serverless Cloud Function,SCF)为企业和开发者们提供无服务器执行环境,帮助个人在无需购买和管理服务器的情况下运行代码。攻击者可以在云函数服务中撰写代码实现应用层转发代理功能,将连接云函数的请求解析后转发给CS服务器,并将CS服务器的响应结果转发给Beacon。
图 2‑6 利用云函数转发CS流量
图 2‑7 利用云函数伪装CS流量
3、CS加密威胁情报
C&C的识别与发现是加密威胁情报能力的重要体现。观成瞰雾-加密威胁情报平台基于CS服务器指纹特征和响应特征主动探测获取CS服务器信息,提前掌握攻击设施。
图 3‑1 瞰雾-加密威胁情报平台
4、产品检测
观成瞰云(ENS)-加密威胁智能检测系统对CS伪装流量的检出结果。
图 4‑1 鱼骨图
5、总结
在加密流量的领域,传统方法使用的字符串特征与各种匹配规则都不再奏效。CS木马利用各种CDN/域前置/云函数等公用基础设施进行流量伪装、混淆,使得对其加密流量的检测难度进一步加大。观成科技安全研究团队对这类攻防演练场景中常见的C&C工具保持持续跟踪,研究其加密流量通信的原理,力争在这类加密流量检测方面做出突破。