4.2 漏洞利用工具Cobalt Strike的分析与检测
Cobalt Strike是一款被诸多攻击者所运用的漏洞利用工具,此工具能够让攻击者在几乎任何安全事件里提升战斗力。
1. 漏洞利用工具Cobalt Strike的介绍
红队以及攻击者,都借助Cobalt Strike开展模拟攻击或者真实攻击,这是由于该工具融合了多个具有攻击性的安全项目的功能,并且能够借助aggressor脚本对功能予以扩展。据了解,存在攻击者在针对性攻击之时运用Cobalt Strike窃取支付卡数据,在勒索软件攻击当中用它来构建立足点,此工具还被应用于红队的“作战”。攻击者能够购买Cobalt Strike,也能够在网上免费获取较旧的破解版。
钴击提供了,称得上牢靠的后渗透代理,其实现了对攻击者需求的满足,致使攻击者能够专心于对其他部分展开攻击。所以呢,多个网络犯罪组织以及高级攻击组织就在勒索软件攻击、数据窃取还有其他犯罪行为里,都运用了此工具。有报告表明,在涉及巴扎尔恶意软件的安全事件当中,攻击者于运行瑞卡勒索软件之前,就部署了钴链。在这些实例里,攻击者常常行动快捷,仅仅需两个小时便能够达成目标。
为生成和执行EXE、DLL或shellcode形式的payload,Cobalt Strike会这么做,而这些payload也就是Cobalt Strike的Beacon。借助Beacon,攻击者于攻击里能利用多种方式去对其传播与执行。于攻击中,Cobalt Strike Beacon常常凭借进程注入来绕过防御,会在window二进制内存空间中执行恶意代码,像rundll32.exe等。此过程中,Cobalt Strike Beacon于特定情形下,会经PowerShell代码或者二进制文件,被当作Windows服务去执行,进而达成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