Sliver是一个好用的 C2 平台,支持多协议,样本混淆,代理,交互式 Shell ,并集成部分后渗透工具。早期只能使用命令行翻文件相当不方便,后续官方出了一个不完善的 GUI ,功能虽然有各种问题,但翻文件是够用了。
但长期使用难免会有上线通知的需求,翻了下配置,官方暂无功能可支持。
在https://github.com/BishopFox/sliver/issues/870中翻到别人提的需求,好家伙,官方推荐使用第三方项目。
在官方推荐的项目说明中(https://github.com/ezra-buckingham/sally-the-sliver-siren) 不难发现该项目是用 python 实现了客户端登录,然后定时检查有哪些 session 在线。预期的想法应该是实现类似 cobaltstrike 的通知方式,使用插件实现 beacon_init 方法,并在该方法实现通知,当有 beacon 上线时触发。
显然这个第三方工具不符合预期,故自己琢磨:
定位到 session 上线时的处理逻辑如下,不难发现上线动作完成后程序会记录一下日志,那么我们发通知也应该在这里介入:
进一步分析可以看到审计日志位于 ~/.sliver/logs/audit.json
上线所有信息都有,那就简单了:
跑在 sliver 的机器上,实时通知无延时,无需修改 sliver 的代码。
目前代码已上传至 GitHub ,地址:https://github.com/Phelaine/sliver-webhook