การยกระดับสิทธิ์และการครอบงำโดเมน
จากจุดยึดเบื้องต้นสู่ผู้ดูแลโดเมน
การยกระดับสิทธิ์และการครอบงำโดเมน เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
จากจุดยึดเริ่มต้นสู่ผู้ดูแลโดเมน
จุดยึดเริ่มต้นมักไม่ใช่เป้าหมายสุดท้าย โดยทั่วไป วัตถุประสงค์ของการประเมิน AD คือการสาธิตเส้นทางไปสู่การเป็น ผู้ดูแลโดเมน หรือกล่าวให้แม่นยำกว่านั้นคือการควบคุมระดับ 0 (DC และโครงสร้างพื้นฐานด้านตัวตน)
การยกระดับสิทธิ์ใน AD เชื่อมโยงการยกระดับสิทธิ์ภายในเครื่อง การขโมยข้อมูลรับรอง และการกำหนดค่าไดเรกทอรีที่ผิดพลาดเข้าด้วยกัน จนเข้าถึงทรัพย์สินสำคัญสูงสุด
ยกระดับสิทธิ์ภายในเครื่องก่อน
จากเชลล์ที่มีสิทธิ์ต่ำบนโฮสต์ โดยทั่วไปคุณต้องมีสิทธิ์ SYSTEM ภายในเครื่องเพื่อดึงข้อมูลรับรอง เวกเตอร์การยกระดับสิทธิ์ภายในเครื่องที่พบบ่อย ได้แก่
- เส้นทางบริการที่ไม่ใส่เครื่องหมายคำพูดและสิทธิ์ของบริการที่ไม่รัดกุม
- ไบนารีของบริการที่เขียนทับได้หรือการจี้ DLL
- นโยบาย MSI ของ AlwaysInstallElevated
- การสวมรอยโทเค็น (ตระกูล Potato) ที่ใช้ประโยชน์จาก SeImpersonatePrivilege
# Enumerate local escalation paths
winPEAS.exe
# SeImpersonate abuse
PrintSpoofer.exe -i -c cmd.exeเก็บเกี่ยวข้อมูลและเปลี่ยนจุดเชื่อมต่อ
เมื่อมี SYSTEM คุณจะดึงข้อมูลรับรองที่แคชไว้และเปลี่ยนจุดเชื่อมต่อ ข้อมูลรับรองใหม่แต่ละรายการอาจเปิดทางสู่โฮสต์ใหม่และสิทธิ์ที่สูงขึ้น
กระบวนการจะวนซ้ำดังนี้: ดึงข้อมูล → ระบุเป้าหมายที่เข้าถึงได้ใน BloodHound → เคลื่อนที่ด้านข้าง → ดึงข้อมูลอีกครั้ง ทำซ้ำจนกว่าจะพบข้อมูลรับรองที่มีสิทธิ์สูง
# Map shortest path to Domain Admins from owned principals
# In BloodHound: mark nodes Owned, then run
# 'Shortest Paths to Domain Admins from Owned Principals'การยกระดับสิทธิ์ตาม ACL
ACL ที่กำหนดค่าผิดเป็นเส้นทางการยกระดับสิทธิ์ที่เชื่อถือได้และไม่ต้องใช้ช่องโหว่ หากคุณควบคุมตัวตนที่มีสิทธิ์เหนือออบเจ็กต์ที่มีสิทธิ์สูง คุณก็สามารถมอบสิทธิ์ให้ตนเองได้
- ForceChangePassword เหนือผู้ใช้ทำให้คุณรีเซ็ตรหัสผ่านของผู้ใช้นั้นได้
- GenericWrite เหนือผู้ใช้ทำให้คุณตั้งค่า SPN แล้วโจมตีแบบเคอร์เบอโรสติง หรือกำหนด RBCD ได้
- WriteDacl เหนือกลุ่มทำให้คุณเพิ่มตนเองเข้าไปได้
- AddMember ในกลุ่มที่มีสิทธิ์สูงเป็นการยกระดับสิทธิ์โดยตรง
# PowerView: add self to a group you can WriteDacl
Add-DomainObjectAcl -TargetIdentity 'Domain Admins' -PrincipalIdentity attacker -Rights All
Add-DomainGroupMember -Identity 'Domain Admins' -Members attackerการใช้ประโยชน์จากการมอบหมายสิทธิ์
การกำหนดค่าการมอบหมายสิทธิ์ที่ผิดพลาดสามารถยกระดับสิทธิ์ไปสู่การสวมรอยผู้ใช้มูลค่าสูงได้อย่างมีประสิทธิภาพ
- การมอบหมายสิทธิ์แบบไม่จำกัด: บังคับให้ DC ยืนยันตัวตน (PrinterBug / PetitPotam) ดักจับ TGT ของ DC แล้วจึงทำ DCSync
- การมอบหมายสิทธิ์แบบจำกัดตามทรัพยากร: หากมีสิทธิ์เขียนบนคอมพิวเตอร์ ให้เพิ่มบัญชีที่ควบคุมได้ลงใน
msDS-AllowedToActOnBehalfOfOtherIdentityของคอมพิวเตอร์นั้น แล้วสวมรอยเป็นผู้ใช้ใดก็ได้ผ่าน S4U
# RBCD takeover (Impacket)
rbcd.py -delegate-to TARGET$ -delegate-from FAKE$ -action write corp/user:pass
getST.py -spn cifs/target.corp -impersonate Administrator corp/FAKE$การโจมตี ADCS (เส้นทาง ESC)
บริการใบรับรองของ AD เปิดทางให้ยกระดับสิทธิ์ด้วยใบรับรอง แม่แบบที่กำหนดค่าผิดทำให้ผู้ใช้สิทธิ์ต่ำลงทะเบียนใบรับรองที่ใช้ยืนยันตัวตนเป็นบุคคลใดก็ได้
- ESC1: แม่แบบอนุญาตให้ผู้ร้องขอกำหนด SAN เอง พร้อม EKU สำหรับการยืนยันตัวตนของไคลเอนต์
- ESC8: รีเลย์ NTLM ไปยังปลายทางการลงทะเบียนผ่านเว็บ
ใบรับรองที่จับคู่กับ DA มีความคงทนและยังใช้ได้หลังจากรีเซ็ตรหัสผ่าน
# Find vulnerable templates
Certify.exe find /vulnerable
# Request a cert impersonating an admin (ESC1)
Certify.exe request /ca:CA01\corp-CA /template:VulnTemplate /altname:AdministratorDCSync เพื่อขโมยแฮชทั้งหมด
เมื่อคุณควบคุมตัวตนที่มีสิทธิ์ การจำลองการเปลี่ยนแปลงไดเรกทอรี คุณสามารถสวมรอยเป็น DC และดึงแฮชของบัญชีใดก็ได้ รวมถึง krbtgt ผ่านโพรโทคอลการจำลองมาตรฐาน โดยไม่มีโค้ดทำงานบน DC
# Mimikatz DCSync of krbtgt
lsadump::dcsync /domain:corp.local /user:krbtgt
# Impacket secretsdump
secretsdump.py corp/admin@dc01 -just-dcสร้างการควบคุมโดเมนอย่างเบ็ดเสร็จ
เมื่อมีแฮชของ krbtgt และแฮชระดับ DA คุณก็จะควบคุมโดเมนได้อย่างเบ็ดเสร็จ ตัวเลือกสำหรับคงการเข้าถึง ได้แก่
- ตั๋วทองคำ: ปลอม TGT จากแฮชของ krbtgt
- DCShadow: ลงทะเบียน DC ปลอมเพื่อส่งการเปลี่ยนแปลงไดเรกทอรีที่เป็นอันตราย
- AdminSDHolder: แทรกช่องทางลับในแม่แบบ ACL ที่นำกลับไปใช้กับกลุ่มที่ได้รับการป้องกันทุกชั่วโมง
- การคงการเข้าถึงด้วยใบรับรองผ่าน ADCS
ตรวจจับการโจมตีช่วงท้าย
การดำเนินการที่มีผลกระทบสูงจะสร้างสัญญาณที่ตรวจจับได้
- DCSync จาก IP ต้นทางที่ไม่ใช่ DC: เหตุการณ์
4662ที่มี GUID ของการจำลอง - เครื่องมือบังคับให้เกิดการยืนยันตัวตนของบัญชีเครื่องที่ผิดปกติ
- การเปลี่ยนแปลง ACL ของ AdminSDHolder (เหตุการณ์
5136) - การลงทะเบียนใบรับรองที่ผิดปกติ โดยมีค่า SAN ที่ไม่ตรงกับผู้ร้องขอ
ป้องกันระดับ 0
การควบคุมการครอบงำโดเมนจำเป็นต้องใช้กลไกป้องกันเชิงสถาปัตยกรรม
- การบริหารแบบแบ่งระดับอย่างเคร่งครัด: ผู้ดูแลระดับ 0 เข้าสู่ระบบได้เฉพาะโฮสต์ระดับ 0
- จำกัดสิทธิ์การจำลอง และตรวจสอบว่าใครมีสิทธิ์ DCSync
- เสริมความมั่นคงให้แม่แบบ ADCS เปิดใช้การอนุมัติการลงทะเบียน และติดตั้งแพตช์สำหรับ PetitPotam กับเส้นทางรีเลย์
- ปรับปรุง ACL ของ AdminSDHolder และเฝ้าติดตามการเปลี่ยนแปลงของกลุ่มที่ได้รับการป้องกัน
- เตรียมคู่มือปฏิบัติการหมุนเวียน krbtgt สองครั้งไว้ให้พร้อม
รายงานผลกระทบ
สำหรับผลการค้นพบที่นำไปสู่การควบคุมโดเมน ให้บันทึกห่วงโซ่การโจมตีทั้งหมด ได้แก่ สิทธิ์แต่ละรายการที่ได้รับ การกำหนดค่าผิดพลาดที่ทำให้เกิดสิทธิ์นั้น และวิธีแก้ไขที่จำเป็นน้อยที่สุด ให้ความสำคัญกับการแก้ไขที่ตัดห่วงโซ่ได้ตั้งแต่ต้น เช่น การแก้เส้นทาง ACL มากกว่าการแก้ไขเฉพาะจุด
ลบตั๋วปลอม การมอบหมายสิทธิ์ที่ไม่ได้รับอนุญาต และใบรับรองทดสอบก่อนปิดงาน
ตรวจสอบความเข้าใจ
ตรวจสอบความเข้าใจเกี่ยวกับการควบคุมโดเมนอย่างเบ็ดเสร็จ
ทบทวน
คุณได้ติดตามเส้นทางตั้งแต่จุดยึดเริ่มต้นไปจนถึงการควบคุมโดเมนอย่างสมบูรณ์
- การยกระดับสิทธิ์ภายในเครื่องทำให้ดึงข้อมูลรับรองได้ และ BloodHound ช่วยชี้นำการเปลี่ยนจุดเชื่อมต่อ
- การกำหนดค่า ACL ที่ผิด การใช้ประโยชน์จากการมอบหมายสิทธิ์ และเส้นทาง ESC ของ ADCS ช่วยยกระดับสิทธิ์ได้โดยไม่ต้องใช้ช่องโหว่
- DCSync ดึง krbtgt ออกมาได้ ส่วนตั๋วทองคำและ AdminSDHolder ช่วยคงการเข้าถึง
- การแบ่งระดับ การตรวจสอบสิทธิ์การจำลอง และการเสริมความมั่นคงให้ ADCS ช่วยตัดห่วงโซ่การโจมตี
หลักสูตรแอกทีฟไดเรกทอรีและเคอร์เบอรอสสิ้นสุดลงแล้ว
คำถามที่พบบ่อย
บทเรียน “การยกระดับสิทธิ์และการครอบงำโดเมน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การยกระดับสิทธิ์และการครอบงำโดเมน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การยกระดับสิทธิ์และการครอบงำโดเมน”
จากจุดยึดเบื้องต้นสู่ผู้ดูแลโดเมน คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การยกระดับสิทธิ์และการครอบงำโดเมน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นผิวการโจมตีของ Active Directory
- Kerberos และ Kerberoasting
- Pass-the-Hash และ Pass-the-Ticket
- การยกระดับสิทธิ์และการครอบงำโดเมน