欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

恶意软件如何将External C2和IE COM对象用于命令和控制

来源:本站整理 作者:佚名 时间:2019-03-08 TAG: 我要投稿

背景
在Cobalt Strike 3.6中,引入了一项名为External C2(外部C&C)的强大功能,为自定义命令和控制(C&C)通道提供了一个有用的接口。
作为一个擅长于利用自定义C&C通道的红方队员,我立即着手探索External C2。在这篇文章中,我将简要介绍External C2规范、IE COM对象,以及它们如何用于命令和控制,最后将介绍如何实际使用。
External C2概述
如前所述,External C2允许第三方程序作为Cobalt Strike与其信标植入之间的通信信道。
External C2共包含如下组件:
1、External C2服务器:Cobalt Strike团队服务器提供的服务,允许第三方控制器向团队服务器发送和接收数据。
2、第三方控制器:自定义C2的“服务器端”元素。该组件负责与第三方客户端通信,并将数据中继传输到External C2服务器。
3、第三方客户端:自定义C2通道的“客户端”。该组件负责产生信标(Beacon),使用命名管道连接到该信标,并将数据中继到第三方控制器。
下图展示了External C2规范的高级概述。

现在,我们已经对External C2如何工作有了基本的了解。接下来,我们要深入了解一下具体的实现,也就是Browser-C2(浏览器C&C)。
Browser-C2架构
Browser-C2是一个External C2的实现,允许信标与团队服务器通过合法的浏览器进行通信。
下图展示了Browser-C2的体系结构:

第三方客户端本地HTTP服务器具有以下终端,这些终端可以在被攻陷的工作站上使用:
· /inject – 在当前进程中执行ShellCode
· /send – 将数据发送到本地信标
· /receive – 从本地信标接收数据
· /relay – 提供HTML文件,通过Internet Explorer将数据从第三方客户端中继到第三方控制器
· /ping – 用于检查HTTP Server的状态
第三方HTTP服务器具有如下终端:
· /arch/{architecture} – 提供架构编写者特定的信标ShellCode
· /send – 将数据发送到External C2服务器
· /receive – 从External C2服务器接收数据
在下表中,总结了Browser-C2体系结构中每个组件的实现。
Browser-C2组建流程:

第三方客户端是初始化Browser-C2通信通道的组件。首先,它创建一个Internet Explorer实例,然后启动本地HTTP服务器来处理来自浏览器的通信。第三方控制器和第三方客户端之间的所有通信都是通过Internet Explorer执行的,如上表所示。
尽管这种体系结构最初看起来可能会过于复杂,但实际上它具有许多优点,并且优于注入正在运行的iexplorer.exe进程的传统方法。这一点,我们在此前的文章中已经进行过描述。接下来,我们将更加详细的研究这些优点,并说明其对运营者带来的帮助。
父流程创建
我们在之前的文章中,描述了流程派生关系如何帮助蓝队判断可疑行为。假如chrome.exe派生了powershell,那么可能就意味着存在不良行为。我们还描述了在某些情况下,如何使用父流程欺骗来逃避这些检测。
这种技术的好处在于,当iexplorer.exe派生时,它是通过COM完成的,也因此其父进程并非winword.exe、wscript.exe或者其他同类程序。实际上,它是使用svchost.exe派生的,如下所示。我们建议威胁研究人员考虑将这一点添加到他们的检测规则之中。

除了检测的方式,使用Microsoft ASR(Attack Surface Reduction,攻击面减少)规则配置的环境也可能会阻碍子进程的创建过程。如果我们使用了面向Office系列的Payload(例如:宏),那么ASR可能会出现问题。ASR能够阻止子进程执行、注入其他进程以及更多进程的规则,如下图所示:

要测试ASR是否会阻止派生出来的Internet Explorer,我们使用PowerShell启用以下规则:
(阻止所有Office应用程序创建子进程)
Block all Office applications from creating child processes    - d4f940ab-401b-4efc-aadc-ad5f3c50688a
Add-MpPreference -AttackSurfaceReductionRules_Ids d4f940ab-401b-4efc-aadc-ad5f3c50688a -AttackSurfaceReductionRules_Actions Enabled
启用此规则后,我们可以通过尝试从Office内部运行进程,来验证它是否正在执行。该过程会失败,如下所示:

使用COM对象时,Internet Explorer将在DCOM服务进程(svchost.exe)下启动,如前所述,因此将绕过此规则。
进程注入
进程注入受到安全社区的密切关注,许多EDR(终端检测与响应)和反病毒解决方案目前都会阻止尝试注入其他进程的行为,或在发生相应行为时弹出警告。
为了解决这个问题,我们使用COM生成浏览器对象,并避免产生注入行为。通过引用InternetControl COM对象,我们可以创建与第三方客户端通信的iexplorer.exe实例。示例代码如下所示:

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载