Try   HackMD

如何關閉舊的微軟驗證機制(NTLM)

tags: AD, 驗證, NTLM

2023/05/07

微軟身分驗證機制中,NTLM 是已經過時的驗證機制,使用此驗證機制相對不安全,容易遭受攻擊,尤其是NTLMv1建議禁用

微軟身分驗證機制 建議 備註
NTLMv1 建議禁用
NTLMv2 建議僅本地使用,網域帳號不要使用 本地帳號登入的驗證通常使用 NTLMv2 或者 LSA
Kerberos 建議使用 通常用於網域驗證

關閉舊的身分驗證機制

設定選項

可以使用 Group Policy 或 PowerShell 指令來設定。

在 Group Policy 中,這些設定通常位於 電腦設定\Windows 設定\安全性設定\本機原則\安全性選項,其中包括以下選項

  • 網路安全性: 限制 NTLM: 送往遠端伺服器的連出 NTLM 流量
  • 網路安全性: 限制 NTLM: 稽核連入 NTLM 流量
  • 網路安全性: 限制 NTLM: 連入 NTLM 流量
  • [GCB要求]網路安全性: LAN Manager 驗證等級
  • [GCB要求]網路安全性: NTLM SSP 為主的 (包含安全 RPC) 伺服端的最小工作階段安全性
  • [GCB要求]網路安全性: NTLM SSP 為主的 (包含安全 RPC) 用戶端的最小工作階段安全性
  • [GCB要求]網路安全性: 設定 Kerberos 允許的加密類型

項目描述

1. 網路安全性: 限制 NTLM: 送往遠端伺服器的連出 NTLM 流量

Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers
此原則設定允許您拒絕或稽核從此電腦到任何 Windows 遠端伺服器的連出 NTLM 流量。

  • 全部允許(Allow all) (預設)
  • 全部稽核
  • 全部拒絕(Deny all)
  • Deny all domain accounts

建議設定為 "全部拒絕(Deny all)",因為這可以減少遠端伺服器遭受 NTLM 中繼攻擊的風險。

p.s.

  • GCB無此設定
  • 我的 win 11 沒有 Deny all domain accounts,多了全部稽核
  • 必須至少是 Windows 7 或 Windows Server 2008 R2 才支援此原則。

2. 網路安全性: 限制 NTLM: 稽核連入 NTLM 流量

Network security: Restrict NTLM: Audit NTLM authentication in this domain
這個原則設定允許您稽核連入 NTLM 流量。

  • 停用(Disabled) (預設)
  • 啟用網域帳戶的稽核(Enable auditing for domain accounts)
  • 啟用所有帳戶的稽核(Enable auditing for all accounts)

建議設定為 "啟用所有帳戶的稽核",因為這可以增加對 NTLM 中繼攻擊的檢測和追蹤。

e.g.

  • GCB無此設定
  • 必須至少是 Windows 7 或 Windows Server 2008 R2 才支援此原則。

3. 網路安全性: 限制 NTLM: 連入 NTLM 流量

Network security: Restrict NTLM: Incoming NTLM traffic
此原則設定允許您拒絕或允許連入 NTLM 流量。

  • 全部允許(Allow all) (預設)
  • 拒絕所有網域帳戶(Deny for domain accounts)
  • 拒絕所有帳戶(Deny all)

建議設定為 "拒絕所有網域帳戶",因為這可以減少 NTLM 中繼攻擊的風險,也避免本地帳戶無法登入

e.g.

  • GCB無此設定
  • 必須至少是 Windows 7 或 Windows Server 2008 R2 才支援此原則。

4. 網路安全性: LAN Manager 驗證等級

Network security: LAN Manager authentication level
此安全性設定決定使用哪種 Challenge/Response 驗證通訊協定登入網路。此選擇會影響用戶端使用的驗證通訊協定層級、交涉的工作階段安全性層級,以及伺服器接受的驗證等級,如下:

  • 傳送 LM 和 NTLM 回應
  • 傳送 LM 和 NTLM - 如有交涉,使用 NTLMv2 工作階段安全性
  • 只傳送 NTLM 回應
  • 只傳送 NTLMv2 回應
  • 只傳送 NTLMv2 回應,拒絕 LM
  • 只傳送 NTLMv2 回應,拒絕 LM 和 NTLM

依GCB要求為 只傳送 NTLMv2 回應,拒絕 LM 和 NTLM

5. 網路安全性: NTLM SSP 為主的 (包含安全 RPC) 伺服端的最小工作階段安全性

此安全性設定允許用戶端要求 128 位元加密和/或 NTLMv2 工作階段安全性的交涉。這些值依存於 LAN Manager 驗證等級安全性設定值。選項如下:

  • 要求 NTLMv2 工作階段安全性
  • 要求 128 位元加密

依GCB要求兩個選項都勾選

6. 網路安全性: NTLM SSP 為主的 (包含安全 RPC) 用戶端的最小工作階段安全性

此安全性設定允許用戶端要求 128 位元加密和/或 NTLMv2 工作階段安全性的交涉。這些值依存於 LAN Manager 驗證等級安全性設定值。選項如下:

  • 要求 NTLMv2 工作階段安全性
  • 要求 128 位元加密

依GCB要求兩個選項都勾選

7. 網路安全性: 設定 Kerberos 允許的加密類型

  • DES_CBC_CRC : 不勾選
  • DES_CBC_MD5 : 不勾選
  • RC4_HMAC_MD5 : 不勾選
  • AES128_HMAC_SHA1 : 勾選
  • AES256_HMAC_SHA1 : 勾選
  • 未來的加密類型 : 勾選

依GCB要求勾選以下選項AES128_HMAC_SHA1AES256_HMAC_SHA1未來的加密類型
不勾選DES_CBC_CRC, DES_CBC_MD5, RC4_HMAC_MD5

若要關閉加密類型RC4_HMAC_MD5
至少要 Windows Server 2008 等級,或 Windows Server 2012 R2 + KB2998097

參考資料

[1] 作業系統GPO - 國家資通安全研究院 (nat.gov.tw)

[2] 安全性選項 | Microsoft Learn

[3] 防止 Kerberos 變更使用 RC4 秘密金鑰的密碼 | Microsoft Learn

[4] 如果 RC4 已停用在 Windows Server 2012 強制重新啟動電腦 - Microsoft 支援服務

[5] Lsass.exe 損毀和系統自動關閉 Windows Server 2012 R2 為基礎的伺服器上 - Microsoft 支援服務