深度技術分析 Windows SMB 協議(埠 139/445)在 NTLM 認證過程中洩露加密密碼雜湊的機制,及駭客如何利用中繼攻擊(SMB Relay)竊取身份存取網路資源。
SMB 認證流程與洩露點
- 客戶端 → 伺服器:建立 TCP 連線(埠 139/445)。
- 客戶端 → 伺服器:發送協商協議、支援的認證方式。
- 伺服器 → 客戶端:回應選定認證方式(用戶級/共享級)與 8/16 位元組隨機挑戰。
- 關鍵洩露:客戶端無提示自動發送
用戶名 + DES變體加密雜湊(LockedPass = CHGDES(Challenge, Password))。Windows 9x/NT/2000 均存在此行為。
- 伺服器驗證雜湊,回應成功/失敗。
中繼攻擊原理
- 攻擊者誘騙受害者連線攻擊者控制的 SMB 服務(如郵件/網頁嵌入
file://attacker_ip/share)。
- 攻擊者作為中繼伺服器,將受害者的認證雜湊轉發給目標伺服器(或反向連回目標的 SMB 服務)。
- 因挑戰值可控(攻擊者同時扮演客戶端與伺服器角色),驗證通過,攻擊者以受害者身份獲得目標資源存取權。
實驗驗證
作者移除本機 139 埠服務,使用埠轉向工具將連線導向另一台 WinNT 主機,以 file://ip 誘導受害者訪問,結果無密碼提示直接存取目標主機資源。
防禦措施
- 啟用 SMB 簽名(強制要求簽名),防止中繼竄改。
- 停用 NTLMv1,強制使用 NTLMv2/Kerberos。
- 防火牆封鎖對外開放 139/445 埠。
- 限制用戶權限,避免高權限帳號用於日常瀏覽/郵件。
- 部署網路存取保護(NAC)與異常登入行為分析。
SMB 中繼攻擊歷經二十年仍具威脅,核心在於挑戰-回應機制缺乏綁定通道完整性,簽名與 Kerberos 是根治之道。