บทสรุป
CVE-2021-42278ระบุช่องโหว่การเลี่ยงผ่านด้านความปลอดภัยที่อนุญาตให้ผู้โจมตีที่อาจเกิดขึ้นเลียนแบบตัวควบคุมโดเมนโดยใช้บัญชีคอมพิวเตอร์การปลอมแปลงsAMAccountName
บทความนี้มีรายละเอียดเพิ่มเติมและส่วนถามที่ถามบ่อยของ Active Directory Security Accounts Manager (SAM) จะ hardening changes made by Windows updates released on November 9, 2021 และใหม่กว่า as documented in CVE-2021-42278.
การตรวจสอบความถูกต้องของ Active Directory
หลังจากติดตั้ง CVE-2021-42278Active Directory จะตรวจสอบความถูกต้องที่แสดงอยู่ด้านล่างบน sAMAccountName และ UserAccountControl แอตทริบิวต์ของบัญชีคอมพิวเตอร์ที่สร้างหรือปรับเปลี่ยนโดยผู้ใช้ที่ไม่มีสิทธิ์ระดับผู้ดูแลระบบของบัญชีเครื่อง
-
sAMAccountType การตรวจสอบความถูกต้องบัญชีของผู้ใช้และคอมพิวเตอร์
-
ObjectClass=Computer (หรือคลาสย่อยของคอมพิวเตอร์) ต้องมีค่าสถานะ UserAccountControl UF_WORKSTATION_TRUST_ACCOUNTหรือUF_SERVER_TRUST_ACCOUNT
-
ObjectClass=User ต้องมีค่าสถานะ UAC UF_NORMAL_ACCOUNTหรือUF_INTERDOMAIN_TRUST_ACCOUNT
-
-
การตรวจสอบ sAMAccountName ของบัญชีคอมพิวเตอร์
sAMAccountNameของบัญชีคอมพิวเตอร์ที่มีแอตทริบิวต์UserAccountControlมีค่าสถานะ UF_WORKSTATION_TRUST_ACCOUNTต้องลงท้ายด้วยเครื่องหมายดอลลาร์เดียว ($) เมื่อไม่ตรงตามเงื่อนไขเหล่านี้ Active Directory จะส่งกลับค่าโค้ดที่ล้มเหลว0x523 ERROR_INVALID_ACCOUNTNAME การตรวจสอบความถูกต้องล้มเหลวจะถูกบันทึกใน ID เหตุการณ์ Directory-Services-SAM 16991 ในบันทึกเหตุการณ์ของระบบ
เมื่อไม่ตรงตามเงื่อนไขเหล่านี้ Active Directory จะส่งกลับรหัสความล้มเหลวของACCESS_DENIED การตรวจสอบความถูกต้องล้มเหลวจะถูกบันทึกใน ID เหตุการณ์ Directory-Services-SAM 16990 ในบันทึกเหตุการณ์ของระบบ
กิจกรรมการตรวจสอบ
คลาสของวัตถุและความล้มเหลวในการตรวจสอบความถูกต้อง UserAccountControl
เมื่อการตรวจสอบความถูกต้องของคลาสวัตถุและ UserAccountControl ล้มเหลว เหตุการณ์ต่อไปนี้จะถูกบันทึกในบันทึกของระบบ:
บันทึกเหตุการณ์ |
ระบบ |
ชนิดเหตุการณ์ |
ข้อผิดพลาด |
แหล่งของเหตุการณ์ |
Directory-Services-SAM |
ID เหตุการณ์ |
16990 |
ข้อความเหตุการณ์ |
ตัวจัดการบัญชีความปลอดภัยบล็อกไม่ให้ผู้ดูแลระบบสร้างบัญชี Active Directory ในโดเมนนี้ด้วยวัตถุที่ไม่ตรงกันคลาสและ userAccountควบคุมค่าสถานะชนิดบัญชี รายละเอียด: ชื่อบัญชี: %1%n Account objectClass: %2%n userAccountControl: %3%n ที่อยู่ผู้เรียกเข้า: %4%n Caller SID: %5%n%n |
ความล้มเหลวในการตรวจสอบความถูกต้องของชื่อบัญชีผู้ใช้ SAM
เมื่อการตรวจสอบความถูกต้องของชื่อบัญชี SAM ล้มเหลว เหตุการณ์ต่อไปนี้จะถูกบันทึกในบันทึกของระบบ:
บันทึกเหตุการณ์ |
ระบบ |
ชนิดเหตุการณ์ |
ข้อผิดพลาด |
แหล่งของเหตุการณ์ |
Directory-Services-SAM |
ID เหตุการณ์ |
16991 |
ข้อความเหตุการณ์ |
ตัวจัดการบัญชีความปลอดภัยบล็อกไม่ให้ผู้ดูแลระบบสร้างหรือเปลี่ยนชื่อบัญชีคอมพิวเตอร์โดยใช้ sAMAccountName ที่ไม่ถูกต้อง sAMAccountName ในบัญชีคอมพิวเตอร์ต้องลงท้ายด้วยสัญลักษณ์ $ ต่อท้ายเพียงเครื่องหมายเดียว พยายาม sAMAccountName: %1 sAMAccountName ที่แนะนนะ: %1$ |
เหตุการณ์การตรวจสอบการสร้างบัญชีคอมพิวเตอร์ที่ประสบความสเร็จ
เหตุการณ์การตรวจสอบที่มีอยู่ต่อไปนี้จะพร้อมใช้งานในการสร้างบัญชีคอมพิวเตอร์ที่ประสบความสเร็จ:
-
4741(S): สร้างบัญชีคอมพิวเตอร์แล้ว
-
4742(S): บัญชีคอมพิวเตอร์ถูกเปลี่ยนแปลง
-
4743(S): บัญชีคอมพิวเตอร์ถูกลบ
ดูข้อมูลเพิ่มเติมที่ ตรวจสอบการจัดการบัญชีคอมพิวเตอร์
คำถามที่ถามบ่อย
Q1. การอัปเดตนี้มีผลต่อวัตถุที่มีอยู่ใน Active Directory อย่างไร
A1. For existing objects, the validation occurs when users who do not have administrator rights modify the sAMAccountName or UserAccountControl attributes.
Q2. sAMAccountName คืออะไร
A2. sAMAccountName เป็นแอตทริบิวต์เฉพาะของหลักความปลอดภัยทั้งหมดใน Active Directory และรวมถึงผู้ใช้ กลุ่ม และคอมพิวเตอร์ ข้อ Constraint ชื่อของ sAMAccountName มีอยู่ใน 3.1.1.6 ข้อConstraint แอตทริบิวต์ของ การอัปเดตเริ่มต้น
Q3. sAMAccountType คืออะไร
A3. โปรดอ่านเอกสารต่อไปนี้เพื่อดูข้อมูลเพิ่มเติม:
มีค่า sAMAccountType ที่เป็นไปได้สามค่าที่สอดคล้องกับค่าสถานะ UserAccountcontrol ที่เป็นไปได้สี่ค่า ดังต่อไปนี้:
userAccountControl |
sAMAccountType |
---|---|
UF_NORMAL_ACCOUNT |
SAM_USER_OBJECT |
UF_INTERDOMAIN_TRUST_ACCOUNT |
SAM_TRUST_ACCOUNT |
UF_WORKSTATION_TRUST_ACCOUNT |
SAM_MACHINE_ACCOUNT |
UF_SERVER_TRUST_ACCOUNT |
SAM_MACHINE_ACCOUNT |
Q4. ค่าที่เป็นไปได้ของ UserAccountControl คืออะไร
A4. โปรดอ่านเอกสารต่อไปนี้เพื่อดูข้อมูลเพิ่มเติม:
Q5. ฉันจะค้นหาวัตถุที่ไม่ตรงตามมาตรฐานที่มีอยู่แล้วในสภาพแวดล้อมของฉันได้อย่างไร
A5. ผู้ดูแลระบบสามารถค้นหาบัญชีที่ไม่มีการปฏิบัติตามนโยบายในไดเรกทอรีของพวกเขาโดยใช้สคริปต์ PowerShell เช่นตัวอย่างด้านล่าง
เมื่อต้องการค้นหาบัญชีคอมพิวเตอร์ที่มี sAMAccountName ที่ไม่ตรงตามมาตรฐาน:
Get-ADComputer -LDAPFilter "(samAccountName=*)" |? SamAccountName -NotLike "*$" | select DNSHostName, Name, SamAccountName |
เมื่อต้องการค้นหาบัญชีคอมพิวเตอร์ที่มี UserAccountControl sAMAccountType ที่ไม่สอดคล้อง:
Get-ADComputer -LDAPFilter "UserAccountControl:1.2.840.113556.1.4.803:=512” |