Sliver C2 中存在一个框架级漏洞,允许未认证的远程用户通过触发不受控制的内存分配(CWE-789 / CWE-400)来实施拒绝服务,导致进程级内存耗尽(OOM)崩溃。
参考:Tenable
复现步骤:
提取凭据:从捕获或生成的 Sliver 植入体中获取 mTLS 证书和私钥。
编辑 PoC:打开 mtls_poc.go,将 var 块中的占位符值(c2Endpoint、clientCertPEM、clientKeyPEM)替换为你提取的凭据。
对 Sliver 服务器运行漏洞利用程序:
go run mtls_poc.go
该漏洞利用程序通过发送恶意的 uint32 长度前缀(最大 2 GiB)来滥用 socketReadEnvelope 函数。由于服务器在验证 Ed25519 签名之前就分配了这段内存,且 yamux 允许最多 128 个并发流,攻击者可以近乎瞬时地迫使服务器尝试分配约 256 GiB 的内存。
一旦系统内存耗尽,Linux 内核的 OOM killer 将介入,导致 sliver-server 进程被 SIGKILL 终止。
你可以通过检查服务器状态来验证这一点:
sudo dmesg | grep -i "kill"
systemctl status sliver
官方安全公告 GHSA-97vp-pwqj-46qc
解放巴勒斯坦