Pass-the-Hash
นำข้อมูลรับรองกลับมาใช้ใหม่
Pass-the-Hash เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
Pass-the-Hash คืออะไร
Pass-the-Hash (PtH) เป็นเทคนิคที่ผู้โจมตีใช้ยืนยันตัวตนด้วย แฮช รหัสผ่าน NTLM ของผู้ใช้ แทนรหัสผ่านแบบข้อความธรรมดา
เนื่องจากการยืนยันตัวตนด้วย NTLM ของ Windows ใช้ตัวแฮชเป็นความลับโดยตรง คุณจึงไม่จำเป็นต้องถอดรหัสแฮชนั้นเพื่อเข้าสู่ระบบในฐานะผู้ใช้ดังกล่าว
แฮช NTLM
Windows จัดเก็บรหัสผ่านบัญชีเป็น แฮช NTLM (ค่า MD4 ของรหัสผ่าน UTF-16) ระหว่างการยืนยันตัวตนด้วย NTLM สิ่งที่ใช้พิสูจน์ตัวตนคือแฮช ไม่ใช่รหัสผ่าน
ข้อบกพร่องด้านการออกแบบนี้ทำให้การขโมยแฮชมีผลเทียบเท่ากับการขโมยรหัสผ่านสำหรับการเข้าสู่ระบบที่ใช้ NTLM
แฮชถูกเก็บไว้ที่ใด
สามารถเก็บแฮชได้จากหลายแหล่ง:
- ฐานข้อมูล SAM บนเครื่องภายใน
- หน่วยความจำของกระบวนการ LSASS สำหรับผู้ใช้ที่เข้าสู่ระบบอยู่
- ไฟล์ NTDS.dit บนตัวควบคุมโดเมน
แต่ละแหล่งต้องใช้สิทธิ์แตกต่างกัน แต่ทั้งหมดให้แฮชที่นำกลับมาใช้ได้
ดึงข้อมูลด้วย Mimikatz
Mimikatz เป็นเครื่องมือดั้งเดิมสำหรับดึงข้อมูลประจำตัวจากหน่วยความจำของ LSASS คำสั่ง sekurlsa::logonpasswords จะแสดงแฮช NTLM ของผู้ใช้ที่เข้าสู่ระบบอยู่ในขณะนั้น
ต้องมีสิทธิ์ผู้ดูแลระบบภายใน (และมักต้องมี SeDebugPrivilege) เพื่ออ่าน LSASS
mimikatz # sekurlsa::logonpasswordsดึงข้อมูลด้วย secretsdump
secretsdump.py ของ Impacket สามารถดึงแฮชจาก SAM และฐานข้อมูลโดเมนจากระยะไกลโดยใช้ข้อมูลประจำตัวที่ถูกต้อง
นอกจากนี้ยังทำ DCSync เพื่อดึงแฮชโดยตรงจากตัวควบคุมโดเมนได้ หากคุณมีสิทธิ์การจำลองแบบที่เหมาะสม
secretsdump.py corp.local/admin:Pass@10.0.0.10การส่งต่อแฮช
เมื่อมีแฮชแล้ว เครื่องมือต่าง ๆ จะช่วยให้คุณใช้แฮชนั้นยืนยันตัวตนได้โดยตรง psexec.py ของ Impacket รับแฮชผ่านแฟล็ก -hashes และมอบเชลล์ระยะไกลให้คุณ
รูปแบบคือ LMHASH:NTHASH โดยส่วน LM มักเป็นเลขศูนย์ว่างบนระบบสมัยใหม่
psexec.py -hashes :a1b2c3d4... administrator@10.0.0.20การส่งต่อแฮชด้วยเครื่องมืออื่น
เครื่องมือจำนวนมากรองรับ PtH:
- CrackMapExec / NetExec: กระจายแฮชไปยังโฮสต์จำนวนมาก
- evil-winrm: เชลล์ WinRM ที่ใช้แฮช
- wmiexec.py / smbexec.py: วิธีเรียกใช้งานทางเลือก
การกระจายแฮชของผู้ดูแลระบบภายในเพียงหนึ่งรายการไปทั่วเครือข่ายย่อย อาจขยายการเข้าถึงได้อย่างรวดเร็ว
netexec smb 10.0.0.0/24 -u admin -H a1b2c3d4... การเคลื่อนที่ด้านข้าง
Pass-the-Hash เป็นเทคนิคหลักสำหรับ การเคลื่อนที่ด้านข้าง ผู้โจมตีนำแฮชผู้ดูแลระบบภายในของเครื่องหนึ่งกลับมาใช้กับเครื่องอื่น (ซึ่งเป็นปัญหาเมื่อใช้รหัสผ่านผู้ดูแลระบบภายในเดียวกันร่วมกัน) เพื่อกระโดดจากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่ง
โฮสต์ใหม่แต่ละเครื่องอาจมีแฮชของผู้ใช้ที่มีสิทธิ์สูงกว่าอยู่ในหน่วยความจำ
การป้องกัน
มาตรการลดความเสี่ยงได้แก่:
- LAPS: ใช้รหัสผ่านผู้ดูแลระบบภายในที่สุ่มและไม่ซ้ำกันในแต่ละเครื่อง
- Credential Guard: แยกความลับของ LSASS ออกมา
- จำกัดสถานที่ที่บัญชีสิทธิ์สูงสามารถเข้าสู่ระบบได้ (การแบ่งระดับ)
- ปิดใช้งาน NTLM และใช้ Kerberos แทนเมื่อทำได้
การโจมตีที่เกี่ยวข้อง
Pass-the-Hash มีเทคนิคที่คล้ายกัน ได้แก่:
- Pass-the-Ticket: นำตั๋ว Kerberos ที่ขโมยมาใช้ซ้ำ
- Overpass-the-Hash: ใช้แฮช NTLM เพื่อขอ TGT ของ Kerberos
เทคนิคเหล่านี้ขยายการนำข้อมูลประจำตัวกลับมาใช้ซ้ำไปสู่โลกของ Kerberos
NTLM เทียบกับ Kerberos
Pass-the-Hash ใช้ประโยชน์จากการยืนยันตัวตนด้วย NTLM โดยเฉพาะ สภาพแวดล้อมที่บังคับใช้ Kerberos และปิดใช้งาน NTLM จะลดพื้นผิวการโจมตีลงได้อย่างมาก
อย่างไรก็ตาม เครือข่ายส่วนใหญ่ยังคงใช้ NTLM เพื่อความเข้ากันได้ ดังนั้น PtH จึงยังคงมีประสิทธิภาพในวงกว้าง ด้วยเหตุนี้ การปิดใช้งาน NTLM จึงเป็นขั้นตอนแนะนำในการเสริมความมั่นคงปลอดภัย
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ลองทบทวนว่าเหตุใด PtH จึงไม่จำเป็นต้องถอดรหัส
สรุปทบทวน
ขณะนี้คุณเข้าใจ Pass-the-Hash แล้ว:
- การยืนยันตัวตนด้วย NTLM ยอมรับ แฮช เป็นข้อมูลลับ จึงไม่จำเป็นต้องถอดรหัส
- แฮชถูกดึงออกจาก SAM, LSASS หรือ NTDS.dit โดยใช้ Mimikatz หรือ secretsdump
- เครื่องมืออย่าง psexec.py, NetExec และ evil-winrm นำแฮชกลับมาใช้เพื่อการเคลื่อนที่ด้านข้าง
- ป้องกันด้วย LAPS, Credential Guard และการแบ่งระดับ
ถัดไป คุณจะทำแผนผังเส้นทางการโจมตีด้วย BloodHound
คำถามที่พบบ่อย
บทเรียน “Pass-the-Hash” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Pass-the-Hash” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Pass-the-Hash”
นำข้อมูลรับรองกลับมาใช้ใหม่ คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “Pass-the-Hash” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม
ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน AD
- Kerberoasting
- Pass-the-Hash
- BloodHound