KB5020276—Netjoin:網域加入加固變更

套用到
Windows Server 2008 Datacenter ESU Windows Server 2008 Standard ESU Windows Server 2008 Enterprise ESU Windows 7 Enterprise ESU Windows 7 Professional ESU Windows 7 Ultimate ESU Windows Server 2008 R2 Enterprise ESU Windows Server 2008 R2 Standard ESU Windows Server 2008 R2 Datacenter ESU Windows Embedded Standard 7 ESU Windows Embedded POSReady 7 ESU Windows Server 2012 Windows Embedded 8 Standard Windows 8.1 Windows RT 8.1 Windows Server 2012 R2 Windows Embedded 8.1 Industry Enterprise Windows Embedded 8.1 Industry Pro Windows 10 Windows 10, version 1607, all editions Windows Server 2016, all editions Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 IoT Core LTSC Windows Server 2019 Windows 10 Enterprise Multi-Session, version 20H2 Windows 10 Enterprise and Education, version 20H2 Windows 10 IoT Enterprise, version 20H2 Windows 10 on Surface Hub Windows 10, version 21H1, all editions Windows 10, version 21H2, all editions Windows 11 version 21H2, all editions Windows 11 version 22H2, all editions Windows Server 2022

注意

更新於2024年8月13日;參見2024年8月13日的行為

摘要

2022 年 10 月 11 日及之後發布的 Windows 更新包含 CVE-2022-38042 所引入的額外保護措施。 這些保護是故意防止網域加入操作重複使用目標網域中現有的電腦帳號,除非:

  • 嘗試操作的使用者是現有帳號的創建者,
  • 該電腦由網域管理員成員所建立,
  • 被重複使用的電腦帳號擁有者是「網域控制器:允許在網域加入時重複使用電腦帳號」的成員。群組原則設定。 此設定要求在所有成員電腦及網域控制站安裝 2023 年 3 月 14 日或之後發布的 Windows 更新。

2023 年 3 月 14 日及 2023 年 9 月 12 日發布的匯報,將為受影響的 Windows Server 2012 R2 及以上版本客戶,以及所有支援的客戶端提供更多選項。 欲了解更多資訊,請參閱 2022年10月11 日的行為與 行動 章節。

注意

本文先前提及 NetJoinLegacyAccountReuse 登錄檔金鑰。 截至 2024 年 8 月 13 日,此登錄序號及其本文中的參考資料已被移除。

10月11日之前的行為。 2022

在安裝 2022 年 10 月 11 日或之後的累積更新前,用戶端電腦會向 Active Directory 查詢同名的現有帳號。 此查詢發生於網域加入及電腦帳號配置期間。 若有此類帳號,客戶端會自動嘗試重複使用。

注意

如果嘗試網域加入操作的使用者沒有適當的寫入權限,重用嘗試將無法成功。 然而,如果使用者擁有足夠的權限,網域加入將會成功。

以下是兩種領域加入的情境,各自具備預設行為與旗標:

2022年10月11日行為

一旦您在用戶端電腦安裝了 2022 年 10 月 11 日或之後的 Windows 累積更新,並在網域加入時,用戶端會在嘗試重複使用現有電腦帳號前進行額外的安全檢查。 演算法:

  1. 若嘗試重複使用的使用者是現有帳號的創建者,則允許嘗試重複使用帳號。
  2. 若帳號是由網域管理員成員創建,則允許嘗試重複使用帳號。

這些額外的安全檢查會在嘗試加入電腦前完成。 若檢查成功,其餘的加入操作仍受 Active Directory 權限限制。

此變更不影響新帳戶。

注意

  • 安裝 2022 年 10 月 11 日或之後的 Windows 累積更新後,使用電腦帳號重用網域加入可能會因以下錯誤而故意停止運作:
  • 錯誤 0xaac (2732) :NERR_AccountReuseBlockedByPolicy:「Active Directory 中存在一個同名帳號。 安全政策封鎖了重複使用該帳號。」
  • 如果是這樣,帳號是刻意被新行為保護。
  • 當上述錯誤發生時,事件 ID 4101 會被觸發,問題會被記錄在 c:\windows\debug\netsetup.log。 請依照以下步驟「 採取行動 」來了解故障原因並解決問題。

2023年3月14日行為

在 2023 年 3 月 14 日或之後釋出的 Windows 更新中,我們對安全強化做了一些調整。 這些變更包括我們在2022年10月11日所做的所有變更。

首先,我們擴大了免於此強化的群體範圍。 除了網域管理員外,企業管理員與內建管理員群組現在也免於所有權檢查。

其次,我們實作了新的群組原則設定。 管理員可以使用它來指定一個可信電腦帳號擁有者的允許清單。 若以下其中一項為真,電腦帳號將繞過安全檢查:

該帳號由「網域控制所:允許在網域加入時重複使用電腦帳號」群組原則中指定的受信任擁有者擁有。

該帳號由一位使用者擁有,該群組成員在「網域控制站:允許在網域加入時允許電腦帳號重用」群組原則中指定為受信任擁有者。

要使用此新群組原則,網域控制器與成員電腦必須持續安裝 2023 年 3 月 14 日或之後的更新。 你們中有些人可能有特定的帳號,會用來自動建立電腦帳號。 如果這些帳號安全且你信任他們能建立電腦帳號,你可以豁免他們。 你仍然可以防範 2022 年 10 月 11 日 Windows 更新所緩解的原始漏洞。

2023年9月12日行為

在 2023 年 9 月 12 日或之後釋出的 Windows 更新中,我們對安全強化做了幾項額外調整。 這些變更包括我們在 2022 年 10 月 11 日所做的所有變更,以及自 2023 年 3 月 14 日起的變更。

我們解決了一個問題,就是無論政策設定如何,使用智慧卡認證網域加入都失敗。 為了解決這個問題,我們將剩餘的安全檢查移回網域控制器。 因此,在 2023 年 9 月的安全更新後,用戶端機器會對網域控制器進行經過認證的 SAMRPC 呼叫,以執行與重用電腦帳號相關的安全驗證檢查。

然而,這可能導致在設定以下政策的環境中,網域加入失敗: 網路存取:限制允許用戶端遠端呼叫 SAM。  請參閱「已知問題」章節,了解如何解決此問題。

2024年8月13日行為

在 2024 年 8 月 13 日或之後釋出的 Windows 更新中,我們已解決所有已知的相容性問題,並針對允許清單政策進行修正。 我們也移除了對 NetJoinLegacyAccountReuse 金鑰的支援。 硬化行為無論鍵值設定如何都會持續。 適當的新增豁免方法列於下方「採取行動」部分。

採取行動

在網域控制器上使用群組原則設定新的允許清單政策,並移除所有舊有的客戶端變通方法。 然後執行下列動作:

  1. 您必須在所有成員電腦和網域控制器上安裝 2023 年 9 月 12 日或之後的更新。

  2. 在適用於所有網域控制器的新或現有群組政策中,請依以下步驟設定設定。

  3. 電腦設定\政策\Windows 設定\安全設定\本地政策\安全選項中, 雙擊網域 控制器:允許網域帳戶在網域加入時重複使用

  4. 選擇 「定義此政策設定」並 <「編輯安全性...>」。

  5. 使用物件選擇器將受信任的電腦帳號創建者和擁有者加入 「允許 」權限。 (作為最佳實務,我們強烈建議您使用群組來管理權限。) 不要新增執行網域加入的使用者帳號。

    警告

    限制該政策的成員資格僅限受信任的使用者和服務帳號。 請勿將已認證的使用者、所有人或其他大型群組加入此政策。 相反地,將特定的受信任使用者和服務帳號加入群組,並將這些群組加入政策中。

  6. 等待群組原則刷新間隔,或對所有域控制器執行 gpupdate /force

  7. 確認 HKLM\System\CCS\Control\SAM – 「ComputerAccountReuseAllowList」登錄檔金鑰是否已填入所需的 SDDL。 請勿手動編輯登錄檔。

  8. 嘗試加入安裝 2023 年 9 月 12 日或更新的電腦。 確保保單中列出的其中一個帳戶擁有該電腦帳戶。 如果網域加入失敗,請檢查 c:\windows\debug\netsetup.log。

如果你仍需要替代方案,請檢視電腦帳號配置的工作流程,了解是否需要更改。

  1. 使用與目標網域建立電腦帳號相同的帳號執行加入操作。
  2. 如果現有帳號 () 過時,請在嘗試重新加入網域前刪除它。
  3. 重新命名電腦,並用一個不存在的帳號加入。
  4. 如果現有帳號由受信任的安全主體擁有,且管理員想重複使用該帳號,請依照「採取行動」區段的指引安裝 2023 年 9 月或之後的 Windows 更新並設定允許清單。

非解

  • 請勿將服務帳號或預建帳號加入網域管理員的安全群組。
  • 除非前擁有者帳戶已被刪除,否則不要手動編輯電腦帳戶的安全描述符以重新定義該帳戶的所有權。 雖然編輯擁有者會使新檢查成功,但電腦帳號可能會保留原始擁有者同樣可能有風險且不受歡迎的權限,除非明確審查並移除。

新事件記錄
事件記錄檔 SYSTEM
事件來源 Netjoin
事件識別碼 4100
事件類型 Informational
活動正文 「在網域加入過程中,聯絡的網域控制器在 Active Directory 中發現了一個同名的現有電腦帳號。
允許嘗試重複使用此帳號。
搜尋網域控制器: <網域控制器名稱>現有電腦帳號DN: <電腦帳號>的DN路徑。 更多資訊請參見 https://go.microsoft.com/fwlink/?linkid=2202145。
事件記錄檔 SYSTEM
事件來源 Netjoin
事件識別碼 4101
事件類型 錯誤
活動正文 在網域加入過程中,被聯絡的網域控制器在 Active Directory 中發現了一個同名的現有電腦帳號。 出於安全考量,曾嘗試重複使用此帳號。 網域控制中心搜尋:現有電腦帳號DN:錯誤代碼為 <錯誤代碼>。 更多資訊請參見 https://go.microsoft.com/fwlink/?linkid=2202145。

除錯日誌預設可用 (無需在所有用戶端電腦中啟用冗長的日誌) C:\Windows\Debug\netsetup.log。

當因安全考量禁止重複使用帳號時所產生的除錯日誌範例:


NetpGetComputerObjectDn: Crack results: (Account already exists) DN = CN=Computer2,CN=Computers,DC=contoso,DC=com
NetpGetADObjectOwnerAttributes: Looking up attributes for machine account: CN=Computer2,CN=Computers,DC=contoso,DC=com
NetpCheckIfAccountShouldBeReused: Account was created through joinpriv and does not belong to this user. Blocking re-use of account.
NetpCheckIfAccountShouldBeReused:fReuseAllowed: FALSE, NetStatus:0x0
NetpModifyComputerObjectInDs: Account exists and re-use is blocked by policy. Error: 0xaac
NetpProvisionComputerAccount: LDAP creation failed: 0xaac
ldap_unbind status: 0x0
NetpJoinCreatePackagePart: status:0xaac.
NetpJoinDomainOnDs: Function exits with status of: 0xaac
NetpJoinDomainOnDs: status of disconnecting from '\\DC1.contoso.com': 0x0
NetpResetIDNEncoding: DnsDisableIdnEncoding(RESETALL) on 'contoso.com' returned 0x0
NetpJoinDomainOnDs: NetpResetIDNEncoding on 'contoso.com': 0x0
NetpDoDomainJoin: status: 0xaac

2023年3月新增賽事

此更新在網域控制器的 SYSTEM 日誌中新增了四個 () 新事件,具體如下:

活動層級 Informational
事件編號 16995
日誌 SYSTEM
事件來源 Directory-Services-SAM
活動正文 安全帳號管理員使用指定的安全描述符來驗證網域加入期間電腦帳號重複使用嘗試。
SDDL 值: <SDDL 字串>
這個允許清單是透過 Active Directory 中的群組政策設定的。
欲了解更多資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=2202145。
活動層級 錯誤
事件編號 16996
日誌 SYSTEM
事件來源 Directory-Services-SAM
活動正文 包含用於驗證客戶端請求網域加入的電腦帳戶重用允許清單的安全描述符格式錯誤。
SDDL 值: <SDDL 字串>
這個允許清單是透過 Active Directory 中的群組政策設定的。
為了解決此問題,管理員需要更新政策,將此值設為有效的安全描述符或停用。
欲了解更多資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=2202145。
活動層級 錯誤
事件編號 16997
日誌 SYSTEM
事件來源 Directory-Services-SAM
活動正文 安全帳戶經理發現了一個看似孤立且沒有現有擁有者的電腦帳戶。
電腦帳號:S-1-5-xxx
電腦帳號持有人:S-1-5-xxx
欲了解更多資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=2202145。
活動層級 警告
事件編號 16998
日誌 SYSTEM
事件來源 Directory-Services-SAM
活動正文 安全帳號經理拒絕了客戶在網域加入時重複使用電腦帳號的請求。
電腦帳號和客戶端身份未通過安全驗證檢查。
客戶帳戶:S-1-5-xxx
電腦帳號:S-1-5-xxx
電腦帳號持有人:S-1-5-xxx
請檢查此事件的紀錄資料,尋找 NT 錯誤代碼。
欲了解更多資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=2202145。

如有需要,netsetup.log可以提供更多資訊。

已知問題

問題 描述
問題 1 安裝 2023 年 9 月 12 日或之後的更新後,在設定以下政策的環境中,網域加入可能會失敗:網路存取 - 限制允許用戶端遠端呼叫 SAM - Windows 安全性 |Microsoft Learn。 這是因為用戶端機器現在會對網域控制器進行認證的 SAMRPC 呼叫,以執行與重用電腦帳號相關的安全驗證檢查。

這是預料之中的。 為了因應此變更,管理員應將網域控制器的 SAMRPC 政策維持在預設設定,或在 SDDL 設定中明確包含執行網域加入的使用者群組以授予權限。
**此問題發生netsetup.log範例:**2023/09/18 13:37:15:379 NetpDsValidateComputerAccountReuseTry: returning ntStatus: c0000022, NetStatus: 5 09/18/2023 13:37:15:379 NetpDsValidateComputerAccountReuseAttempt: returning Result: FALSE 09/18/2023 13:37:15:379 NetpCheckIfAccountShouldBeused: Active Directory Policy check with SAM_DOMAIN_JOIN_POLICY_LEVEL_V2 returnStatus:0x5. 2023/09/18 13:37:15:379 NetpCheckIfAccountShouldBeReused:fReuseAllowed: FALSE, NetStatus:0x0 2023/09/18 13:37:15:379 NetpModifyComputerObjectInDs:帳號存在,且政策封鎖了重複使用。 錯誤:0xaac 2023/09/18 13:37:15:379 NetpProvisionComputerAccount:LDAP 建立失敗:0xaac
問題 2 若電腦擁有者帳號已被刪除,且嘗試重複使用該帳號,事件 16997 會被記錄在系統事件日誌中。 若發生這種情況,將所有權重新指派給其他帳號或群組是可以的。
第三期 如果只有用戶端有 2023 年 3 月 14 日或之後的更新,Active Directory 政策檢查會回傳 0x32 STATUS_NOT_SUPPORTED。 先前在十一月熱修補中實作的檢查將如下所示套用:NetpDsValidateComputerAccountReuseAttempt: returning ntStatus: c00000bb, NetStatus: 32 NetpDsValidateComputerAccountReuseTry: returning 結果: FALSE NetpCheckIfAccountShouldBeReused: Active Directory Policy check return NetStatus:0x32. NetpCheckIfAccountShouldBeReused:fReuseAllowed: FALSE, NetStatus:0x0 NetpModifyComputerObjectInDs: Account exists,且政策封鎖了重用。 錯誤:0xaac NetpProvisionComputerAccount:LDAP 建立失敗:0xaac
第4期 在 2024 年 8 月 13 日更新後,你需要在鎖定特定網域控制器時指定網域控制器 DNS 的 FQDN 名稱。 有一個已知問題是只有 DNS FQDN 網域控制器名稱格式能正常運作。 這看起來像是網域重新加入的設定沒有正確設定。
NetSetup.Log
在 NetSetup.Log 中,你有以下內容:
NetpDsValidateComputerAccountReuseAttempt: return ntStatus: c0000022, NetStatus: 5 NetpDsValidateComputerAccountReuseAttempt: returning 結果: FALSE NetpCheckIfAccountShouldBeused: Active Directory Policy check with SAM_DOMAIN_JOIN_POLICY_LEVEL_V2 returndit: 0x5. NetpCheckIfAccountShouldBeReused:fReuseAllowed: FALSE, NetStatus:0x0 NetpModifyComputerObjectInDs: Account exists,且政策封鎖了重用。 錯誤:0xaac網路追蹤
在網路追蹤中,你會看到嘗試用本地使用者的憑證登入 SMB 的 DC:
SMB2 會話設定請求,NTLMSSP_AUTH,使用者:Member12\SuperUser SMB2 會話設定回應,錯誤:STATUS_LOGON_FAILUREIn網路追蹤,你可能會找到一個成功建立的會話,使用一個簡短的舊電腦名稱的 Kerberos 工單。
Netdom 加入錯誤
電腦重命名嘗試以錯誤 2732 失敗。 Active Directory 中存在同名帳號。 帳戶的重複使用被安全政策阻擋。來自新增電腦的錯誤
執行「在網域 'contoso.com\DC1' 中加入」的操作,目標「Member12」。
新增電腦:電腦「Member12」未能從目前工作群組「WORKGROUP」加入網域 'contoso.com\DC1',並出現以下錯誤訊息:Active Directory 中存在同名帳號。 帳戶的重複使用被安全政策封鎖。
解決方案
解決方法是始終使用 DNS FQDN:
網路: /d:contoso.com\DC1.contoso.com
Add-Computer: -Server 'DC1.contoso.com'