微軟在 6 月發下豪語把 NTLM 加入已棄用的功能清單,https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features。
我們今天要講的是 Win11 24H2 對 NTLM 開的第一槍
微軟開的第一槍就是 SMB 的 NTLM 驗證,因為這是常常被濫用的一個點,例如透過 UNC 解析讓電腦/使用者對外送出 NTLM 驗證,從而做出來 NTLM Relay 這種攻擊手法,這是 Windows 長達 12 年被探討的問題,說是陳年的老問題也不為過。
我想微軟能夠先動這個功能最大的原因,普通使用者使用 SMB 的情境已經變少了,而還在使用的不外乎是企業或是比較懂資訊的使用者,他們如果在 Win11 24H2 遇到這問題是能夠自己處理的。
那該如何使用這個功能呢,你可以透過這些方式開啟
PowerShell 指令,這樣開啟會變成整台電腦啟用:
Set-SMbClientConfiguration -BlockNTLM $true
但我們介紹的時候有說這功能本身也是有 exception list,可以對指定 SMB share 能不能使用 NTLM 驗證:
New-SmbMapping -RemotePath \\smb_server\sharefolder -BlockNTLM $false
雖然此功能理論上對大部分的軟體應該不會造成影響,但建議在啟用前進行測試,或僅對特定的 SMB 共用停用 NTLM 驗證以降低風險。
此外,若對 SMB 共用使用全域設定,例如我的 NAS 使用 SMB 共用但僅支援 NTLM 驗證,若未特別設定白名單,將無法於系統中使用。
同樣地,若兩臺 Windows 11 24H2 設定相同的設定,可能會導致無法連線,因為 SMB Server 不支援 NTLM 以外的驗證模式,當下也沒有 kerberos 可以驗證,除非這台伺服器在 AD 中。不過,如果未來微軟完善 Local KDC,此問題預計將會獲得解決。