绕过Cylance防护:第四部分 - Metasploit Meterpreter与PowerShell Empire代理

本文详细介绍了在Cylance防护环境中通过重命名PowerShell解释器成功建立Metasploit Meterpreter和PowerShell Empire代理的C2通信通道的技术方法,包括载荷传递方式、检测规避策略和持久化通信配置。

绕过Cylance:第四部分 - Metasploit Meterpreter与PowerShell Empire代理

David Fletcher //

以下技术方法展示了在特定Cylance防护环境中获取C2通信的方法。测试前未检查集中式基础设施和终端代理的配置。该环境可能存在配置错误,且可能不符合Cylance基础设施部署的最佳实践。然而,根据我们的经验,配置错误并不罕见,且往往对环境的整体安全态势产生灾难性后果。这就是为什么我们在接受其声称的保护级别之前测试部署的原因。此外,这些文章说明了深度防御的必要性。在每次成功建立C2的实例中,二级或三级控制本可以(且应该)补偿初始控制的失败。分层防御是任何环境中保护的关键要素,组织必须面对信息安全没有银弹的事实。不要错过第一部分(使用VSAgent)、第二部分(关于使用DNScat2)和第三部分(David使用Netcat和Nishang)。

在使用多种协议和不同工具成功建立C2通信后,尝试了两种更传统的载荷。第一种是Metasploit的Meterpreter,第二种是PowerShell Empire代理。

在深入每个代理的细节之前,有必要在目标主机上获得PowerShell解释器访问权限。令人惊讶的是,有效的方法是重命名本机PowerShell.exe解释器。重命名可执行文件后,Cylance不再阻止在此环境中执行PowerShell。

Metasploit Meterpreter

Cylance代理在检测和清除Metasploit Meterpreter实例方面非常有效。Meterpreter载荷(32位和64位)以未编码和编码形式传递到目标主机,启用阶段编码,采用以下包格式,但从未获得结果shell。

  • 分阶段Meterpreter Msfvenom载荷
  • 使用备用EXE模板的分阶段Meterpreter Msfvenom载荷
  • 无阶段Meterpreter Msfvenom载荷
  • 使用RunDLL32.exe进行DLL注入
  • 使用InstallUtil.exe进行卸载执行
  • 使用“无PowerShell的PowerShell”技术进行PowerShell执行
  • 修改的Unicorn PowerShell载荷**
  • Import-ShellCode和Inject-ShellCode

尝试了几种PowerShell载荷。然而,许多Metasploit载荷会后续调用本机PowerShell解释器。这些载荷被解码、修改和重新编码以使用重命名的PowerShell解释器。但是,每次执行PowerShell时,后续进程都被Cylance阻止。对于传递到主机的每个Meterpreter载荷,都观察到了相同的响应。

为了节省时间,未尝试其他功能较弱的Metasploit载荷。

PowerShell Empire代理

通过重命名可执行文件获得对本机PowerShell解释器的访问后,PowerShell Empire代理C2只需最小修改即可获得。

首先,生成启动器阶段PowerShell载荷,如下所示。

然后修改解释器以匹配主机上重命名的解释器。

执行后,从目标主机观察到PowerShell Empire代理回调。

此初始代理使用PowerShell Empire提供的默认侦听器属性执行。信标行为(五秒间隔)被Cylance识别,并在大约三小时的代理通信后被阻止。

然而,代理的通信配置文件被修改为包括抖动和对非默认资源的请求,如Carrie Roberts的博客文章所述。配置代理以此方式通信后,C2通道在超过24小时内未被检测到。


准备好了解更多?
通过Antisyphon的实惠课程提升您的技能!
Pay-Forward-What-You-Can培训
提供实时/虚拟和点播形式


相关文章
绕过Cylance:第三部分 – Netcat & Nishang ICMP C2通道 | 绕过Cylance:第五部分 – 展望未来

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计