บรรลุความคงอยู่โดยใช้ AdminSDHolder และ SDProp
เมื่อฝ่ายตรงข้ามได้บุกรุกข้อมูลประจำตัวที่มีสิทธิพิเศษ เช่น ด้วยการใช้ประโยชน์จากเส้นทางการโจมตี พวกเขาต้องการให้แน่ใจว่าพวกเขาจะไม่สูญเสียการตั้งหลักในโดเมน นั่นคือแม้ว่าบัญชีที่พวกเขาถูกบุกรุกจะถูกปิดใช้งานหรือรีเซ็ตรหัสผ่านแล้ว แต่พวกเขาก็ต้องการที่จะได้รับสิทธิ์ผู้ดูแลระบบโดเมนกลับคืนมาได้อย่างง่ายดาย
วิธีหนึ่งในการบรรลุความคงอยู่นี้คือการใช้ประโยชน์จากคุณลักษณะของ Active Directory ที่มีจุดมุ่งหมายเพื่อปกป้องบัญชีที่มีสิทธิพิเศษ: AdminSDHolder และ SDProp บทความนี้จะอธิบายวิธีการทำงานของกลยุทธ์นี้และวิธีป้องกัน
AdminSDHolder และ SDProp คืออะไร
AdminSDHolder เป็นคอนเทนเนอร์ที่มีอยู่ในทุกโดเมน Active Directory เพื่อวัตถุประสงค์พิเศษ: รายการควบคุมการเข้าถึง (ACL) ของออบเจ็กต์ AdminSDHolder ถูกใช้เป็นเทมเพลตเพื่อคัดลอกสิทธิ์ไปยังกลุ่มที่ได้รับการป้องกันทั้งหมดใน Active Directory และ สมาชิกของพวกเขา (กลุ่มที่ได้รับการป้องกันคือกลุ่มที่มีอยู่แล้วภายในที่ได้รับการระบุว่าต้องการการรักษาความปลอดภัยเพิ่มเติม รวมถึงผู้ดูแลระบบโดเมน ผู้ดูแลระบบ ผู้ดูแลระบบองค์กร และผู้ดูแลระบบสคีมา)
กระบวนการ SDProp ใช้ ACL ของออบเจ็กต์ AdminSDHolder กับกลุ่มที่ได้รับการป้องกันทั้งหมดและผู้ใช้ที่เป็นสมาชิกทุกๆ 60 นาทีตามค่าเริ่มต้น เนื่องจาก ACL สำหรับ AdminSDHolder ได้รับการออกแบบให้มีข้อจำกัดอย่างมาก โดยปกติแล้ว กระบวนการนี้จะช่วยเสริมสร้างความปลอดภัย
อย่างไรก็ตาม หากผู้โจมตีแก้ไข ACL สำหรับ AdminSDHolder สิทธิ์การเข้าถึงที่แก้ไขเหล่านั้นจะถูกนำไปใช้กับออบเจ็กต์ที่ได้รับการป้องกันทั้งหมดแทน ตัวอย่างเช่น ฝ่ายตรงข้ามอาจเพิ่มบัญชีผู้ใช้ที่พวกเขาควบคุมลงใน AdminSDHolder ACL และให้สิทธิ์ในการควบคุมเต็มรูปแบบ:
แม้ว่าผู้ดูแลระบบจะเห็นการอนุญาตที่ไม่เหมาะสมบนออบเจ็กต์ที่ได้รับการป้องกันโดยเฉพาะและลบออก กระบวนการ SDProp จะใช้ ACL ที่แก้ไขแล้วอีกครั้งภายในหนึ่งชั่วโมง ด้วยเหตุนี้ กลยุทธ์นี้จึงช่วยให้ผู้โจมตีสามารถเข้าถึงข้อมูลที่ละเอียดอ่อนได้
การประเมินความเสี่ยงของคุณโดยใช้ AdminCount
AdminCount เป็นแอตทริบิวต์ของวัตถุ Active Directory ค่า AdminCount เป็น 1 บ่งชี้ว่าอ็อบเจ็กต์นั้น (หรือเคยเป็น) สมาชิกของกลุ่มที่ได้รับการป้องกันอย่างน้อยหนึ่งกลุ่ม ดังนั้น เมื่อดูอ็อบเจ็กต์ทั้งหมดที่มีค่า AdminCount เป็น 1 คุณจะเข้าใจได้ว่าการโจมตีนั้นแพร่หลายเพียงใด AdminSDHolder อาจเป็นไปตามสภาพแวดล้อมของคุณ
การวิเคราะห์นี้สามารถทำได้อย่างง่ายดายด้วย PowerShell และการดำเนินการตัวกรอง LDAP:
$ldapFilter = “(adminCount=l)”
$domain = New-Object System.DirectoryServices.DirectoryEntry
$search = New-Object System.DirectoryServices.DirectorySearcher
$search.SearchRoot = $domain
$search.PageSize = 1000
$search.Filter = $ldapFilter
$search.SearchScope = “Subtree”
$results = $search.FindAll()
foreach ($result in $results)
{
SuserEntry = $result.GetDirectoryEntry()
Write-host “Object Name = “ $userEntry.name
Write-host “Obect Class = “ $userEntry.objectClass
foreach($AdminCount in $userEntry.adminCount)
{
Write-host “AdminCount =” $AdminCount
Write-host “”
}
}ประเด็นหนึ่งที่ควรทราบก็คือ แม้ว่าผู้ใช้จะถูกลบออกจากกลุ่มที่ได้รับสิทธิ์ แต่ค่า AdminCount ของพวกเขายังคงเป็น 1; อย่างไรก็ตาม Active Directory จะไม่ถือว่าเป็นวัตถุที่ได้รับการป้องกันอีกต่อไป ดังนั้น AdminSDHolder ACL จะไม่ถูกนำไปใช้กับวัตถุเหล่านั้น อย่างไรก็ตาม พวกเขามีแนวโน้มที่จะยังคงตั้งค่าสิทธิ์ของ AdminSDHolder ไว้เนื่องจากการสืบทอดสิทธิ์จะยังคงถูกปิดใช้งานเป็นส่วนที่เหลือเมื่อได้รับการคุ้มครองโดยสิทธิ์ของ AdminSDHolder ดังนั้นจึงยังคงมีประโยชน์ในการดูออบเจ็กต์เหล่านี้ และในกรณีส่วนใหญ่ การเปิดการสืบทอดสิทธิ์
การป้องกันการละเมิด AdminSDHolder
เฉพาะผู้ใช้ที่มีสิทธิ์ระดับผู้ดูแลระบบเท่านั้นที่สามารถแก้ไข AdminSDHolder ACL ได้ ดังนั้นวิธีที่ดีที่สุดในการป้องกันกลยุทธ์การคงอยู่นี้คือการป้องกันการละเมิดข้อมูลประจำตัวของผู้ดูแลระบบ
นอกจากนี้ ในกรณีที่บัญชีผู้ดูแลระบบถูกบุกรุก สิ่งสำคัญคือต้องตรวจสอบออบเจ็กต์ AdminSDHolder และรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงใดๆ การเปลี่ยนแปลงไม่ควรเกิดขึ้น ดังนั้นการแจ้งเตือนใดๆ จึงคุ้มค่าที่จะตรวจสอบและเปลี่ยนกลับทันที
สิ่งสำคัญคือต้องรายงานออบเจ็กต์ที่มีค่า AdminCount เป็น 1 เป็นประจำ หากออบเจ็กต์ใด ๆ เหล่านั้นไม่ควรมีสิทธิ์ระดับผู้ดูแลระบบ ให้วางไว้ในตำแหน่งที่ถูกต้องและตรวจสอบให้แน่ใจว่ากำลังสืบทอดสิทธิ์
คำถามที่พบบ่อย
AdminSDHolder คืออะไร
AdminSDHolder เป็นวัตถุคอนเทนเนอร์ที่สร้างขึ้นในแต่ละโดเมน Active Directory ACL จะถูกนำไปใช้กับกลุ่มที่ได้รับการป้องกันทั้งหมดในโดเมนและสมาชิกโดยอัตโนมัติ
AdminSDHolder ตั้งอยู่ที่ไหน
คอนเทนเนอร์ AdminSDHolder จะอยู่ในคอนเทนเนอร์ของระบบ (CN=System) คุณสามารถดูได้โดยเปิดใช้งาน “คุณสมบัติขั้นสูง” ในคอนโซลการจัดการผู้ใช้ Active Directory และคอมพิวเตอร์ (ADUC)
AdminCount คืออะไร
AdminCount เป็นแอตทริบิวต์ของวัตถุ AD ค่า AdminCount เป็น 1 บ่งชี้ว่าวัตถุนั้น (หรือเคยเป็น) สมาชิกของกลุ่มที่ได้รับการป้องกันอย่างน้อยหนึ่งกลุ่ม
