0Pricing
Ethical Hacking Academy · บทเรียน

Kerberoasting

ถอดรหัสตั๋วบริการ

Kerberoasting เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน

Kerberoasting คืออะไร

Kerberoasting คือการโจมตีที่มุ่งเป้าไปยังบัญชีบริการใน Active Directory ผู้ใช้โดเมนที่ยืนยันตัวตนแล้วทุกคนสามารถขอตั๋วบริการของบัญชีที่มีชื่อหลักของบริการ (SPN) ได้

ส่วนหนึ่งของตั๋วนั้นเข้ารหัสด้วยแฮชรหัสผ่านของบัญชีบริการ ผู้โจมตีจึงสามารถถอดรหัสแบบ ออฟไลน์ ได้โดยไม่ต้องติดต่อบัญชีนั้นเลย

เหตุผลที่วิธีนี้ใช้ได้

เมื่อผู้ใช้ขอตั๋วบริการ (TGS) KDC จะเข้ารหัสส่วนหนึ่งของตั๋วด้วยแฮช NTLM ของรหัสผ่านบัญชีบริการ

เนื่องจากผู้ใช้โดเมนทุกคนสามารถขอตั๋วนี้ได้ และไม่จำเป็นต้องมีสิทธิ์พิเศษ ผู้โจมตีจึงเพียงรวบรวมตั๋วแล้วค่อย ๆ ถอดรหัสบนเครื่องของตนเอง

การค้นหาบัญชี SPN

ขั้นแรก ให้แจกแจงบัญชีที่กำหนด SPN ไว้ บัญชีเหล่านี้มักเป็นบัญชีบริการที่เรียกใช้ SQL เว็บ หรือบริการอื่น ๆ

บัญชีผู้ใช้ (ไม่ใช่บัญชีเครื่อง) ที่มี SPN เป็นเป้าหมายที่เหมาะสมอย่างยิ่ง เพราะรหัสผ่านมักตั้งโดยมนุษย์และไม่ค่อยมีการเปลี่ยน

# PowerView
Get-DomainUser -SPN | select samaccountname,serviceprincipalname

การขอตั๋วด้วย Rubeus

Rubeus เป็นเครื่องมือ C# ยอดนิยมสำหรับใช้ Kerberos ในทางที่ผิด คำสั่ง kerberoast จะขอตั๋ว TGS ของบัญชี SPN และส่งออกในรูปแบบที่ถอดรหัสได้

ขั้นตอนนี้ไม่สะดุดตา เพราะมีลักษณะเหมือนการรับส่งข้อมูล Kerberos ปกติจากผู้ใช้ที่ถูกต้อง

Rubeus.exe kerberoast /outfile:hashes.txt

การขอตั๋วด้วย Impacket

จาก Linux เครื่องมือ Impacket คำสั่ง GetUserSPNs.py จะทำการโจมตีแบบเดียวกันจากระยะไกลโดยใช้ข้อมูลประจำตัวโดเมนที่ถูกต้อง

วิธีนี้มีประโยชน์ระหว่างการปฏิบัติงานจากภายนอกหรือการปฏิบัติงานที่สมมติว่าถูกเจาะระบบแล้ว ซึ่งคุณมีข้อมูลประจำตัวที่มีสิทธิ์ต่ำอยู่หนึ่งชุด

GetUserSPNs.py corp.local/lowuser:Password1 -dc-ip 10.0.0.10 -request

รูปแบบแฮช

ตั๋วที่จับมาได้จะถูกบันทึกในรูปแบบที่ Hashcat รู้จักในโหมด 13100 (Kerberos 5 TGS-REP etype 23, RC4)

แฮชแต่ละรายการเริ่มต้นด้วย $krb5tgs$23$ ตามด้วย SPN บัญชี และข้อมูลที่เข้ารหัส นี่คือข้อมูลที่คุณป้อนให้เครื่องมือถอดรหัส

$krb5tgs$23$*svc_sql$CORP.LOCAL$MSSQL/...*$a1b2c3...

การถอดรหัสด้วย Hashcat

การถอดรหัสแบบออฟไลน์จะใช้รายการคำ (มักใช้ร่วมกับกฎ) ทดสอบกับแฮชที่เก็บมาได้ เนื่องจากตั๋ว RC4 ทดสอบได้รวดเร็ว รหัสผ่านบริการที่คาดเดาได้ง่ายจึงถูกถอดรหัสได้อย่างรวดเร็ว

ด้วยเหตุนี้ รหัสผ่านของบัญชีบริการจึงควรยาวและสุ่มอย่างแท้จริง โดยควรจัดการผ่าน Group Managed Service Accounts (gMSA)

hashcat -m 13100 hashes.txt rockyou.txt -r best64.rule

ประเภทการเข้ารหัสมีความสำคัญ

หากบัญชีรองรับ RC4 (etype 23) การถอดรหัสจะทำได้รวดเร็ว แต่หากอนุญาตเฉพาะ AES (etype 17/18) การถอดรหัสจะช้าลงมาก แต่ยังคงทำได้ (โหมด 19600/19700 ของ Hashcat)

ผู้โจมตีอาจลดระดับประเภทการเข้ารหัสที่ร้องขอ เพื่อบังคับให้ใช้ตั๋ว RC4 ที่อ่อนแอกว่า

การตรวจจับและการป้องกัน

ฝ่ายป้องกันจะเฝ้าดูปริมาณคำขอ TGS ที่ผิดปกติ โดยเฉพาะตั๋ว RC4 (รหัสเหตุการณ์ 4769) มาตรการลดความเสี่ยงได้แก่:

  • ใช้รหัสผ่านบัญชีบริการที่ยาวและสุ่ม (อย่างน้อย 25 อักขระ)
  • ใช้บัญชี gMSA ที่เปลี่ยนรหัสผ่านโดยอัตโนมัติ
  • ปิดใช้งาน RC4 และบังคับใช้ AES

เหตุใดจึงเลือกโจมตีบัญชีบริการ

บัญชีบริการเป็นเป้าหมายที่น่าสนใจ เนื่องจากมักเป็นสมาชิกของกลุ่มที่มีสิทธิ์สูง ใช้รหัสผ่านเดิมเป็นเวลานาน และไม่ได้ผูกกับบุคคลใดบุคคลหนึ่งซึ่งอาจสังเกตเห็นความผิดปกติ

หากถอดรหัสบัญชีดังกล่าวได้ ก็อาจเข้าถึงสิทธิ์ Domain Admin ได้ทันที หากบัญชีบริการนั้นได้รับสิทธิ์มากเกินไปโดยประมาท

ตำแหน่งของเทคนิคนี้ในลำดับการโจมตี

โดยปกติจะทำ Kerberoasting ไม่นานหลังจากได้ฐานที่มั่นในโดเมน การทำเช่นนี้เป็นการสำรวจที่ก่อสัญญาณรบกวนน้อยร่วมกับการถอดรหัสแบบออฟไลน์ จึงแทบไม่ทำให้เกิดการแจ้งเตือน

บัญชีบริการที่ถอดรหัสได้มักนำไปสู่การเคลื่อนที่ด้านข้างหรือการยกระดับสิทธิ์ ทำให้เทคนิคนี้เป็นส่วนสำคัญของการทดสอบเจาะระบบภายในและปฏิบัติการทีมสีแดง

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ลองทบทวนข้อกำหนดหลักของ Kerberoasting

สรุปทบทวน

ขณะนี้คุณเข้าใจ Kerberoasting แล้ว:

  • ผู้ใช้ใด ๆ ในโดเมนสามารถขอ TGS tickets สำหรับบัญชีที่มี SPN ได้
  • ตั๋วจะเข้ารหัสด้วยแฮชของบัญชีบริการ และถอดรหัสแบบ ออฟไลน์
  • เครื่องมือ: Rubeus, Impacket GetUserSPNs.py และถอดรหัสด้วย โหมด 13100 ของ Hashcat
  • ป้องกันด้วยรหัสผ่านที่ยาว, gMSA และการเข้ารหัสแบบ AES เท่านั้น

ถัดไป คุณจะนำข้อมูลประจำตัวกลับมาใช้โดยตรงด้วย Pass-the-Hash

คำถามที่พบบ่อย

บทเรียน “Kerberoasting” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Kerberoasting” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Kerberoasting”

ถอดรหัสตั๋วบริการ คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “Kerberoasting” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม

ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. พื้นฐาน AD
  2. Kerberoasting
  3. Pass-the-Hash
  4. BloodHound
← กลับไปที่ Ethical Hacking Academy