Cobalt Strike – 绕过C2网络检测
2021-07-29 11:00:10 Author: mp.weixin.qq.com(查看原文) 阅读量:208 收藏

文章来源:潇湘信安

这篇文章为机器翻译文,如有英文阅读能力建议阅读原文:https://newtonpaul.com/cobalt-strike-bypassing-c2-network-detections/

0x01 介绍

在这篇小博文中,我们将研究如何轻松绕过 Cobalt Strike beacon 的网络检测。Symantec Endpoint Protection (SEP) 等许多 AV 产品都具有网络检测功能,可以监控通过设备网络接口的流量。此外,IDS 和 IPS 还具有对 C2 流量的基本检测,这些检测基本上是在网络数据包中寻找特定的模式。

对于像 Cobalt Strike 这样的流行工具,beacon的基本“开箱即用”设置由供应商进行指纹识别,因此会被检测到。

在 Cobalt Strike 中,Malleable 配置文件用于定义 C2 的设置。您可以为 C2 选择不同的协议,HTTP、HTTPS 和 DNS 是三种流行的协议。由于有效负载未加密,HTTP beacon 很容易被检测到。对于 HTTPS 连接,会在用于加密的证书上进行检测。

与任何利用工具一样,如果您使用默认值,很可能会被检测到。GitHub 上有可供使用的 Malleable 配置文件,这些配置文件将更改您的默认 C2 设置。然而,这些也已经被指纹识别,并且也会产生检测。GitHub 上提供的配置文件更多地旨在测试您对过去在野外看到的不同 APT 和 CrimeWare C2 的检测能力。

https://github.com/rsmudge/Malleable-C2-Profiles

0x02 解决方案

幸运的是,Cobalt Strike Malleable C2 配置文件是高度可定制的。事实上,定制化是 Cobalt Strike 如此受欢迎且如此有效的原因之一。您可以编写自己的个人资料,并且有一些在线指南向您展示如何执行此操作。

但是,还有一种更简单的方法,C2 Concealer。该工具由 FortyNorth Security 创建,于去年发布,具有 Python 脚本,可根据用户定义的几个变量生成 C2 配置文件。

https://github.com/FortyNorthSecurity/C2concealer

0x03 演示

安装很简单,只需克隆 GitHub 存储库,然后运行安装脚本即可。

安装完成后,运行脚本并定义您希望使用的主机名。

C2concealer --hostname newtpaul.com  --variant 1

接下来,C2Concealer 将扫描您的主机以定位 c2lint 所在的位置。C2lint 是 CobaltStrike 附带的一个工具,用于在使用配置文件之前对其进行测试/故障排除。

扫描完成后,系统会要求您选择 SSL 选项。使用合法的 LetsEncrypt 证书显然是避免检测的最有效方法。但是,这需要您将 A 记录指向您的团队服务器。为此,我们将只使用自签名证书。

系统会要求您填写证书的一些基本信息,你在这里放什么并不重要。

完成后,您应该会收到配置文件已通过 c2lint 检查的确认信息。还将显示新创建的配置文件的名称。

接下来,启动您的团队服务器,但这次定义要加载的配置文件。

sudo ./teamserver 192.168.1.21 *Password* ~/C2concealer/C2concealer/34c5a462.profile

生成您选择的新监听器和有效载荷。

0x05 之前 VS 之后

在使用我们新创建的配置文件之前,SEP 阻止了与 Cobalt Strike 团队服务器的出站连接。这是仅使用默认 C2 配置文件时的情况。

但是,在使用我们新创建的配置文件后,没有任何内容被阻止,我们能够成功建立 C2。

如侵权请私聊公众号删文


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650518816&idx=2&sn=4dd8700eed67b504d2d8b322f9026247&chksm=83bad0c4b4cd59d2e76121d1e1758a2aea488924497bc99673a1ebe7b290648ff84a83214bdf#rd
如有侵权请联系:admin#unsafe.sh