Pass-the-Hash และ Pass-the-Ticket
นำข้อมูลรับรองที่ขโมยมาใช้ซ้ำ
Pass-the-Hash และ Pass-the-Ticket เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
ข้อมูลรับรองโดยไม่ใช้รหัสผ่าน
การยืนยันตัวตนของวินโดวส์มักไม่จำเป็นต้องใช้รหัสผ่านแบบข้อความธรรมดาในจุดที่นำไปใช้งาน ทั้งแฮช NTLM และตั๋วเคอร์เบอรอสสามารถใช้ยืนยันตัวตนได้ด้วยตัวเอง ผู้โจมตีจึงใช้ประโยชน์จากช่องทางนี้ด้วยการขโมยสิ่งตกค้างดังกล่าวแล้วนำกลับมาใช้
- การส่งผ่านแฮช (PtH) นำแฮช NTLM กลับมาใช้ซ้ำ
- การส่งผ่านตั๋ว (PtT) นำตั๋วเคอร์เบอรอสกลับมาใช้ซ้ำ
- ทั้งสองวิธีไม่จำเป็นต้องถอดรหัสรหัสผ่าน
ที่เก็บข้อมูลรับรอง
ระหว่างการทำงานตามปกติ ข้อมูลสำหรับยืนยันตัวตนจะถูกแคชไว้ในหน่วยความจำและบนดิสก์ แหล่งที่พบบ่อย ได้แก่
- หน่วยความจำของกระบวนการ LSASS เก็บแฮชและตั๋วของผู้ใช้ที่เข้าสู่ระบบ
- ฐานข้อมูล SAM เก็บแฮชของบัญชีภายในเครื่อง
- NTDS.dit บน DC เก็บแฮชของทุกบัญชีในโดเมน
- คลังข้อมูลรับรองและที่เก็บข้อมูลของเบราว์เซอร์ที่ได้รับการปกป้องด้วย DPAPI
การดึงข้อมูลจาก LSASS เป็นขั้นตอนเก็บเกี่ยวข้อมูลที่พบบ่อยที่สุด
# Mimikatz: dump logon passwords and hashes
privilege::debug
sekurlsa::logonpasswords
# Comsvcs minidump of lsass (living-off-the-land)
rundll32 C:\windows\system32\comsvcs.dll, MiniDump <pid> lsass.dmp fullกลไกการส่งผ่านแฮช
การยืนยันตัวตนด้วย NTLM พิสูจน์ว่าคุณทราบรหัสผ่านด้วยการใช้แฮชของรหัสผ่านเป็นข้อมูลลับในกระบวนการตอบสนองต่อคำท้าทาย หากคุณมีแฮช คุณก็สามารถทำกระบวนการจับมือให้เสร็จสิ้นได้โดยไม่ต้องรู้รหัสผ่านเลย
ด้วยเหตุนี้ แฮช NT จึงใช้แทนรหัสผ่านได้ บริการใดก็ตามที่ยอมรับ NTLM จะสามารถเข้าถึงได้โดยใช้เพียงแฮช
# Mimikatz pass-the-hash spawns a process with injected creds
sekurlsa::pth /user:Administrator /domain:corp.local /ntlm:<NThash> /run:cmd.exe
# Impacket psexec via hash
psexec.py -hashes :<NThash> corp.local/Administrator@10.0.0.20กลไกการส่งผ่านตั๋ว
ตั๋วเคอร์เบอรอสเป็นโทเค็นแบบผู้ถือครอง ผู้ใดก็ตามที่ถือ TGT หรือ TGS ที่ยังใช้ได้สามารถใช้ตั๋วนั้นได้จนกว่าจะหมดอายุ ผู้โจมตีดึงตั๋วออกจาก LSASS แล้วฉีดตั๋วเหล่านั้นเข้าไปในเซสชันของตนเอง
- การขโมย TGT ทำให้คุณขอตั๋วบริการในฐานะผู้ใช้นั้นได้
- การขโมย TGS ทำให้เข้าถึงบริการเฉพาะหนึ่งบริการได้
# Export all tickets, then inject one
Rubeus.exe dump /nowrap
Rubeus.exe ptt /ticket:doIF... (base64 blob)
# Mimikatz
sekurlsa::tickets /export
kerberos::ptt ticket.kirbiการข้ามผ่านแฮช
การข้ามผ่านแฮช หรือที่เรียกอีกอย่างว่าการส่งผ่านคีย์ เป็นสะพานเชื่อมระหว่าง NTLM กับเคอร์เบอรอส คุณใช้คีย์ NTLM หรือ AES ที่ขโมยมาเพื่อขอ TGT ของเคอร์เบอรอสที่ถูกต้อง จากนั้นจึงทำงานภายในเคอร์เบอรอสโดยสมบูรณ์
วิธีนี้พรางตัวได้ดีกว่าการส่งผ่านแฮชแบบตรง ๆ เพราะการรับส่งข้อมูลที่เกิดขึ้นมีลักษณะเหมือนการยืนยันตัวตนด้วยเคอร์เบอรอสตามปกติ
# Rubeus: turn an NTLM hash into a TGT
Rubeus.exe asktgt /user:svc_sql /rc4:<NThash> /ptt
# AES key is even quieter than RC4
Rubeus.exe asktgt /user:svc_sql /aes256:<key> /pttตั๋วทองคำและตั๋วเงิน
เมื่อเข้าถึงระบบได้ลึกขึ้น ผู้โจมตีจะปลอมตั๋วขึ้นมาโดยตรง
- ตั๋วทองคำ คือ TGT ปลอมที่ลงนามด้วยแฮชของ krbtgt ให้สิทธิ์แก่ตัวตนใดก็ได้ และใช้ได้จนกว่าจะหมุนเวียน krbtgt สองครั้ง
- ตั๋วเงิน คือ TGS ปลอมสำหรับบริการหนึ่งบริการ ซึ่งลงนามด้วยแฮชของบัญชีบริการ ตั๋วนี้ไม่เคยติดต่อ DC จึงตรวจจับได้ยาก
- ตั๋วเพชร แก้ไข TGT ที่ออกอย่างถูกต้องเพื่อหลบเลี่ยงการตรวจจับการปลอมตั๋ว
รูปแบบการเคลื่อนที่ด้านข้าง
ข้อมูลรับรองที่นำกลับมาใช้ซ้ำเป็นกลไกสำคัญของการเคลื่อนที่ด้านข้าง ช่องทางการเรียกใช้ที่พบบ่อย ได้แก่
- SMB + การสร้างบริการ (รูปแบบ psexec)
- การสร้างกระบวนการระยะไกลด้วย WMI
- WinRM / การเรียกใช้ PowerShell จากระยะไกล
- การสร้างอินสแตนซ์ออบเจ็กต์ DCOM
แฮชหรือตั๋วเดียวกันที่ขโมยมาอาจใช้ปลดล็อกโฮสต์จำนวนมากที่บัญชีนั้นเป็นผู้ดูแลระบบภายในเครื่อง
เหตุใดการใช้ผู้ดูแลระบบภายในเครื่องซ้ำจึงอันตราย
การใช้รหัสผ่านผู้ดูแลระบบภายในเครื่องเดียวกันร่วมกันในหลายเครื่องเป็นเรื่องร้ายแรงอย่างยิ่ง หากดึงรหัสผ่านนั้นออกมาได้เพียงครั้งเดียว คุณก็สามารถส่งผ่านแฮชเข้าสู่ทุกโฮสต์ที่ใช้รหัสผ่านเดียวกันได้
LAPS แก้ปัญหานี้ด้วยการตั้งรหัสผ่านผู้ดูแลระบบภายในเครื่องที่ไม่ซ้ำกันและหมุนเวียนให้แต่ละเครื่อง โดยจัดเก็บไว้ใน AD พร้อมจำกัดสิทธิ์การอ่าน
การตรวจจับ
การโจมตีเหล่านี้ทิ้งร่องรอยให้ตรวจสอบได้หากเฝ้าดูอย่างเหมาะสม
- ประเภทการเข้าสู่ระบบ
3/9ที่ใช้ NTLM ในกรณีที่ควรใช้เคอร์เบอรอส - เหตุการณ์
4624ที่มี seclogon หรือมี NTLM ผิดปกติจากบัญชีที่มีสิทธิ์สูง - ความผิดปกติของตั๋ว เช่น มี TGS โดยไม่มี TGT ก่อนหน้า (ตั๋วเงิน) หรือตั๋วมีอายุการใช้งานผิดปกติ (ตั๋วทองคำ)
- การเข้าถึง LSASS จากกระบวนการที่ไม่ใช่มาตรฐาน (เหตุการณ์ Sysmon
10)
กลไกป้องกัน
การเสริมความมั่นคงมุ่งเน้นที่การปกป้องและแยกข้อมูลรับรองออกจากกัน
- เปิดใช้ การป้องกันข้อมูลรับรอง เพื่อแยกข้อมูลลับของ LSASS ไว้ในสภาพแวดล้อม VBS
- เพิ่มบัญชีที่มีความละเอียดอ่อนลงใน ผู้ใช้ที่ได้รับการป้องกัน (ไม่มี NTLM ไม่มีการมอบหมายสิทธิ์ และตั๋วมีอายุสั้น)
- นำ LAPS มาใช้และบังคับใช้การแบ่งระดับผู้ดูแลระบบ เพื่อไม่ให้ข้อมูลรับรองระดับ 0 ไปอยู่บนเวิร์กสเตชัน
- หมุนเวียน
krbtgtสองครั้งเมื่อสงสัยว่าถูกโจมตีด้วยตั๋วทองคำ
การทดสอบอย่างรับผิดชอบ
การดึงข้อมูลจาก LSASS และการปลอมตั๋วเป็นการดำเนินการที่มีผลกระทบสูง ให้ทำเฉพาะเมื่อได้รับอนุญาตอย่างชัดเจนและทำกับเป้าหมายที่ตกลงกันไว้เท่านั้น หลีกเลี่ยงการดึงข้อมูลจาก DC สำหรับใช้งานจริง เว้นแต่จะอยู่ในขอบเขตงาน และทำลายแฮชกับตั๋วที่เก็บเกี่ยวมาอย่างปลอดภัยหลังจากรายงานผลแล้ว
บันทึกการนำข้อมูลรับรองแต่ละรายการกลับมาใช้ซ้ำ เพื่อให้ทีมป้องกันตรวจสอบได้ว่ากลไกตรวจจับทำงาน
ตรวจสอบความเข้าใจ
ตรวจสอบความเข้าใจเกี่ยวกับการโจมตีที่นำข้อมูลรับรองกลับมาใช้ซ้ำ
ทบทวน
คุณได้เห็นแล้วว่าแฮชและตั๋วที่ขโมยมาสามารถหลีกเลี่ยงการใช้รหัสผ่านได้โดยสิ้นเชิง
- การส่งผ่านแฮชนำแฮช NTLM กลับมาใช้ซ้ำ ส่วนการส่งผ่านตั๋วนำตั๋วเคอร์เบอรอสกลับมาใช้ซ้ำ
- การข้ามผ่านแฮชแปลงแฮชให้เป็น TGT ของเคอร์เบอรอสที่ถูกต้อง
- ตั๋วทองคำ ตั๋วเงิน และตั๋วเพชรถูกปลอมขึ้นเพื่อคงการเข้าถึง
- การป้องกันข้อมูลรับรอง, LAPS, ผู้ใช้ที่ได้รับการป้องกัน และการหมุนเวียน krbtgt คือกลไกป้องกันหลัก
ต่อไป: เปลี่ยนจุดยึดเริ่มต้นให้เป็นการควบคุมโดเมนอย่างสมบูรณ์
คำถามที่พบบ่อย
บทเรียน “Pass-the-Hash และ Pass-the-Ticket” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Pass-the-Hash และ Pass-the-Ticket” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Pass-the-Hash และ Pass-the-Ticket”
นำข้อมูลรับรองที่ขโมยมาใช้ซ้ำ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “Pass-the-Hash และ Pass-the-Ticket” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นผิวการโจมตีของ Active Directory
- Kerberos และ Kerberoasting
- Pass-the-Hash และ Pass-the-Ticket
- การยกระดับสิทธิ์และการครอบงำโดเมน