ค้นหาเว็บไซต์

บรรลุความคงอยู่โดยใช้ 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 บ่งชี้ว่าวัตถุนั้น (หรือเคยเป็น) สมาชิกของกลุ่มที่ได้รับการป้องกันอย่างน้อยหนึ่งกลุ่ม