0Pricing
Cyber Security Academy · บทเรียน

การยกระดับสิทธิ์และการครอบงำโดเมน

จากจุดยึดเบื้องต้นสู่ผู้ดูแลโดเมน

การยกระดับสิทธิ์และการครอบงำโดเมน เป็นบทเรียน 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:Administrator

DCSync เพื่อขโมยแฮชทั้งหมด

เมื่อคุณควบคุมตัวตนที่มีสิทธิ์ การจำลองการเปลี่ยนแปลงไดเรกทอรี คุณสามารถสวมรอยเป็น 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นผิวการโจมตีของ Active Directory
  2. Kerberos และ Kerberoasting
  3. Pass-the-Hash และ Pass-the-Ticket
  4. การยกระดับสิทธิ์และการครอบงำโดเมน
← กลับไปที่ Cyber Security Academy