绕过Cylance防护:Netcat与Nishang ICMP C2通道实战解析

本文详细分析了如何通过Netcat和Nishang框架的ICMP载荷绕过Cylance防护,建立命令控制通道,涵盖实际操作步骤、防护规避原理及企业级防御建议,适合安全研究人员参考。

绕过Cylance:第三部分 - Netcat与Nishang ICMP C2通道

David Fletcher //

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

Netcat

第三种未被Cylance检测到的C2方法是原始netcat。本例中,监听器是一个原始netcat shell反向输出。netcat可执行文件被下载到目标主机并执行,如下所示。

在C2服务器上,netcat被配置为监听该端口以接收入站通信。当终端主机连接后,返回了一个Windows shell。

聪明的攻击者可能会上传Netcat的Nmap端口版本(名为Ncat),它支持TLS加密。这将使C2通道更难以检测。

与之前的C2通道不同,原始netcat C2不符合特定协议。除了先前建议的下载过滤和应用程序白名单之外,此通信可以通过协议检查来阻止。如果边界防火墙支持检查协议符合性的应用级代理,此流量将被丢弃。

Nishang ICMP C2通道

最后一种未被Cylance检测到的非传统C2方法是使用ICMP载荷进行通信。本例中,使用了Nishang框架中的PowerShell脚本Invoke-PowerShellIcmp.ps1

调查Cylance的部署配置发现,它被配置为阻止通过原生PowerShell.exe解释器执行任何内容。

然而,该主机上可用的PowerShell ISE。因此,脚本可以加载到ISE中,并通过点击播放按钮或使用熟悉的import-module语法来暴露其功能。本例中使用了播放按钮。

PowerShell脚本加载后,按如下方式调用。

等待的C2服务器捕获了客户端的回调,授予了对目标计算机的shell访问权限。

这种情况下,组织可以对ICMP整体做出决策。如果用户不需要ping互联网上的主机,组织可以简单丢弃所有来自内部主机的出站ICMP消息。

虽然PowerShell ISE对此脚本工作良好,但应注意避免任何包含对原生PowerShell解释器嵌入式调用的脚本。此外,如果引用了原生解释器,多线程脚本可能会表现出相同问题。

以下PowerShell脚本在通过PowerShell ISE启动时被发现有效。

  • DomainPasswordSpray.ps1
  • Invoke-Kerberoast.ps1
  • Invoke-PowerShellICMP.ps1
  • PowerView.ps1
  • PowerUp.ps1

CylancePROTECT脚本控制模块仅阻止对原生解释器的调用。

应以与PowerShell.exe相同的方式限制对cmd.exe和PowerShell_ise.exe的访问。这两种工具都为攻击者在环境中横向移动提供了巨大能力。


准备了解更多?
通过Antisyphon的实惠课程提升您的技能!
支持随付随训的培训
提供实时/虚拟和点播形式

绕过Cylance:第二部分 – 使用DNSCat2 | 绕过Cylance:第四部分 – Metasploit Meterpreter与PowerShell Empire Agent

[返回顶部]

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