ATT&CK框架实践指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2 漏洞利用工具Cobalt Strike的分析与检测

Cobalt Strike是许多攻击者都在使用的一款漏洞利用工具,该工具几乎可以让攻击者在任何安全事件中增强战斗力。

1. 漏洞利用工具Cobalt Strike的介绍

红队和攻击者都在使用Cobalt Strike进行模拟攻击或真实攻击,因为该工具综合了多个攻击性安全项目的功能,并可通过aggressor脚本扩展功能。据悉,有攻击者在针对性攻击中使用Cobalt Strike窃取支付卡数据、在勒索软件攻击中用它建立立足点,该工具也被用于红队“作战”。攻击者可以购买Cobalt Strike,也可以在网上免费获得较旧的破解版。

Cobalt Strike提供了可靠的后渗透代理,满足了攻击者的需求,让攻击者专注于攻击其他部分。因此,多个网络犯罪组织和高级攻击组织在勒索软件攻击、数据窃取以及其他犯罪行为中都使用了该工具。有报告称,在涉及Bazar恶意软件的安全事件中,攻击者在运行Ryuk勒索软件之前部署了Cobalt Strike。在这些案例中,攻击者往往行动迅速,只需两个小时就能达到目的。

Cobalt Strike可以生成和执行EXE、DLL或shellcode形式的payload,这些payload就是Cobalt Strike的Beacon。通过Beacon,攻击者可以在攻击中利用多种方式对其传播和执行。Cobalt Strike Beacon通常会利用进程注入绕过防御,在rundll32.exe等Windows二进制文件的内存空间内执行恶意代码。在横向移动过程中,Cobalt Strike Beacon可能被作为Windows服务执行,利用PowerShell代码或二进制文件,实现PsExec的功能。此外,攻击者可能会使用WMI命令或SMB命名管道在不同主机之间进行横向移动。为了实现权限提升,Cobalt Strike可以使用命名管道模拟NT AUTHORITY/SYSTEM执行代码,实现对主机的无限制访问。

2. 检测1:通过PowerShell执行的Beacon

Cobalt Strike Beacon能够以PowerShell形式执行,powershell.exe将混淆代码加载到内存中执行。这些Beacon可能以Windows服务的形式执行,或由攻击者决定的其他持久化机制来执行。要检测这些Beacon,可以搜索powershell.exe进程,其命令行含有常见的关键词和Base64编码变体,包括IO.MemoryStream、FromBase64String,以及New-Object。

例如,图4-3中高亮显示的PowerShell解码为:

图4-3 powershell.exe执行示例

3. 检测2:通过命名管道模拟实现权限提升

Cobalt Strike Beacon可以执行命令,通过某些安全上下文将权限提升到NT AUTHORITY/SYSTEM。为了实现这一目标,Beacon可以创建执行一个Windows服务,使用命名管道来传递数据。如图4-4所示,防守方可以通过识别命令处理程序cmd.exe的实例来检测这种活动,其中命令行包含关键字echo和pipe。请注意,Metasploit在执行命名管道模拟时也会出现类似的特征。

图4-4 利用cmd.exe检测Beacon