freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Sliver C2框架漏洞解析:攻击者可建立TCP连接窃取数据流量
2025-02-25 11:15:14
所属地 上海

image

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

漏洞影响范围

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


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框架处理双向网络通信时,严格输入验证的重要性。随着红队工具本身成为攻击目标,团队服务器组件的坚固隔离对于操作安全仍然至关重要。

参考来源:

Sliver C2 Server Vulnerability Let Attackers Open a TCP connection to Read Traffic

# 漏洞 # 网络安全
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录