SMB Relay 攻击
SMB Relay 攻击 是什么?
SMB Relay 攻击NTLM Relay 的一种特定变体,攻击者将受害者的 SMB 认证转发到另一台 SMB 服务器,以受害者身份获取代码执行或文件访问。
SMB Relay 攻击利用 Windows 文件共享在未强制 SMB 签名时的认证机制。攻击者将自己置于受害主机与目标服务器之间——通常通过用 Responder 投毒名称解析,或诱导受害者打开恶意 UNC 路径——然后把受害者的 NTLM 认证转发到一个不要求签名的目标 SMB 服务器。如果被转发的身份在目标上拥有本地管理员权限,攻击者就能以受害者身份安装 PsExec 式服务、创建计划任务,或读取敏感共享。
该攻击可追溯到 2001 年 Cult of the Dead Cow 的一次披露,并因 Metasploit 的演示而广为人知。最初,攻击者可以将受害者的凭据直接转发回发起认证的主机本身(“凭据反射”)。微软在 2008 年 11 月通过 MS08-068 封堵了这条具体路径,此后 SMB 服务会拒绝它识别为自己刚刚签发的挑战——因此自 2008 年起,你必须将认证转发到一台不同于源主机的机器。正是这一限制使得现代 SMB Relay 依赖于找到第二台主机(横向目标),并依赖于该主机上的签名被禁用。2025 年的 SMB 客户端漏洞 CVE-2025-33073 曾短暂复活了一种反射式权限提升,随后被修补,这凸显了底层 NTLM 弱点的顽固性。
flowchart LR P["投毒 LLMNR/NBT-NS<br/>或强制 UNC 路径"] --> V[受害者发送 NTLM 认证] V --> A["攻击者转发<br/>smbrelayx / ntlmrelayx"] A -->|"转发到一台不同的主机<br/>且未强制签名"| T[(目标 SMB 服务器)] T -->|受害者是本地管理员| X["安装服务 / PsExec<br/>命令执行"] T -->|否则| R[读取敏感共享] S[两端均要求 SMB 签名] -.阻止.-> A
最主要的缓解措施是在客户端和服务端都强制 SMB 签名;LDAPS、仅 Kerberos 的环境以及禁用 NTLM 可进一步降低暴露面。标志性工具是 Impacket 的 smbrelayx 与 ntlmrelayx -t smb://。
● 示例
- 01
通过将一台财务工作站的 NTLM 认证转发到复用了相同管理员密码的另一台机器,实现横向控制。
- 02
在转发捕获的 NTLMv2 哈希后,从未启用签名的文件服务器读取薪酬数据。
● 常见问题
SMB Relay 攻击 是什么?
NTLM Relay 的一种特定变体,攻击者将受害者的 SMB 认证转发到另一台 SMB 服务器,以受害者身份获取代码执行或文件访问。 它属于网络安全的 攻击与威胁 分类。
SMB Relay 攻击 是什么意思?
NTLM Relay 的一种特定变体,攻击者将受害者的 SMB 认证转发到另一台 SMB 服务器,以受害者身份获取代码执行或文件访问。
如何防御 SMB Relay 攻击?
针对 SMB Relay 攻击 的防御通常结合技术控制与运营实践,详见上方完整定义。
SMB Relay 攻击 还有哪些其他名称?
常见的别称包括: SMB relaying, 跨协议 SMB Relay。