Sliver C2框架漏洞解析:攻擊者可建立TCP連接竊取數據流量
近期,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框架處理雙向網絡通信時,嚴格輸入驗證的重要性。隨著紅隊工具本身成為攻擊目標,團隊服務器組件的堅固隔離對于操作安全仍然至關重要。