Sliver C2框架漏洞解析:攻击者可建立TCP连接窃取数据流量

漏洞播报 (1114) 2025-02-26 19:51:05

近期,Sliver C2框架的团队服务器(teamserver)实现中被发现存在一个严重的服务器端请求伪造(SSRF)漏洞(CVE-2025-27090)。该漏洞允许攻击者通过受影响的服务器建立未授权的TCP连接,可能导致IP泄露、横向移动和流量拦截。
Sliver C2框架漏洞解析:攻击者可建立TCP连接窃取数据流量_https://www.tiejiang.org_漏洞播报_第1张

漏洞影响范围

该漏洞影响Sliver C2框架的1.5.26至1.5.42版本,以及在Of340a2提交之前的预发布版本。尽管Sliver的架构通常会将团队服务器置于保护性重定向器之后,但该漏洞允许攻击者通过精心构造的植入物回调绕过这些保护措施。

Sliver C2框架漏洞解析:攻击者可建立TCP连接窃取数据流量_https://www.tiejiang.org_漏洞播报_第2张
Sliver的架构(来源:Chebuya)

漏洞利用机制

该漏洞利用链涉及Sliver Go代码库中的两个关键处理函数。首先,registerSessionHandler函数通过Protobuf反序列化为新植入物创建一个会话对象:

`// server/handlers/sessions.go  
session := core.NewSession(implantConn)  
core.Sessions.Add(session) // 将会话添加到团队服务器跟踪`

攻击者随后利用tunnelDataHandler,发送包含CreateReverse设置为true的特制TunnelData消息:

`// server/handlers/session.go  
if rtunnel == nil && tunnelData.CreateReverse == true {  
    createReverseTunnelHandler(implantConn, data) // 触发SSRF  
}`

这将强制团队服务器通过defaultDialer.DialContext调用建立出站连接:

`remoteAddress := fmt.Sprintf("%s:%d", req.Rportfwd.Host, req.Rportfwd.Port)  
dst, err := defaultDialer.DialContext(ctx, "tcp", remoteAddress)`

通过Sliver的隧道管理系统,该漏洞实现了双向通信。如下Python概念验证(PoC)代码所示,攻击者首先注册一个虚假会话,然后发起反向隧道:

`registration_envelope = generate_registration_envelope()  
ssock.write(registration_envelope_len + registration_envelope)  
reverse_tunnel_envelope = generate_create_reverse_tunnel_envelope(target_ip, port, data)  
ssock.write(reverse_tunnel_envelope_len + reverse_tunnel_envelope)`

修复建议

该漏洞已通过提交3f2a1b9修复,改进了会话验证和隧道创建检查。管理员应立即更新至Sliver v1.5.43及以上版本,并审核所有暂存监听器是否存在未授权的shellcode生成能力。

此SSRF漏洞突显了在C2框架处理双向网络通信时,严格输入验证的重要性。随着红队工具本身成为攻击目标,团队服务器组件的坚固隔离对于操作安全仍然至关重要。

THE END

Leave a Reply