การโจมตี DCShadow: คืออะไร และจะป้องกันอย่างไร
เซิร์ฟเวอร์โกงถือเป็นฝันร้ายสำหรับผู้ดูแลระบบ แต่เมื่อเซิร์ฟเวอร์นั้นกลายเป็นตัวควบคุมโดเมน ตอนนี้คุณมีสถานการณ์ฝันร้ายในมือของคุณ การโจมตี DCShadow เป็นสถานการณ์ที่แน่นอนนี้
ในโพสต์นี้ เราจะแจกแจงรายละเอียดอย่างชัดเจนถึงสิ่งที่เกิดขึ้นระหว่างการโจมตี DCShadow วิธีที่คุณสามารถป้องกันการโจมตี และท้ายที่สุดจะป้องกันไม่ให้คุณตื่นขึ้นมาด้วยเหงื่อเย็น
การโจมตี DCShadow คืออะไร?
DCShadow เป็นการโจมตีหลังการแสวงหาประโยชน์ โดยผู้โจมตีใช้ประโยชน์จากข้อมูลประจำตัวที่มีสิทธิพิเศษเพื่อเลียนแบบตัวควบคุมโดเมนและทำการเปลี่ยนแปลงที่เป็นอันตรายกับ Active Directory
DCShadow เปิดตัวครั้งแรกที่ BlueHat IL และโดย Black Hat ในปี 2018 ในการนำเสนอ Vincent Le Toux และ Benjamin Delpy (gentilkiwi) ได้แนะนำวิธีการโจมตีแบบใหม่ที่จำลองการสร้างตัวควบคุมโดเมน (DC) และใช้ประโยชน์จากการซิงโครไนซ์เพื่อแทรกข้อมูลที่เป็นอันตราย เปลี่ยนเป็น Active Directory (AD) การเปลี่ยนแปลงที่ทำในลักษณะนี้จะผสมผสานเข้ากับการจำลองโดเมนปกติ DCShadow เป็นฟีเจอร์ที่รวมอยู่ในเครื่องมือ Mimikatz ของ Gentilkiwi
การโจมตี DCShadow ทำงานอย่างไร
การโจมตี DCShadow ใช้เพื่อสร้างความคงอยู่เป็นหลัก เพื่อให้ผู้โจมตีสามารถใช้ประโยชน์จาก DCShadow ได้ พวกเขาจำเป็นต้องเข้าถึงข้อมูลประจำตัวของผู้ดูแลระบบโดเมน (DA) สำหรับวัตถุประสงค์ของบทความนี้ เราจะเน้นไปที่การเข้าถึง DA โดยเฉพาะ แต่ยังมีวิธีแก้ไขข้อมูลรับรอง DA ด้วยเช่นกัน ซึ่ง Nikhil “SamratAshok ” Mittal กล่าวถึงในบล็อกแยกต่างหาก
เมื่อใช้บัญชี DA ผู้โจมตีจะลงทะเบียนตัวควบคุมโดเมนปลอมโดยการสร้างวัตถุสองรายการในพาร์ติชัน CN=Configuration ถัดไป ต้องปรับเปลี่ยน SPN ของบัญชีคอมพิวเตอร์ที่ถูกโจมตี ขั้นตอนนี้จะทำให้คอมพิวเตอร์ของผู้โจมตีกลายเป็นตัวควบคุมโดเมนชั่วคราวได้อย่างมีประสิทธิภาพ
เพื่อให้เข้าใจแนวคิดถัดไป สิ่งสำคัญคือต้องเข้าใจการจำลองแบบ DC ในระดับสูงก่อน สภาพแวดล้อม Active Directory ทั่วไปได้รับการกำหนดค่าด้วย DC หลายตัว เมื่อผู้ใช้เข้าสู่ระบบคอมพิวเตอร์ คอมพิวเตอร์จะเชื่อมต่อกับ DC ตัวใดตัวหนึ่งเหล่านี้โดยอัตโนมัติ สิ่งเดียวกันนี้เกิดขึ้นเมื่อผู้ดูแลระบบทำการเปลี่ยนแปลง Active Directory ตัวอย่างเช่น ผู้ดูแลระบบเชื่อมต่อกับ DC หนึ่งเครื่อง และปรับความเป็นสมาชิกกลุ่มของผู้ใช้ การเปลี่ยนแปลงนั้นจะถูกจำลองแบบไปยัง DC อื่นๆ ทั้งหมด
ผู้โจมตีใช้ประโยชน์จากการจำลองแบบนี้เพื่อแอบทำการเปลี่ยนแปลง Active Directory DC ปลอมใช้เพื่อจัดขั้นตอนการเปลี่ยนแปลง AD ที่ต้องการ จากนั้นการจำลองแบบจะถูกทริกเกอร์ DC อื่นๆ (ของจริง) มองว่านี่เป็นการจำลองแบบทั่วไป
การโจมตีสิ้นสุดลงด้วยการล้างการเปลี่ยนแปลงที่ทำขึ้นเพื่อลดระดับ DC ปลอม ราวกับว่าไม่เคยมีอยู่เลย
การทำให้ DCShadow ทำงานเป็นเพียงจุดเริ่มต้นเท่านั้น การโจมตีนี้ขึ้นอยู่กับวิธีการใช้งานของคุณ
ผู้โจมตีสามารถทำอะไรได้บ้าง?
ตามที่กล่าวไว้ก่อนหน้านี้ การโจมตี DCShadow ถูกใช้เพื่อสร้างฐานที่มั่นและรักษาความคงอยู่ ตัวอย่างที่ง่ายและตรวจพบได้ง่ายคือการที่ผู้โจมตีสร้างบัญชี AD ใหม่และให้สิทธิ์แก่มัน ด้วยวิธีนี้ เมื่อบัญชีเดิมถูกปิดใช้งาน เปลี่ยนรหัสผ่าน หรือถูกตรวจพบ ผู้โจมตีก็สามารถย้ายไปยังบัญชีที่สร้างขึ้นใหม่ได้ การโจมตี DCShadow มีความสามารถในการดำเนินการเทคนิคการคงอยู่ที่คล้ายกัน แต่อยู่ภายใต้หน้ากากของการซิงโครไนซ์ไดเร็กทอรีปกติ
ผู้โจมตีจะไม่ประสบปัญหาทั้งหมดนี้เพียงแค่สร้างบัญชีลับๆ หากพวกเขาลับๆล่อๆ จนถึงตอนนี้ พวกเขาคงทำอันตรายมากขึ้นโดยใช้เทคนิคที่สร้างสรรค์มากขึ้น ตัวอย่างแอตทริบิวต์ผู้ใช้ที่สามารถแก้ไขได้ ได้แก่ sIDHistory, ntpwdHistory, PrimaryGroupID และ whenChanged วิธีการโจมตีอื่นๆ อาจรวมถึงการเปลี่ยนแปลงสคีมา โจมตีโดเมนที่เชื่อถือได้ โจมตี KRBTGT หรือแก้ไข DACL
การโจมตีประวัติ SID
เพื่ออธิบายโดยย่อโดยใช้ประวัติ SID Mimikatz จะถูกเรียกใช้จากโดเมนที่เข้าร่วมเวิร์กสเตชันในฐานะผู้ดูแลระบบ บัญชีแฮกเกอร์ถูกจัดฉากเพื่อให้มีค่าสำหรับ SIDHistory ที่ตั้งค่าเป็น SID ของบัญชีที่ได้รับสิทธิ์ผู้ดูแลระบบโดเมน เมื่อไม่มีการอนุญาตเพิ่มเติม ในครั้งถัดไปที่บัญชีแฮ็กเกอร์เข้าสู่ระบบ SID ที่เชื่อมโยงกับบัญชีนั้นจะได้รับการประเมิน เนื่องจากบัญชีเชื่อมโยงกับบัญชี DA จึงให้สิทธิ์แก่บัญชีแฮ็กเกอร์ได้อย่างมีประสิทธิภาพ Sean Metcalf มีบทความดีๆ ที่อธิบายการใช้ประโยชน์จาก SID History อย่างครบถ้วน
สิ่งที่ทำให้การโจมตีนี้น่ากลัวยิ่งขึ้นคือการแก้ไขบัญชีเกิดขึ้นโดยไม่สร้างบันทึกทั่วไปใดๆ
การป้องกันและการตรวจจับ
การโจมตี DCShadow ไม่ใช่ช่องโหว่ที่สามารถแก้ไขได้ง่ายๆ การโจมตีใช้ประโยชน์จากโปรโตคอลของ Microsoft ในแบบที่พวกเขาไม่เคยตั้งใจจะใช้ ดังนั้นจึงถือเป็นช่องโหว่ที่ "ไม่มีการแก้ไข"
แม้ว่าสิ่งนี้อาจดูเหมือนเป็นสถานการณ์ที่เลวร้าย แต่ก็มีวิธีป้องกันการโจมตี DCShadow ตามที่ระบุไว้ก่อนหน้านี้ DCShadow เป็นการโจมตีหลังการประนีประนอม ดังนั้นขั้นตอนสำคัญในการป้องกันมันจะต้องไม่ปล่อยให้มันเกิดขึ้นตั้งแต่แรก แต่ละขั้นตอนที่ผู้โจมตีต้องทำก่อนที่จะได้รับ DA ถือเป็นอีกโอกาสในการป้องกัน การมีสุขอนามัยที่ดีของ Active Directory จะเป็นการป้องกัน DCShadow ได้ดีที่สุด
เป็นเรื่องจริงที่ DCShadow เลี่ยงผ่านบันทึกส่วนใหญ่ที่รวบรวมโดย SIEM หรือตรวจสอบโดย SOC แต่ก็ยังห่างไกลจากการตรวจพบ การรับส่งข้อมูลเครือข่ายเป็นวิธีการตรวจจับที่มีความเที่ยงตรงสูง การปรับเปลี่ยนวัตถุ CN=การกำหนดค่าและการจำลองแบบ DC ควรเกิดขึ้นจาก DC เท่านั้น ดังนั้นการรับส่งข้อมูลเครือข่ายที่มาจาก IP อื่น ๆ จะถือว่าน่าสงสัยหรือควรถูกบล็อกด้วยซ้ำ
แผนภาพจาก DCShadow.com
Benjamin Delpy ยังได้จัดทำสคริปต์ splunk สำหรับการตรวจจับบันทึกเหตุการณ์ที่บ่งชี้ถึงการโจมตี DCShadow ซึ่งรวมถึงการตรวจสอบการเพิ่ม SPN
เนื่องจากการโจมตี DCShadow เพิ่งครบรอบ 5 ปี เครื่องมือตรวจจับจำนวนมากจึงตามทันและสามารถตรวจจับการโจมตีที่อาจเกิดขึ้นได้ Quest On Demand for Audit สามารถตรวจจับ DCShadow และ Quest Recovery Manager สำหรับ Active Directory Disaster Recovery Edition สามารถช่วยในการกู้คืนอ็อบเจ็กต์ที่ได้รับผลกระทบกลับไปเป็นการกำหนดค่าดั้งเดิม
บทสรุป
เหตุใดจึงต้องใช้ DCShadow เลย? หากผู้โจมตีมี DA อยู่แล้ว เกมจะจบลงไม่ใช่หรือ? ส่วนใหญ่แล้วใช่ แต่ด้วยสุขอนามัยของ Active Directory ที่ดีและทีมตรวจจับที่แข็งแกร่ง การเข้าถึงนั้นอาจมีอายุสั้น การป้องกันที่ดีที่สุดคือการป้องกันไม่ให้ผู้โจมตีเข้ามาไกลขนาดนี้
วิธีการป้องกันแบบดั้งเดิม เช่น การจัดระดับบัญชี สิทธิ์ขั้นต่ำ และการดูแลรหัสผ่านที่ดี ทำให้ผู้โจมตีอยู่ในตำแหน่งที่จะดำเนินการโจมตี DCShadow ได้ยากขึ้นอย่างมาก แม้ว่าจะไม่เป็นการปลอบใจ แต่สิ่งสำคัญคือต้องพูดถึงว่าหากผู้โจมตีได้รับ DA ในสภาพแวดล้อมของคุณ ก็จะมีการโจมตีที่แตกต่างกันซึ่งเป็นเรื่องปกติมากกว่ามาก DCShadow ออกมาจากเงามืดและน่ากลัวน้อยกว่ามาก
ต่อไปในวาระการประชุม ฉันจะพูดถึงเรื่องบูกี้แมนที่รู้จักกันในชื่อ DCSync โปรดคอยติดตาม


