การยืนยันตัวตน Windows: NTLM และ Kerberos
ทำความเข้าใจการทำงานของการท้าทายและตอบกลับของ NTLM และการออกตั๋วของ Kerberos
การยืนยันตัวตน Windows: NTLM และ Kerberos เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
ภาพรวมการยืนยันตัวตนของ Windows
Windows ใช้โพรโทคอลการยืนยันตัวตนหลักสองแบบ: NTLM (รุ่นเก่าที่ใช้การตอบสนองต่อคำท้าทาย) และ Kerberos (รุ่นใหม่ที่ใช้ตั๋ว) การทำความเข้าใจทั้งสองแบบมีความสำคัญอย่างยิ่งต่อการโจมตีและการป้องกัน Active Directory
การตอบสนองต่อคำท้าทายของ NTLM
NTLM ทำงานด้วยข้อความสามรายการ ได้แก่ Negotiate, Challenge และ Authenticate ไคลเอนต์จะแฮชรหัสผ่านของผู้ใช้ร่วมกับคำท้าสุ่มจากเซิร์ฟเวอร์ โดยจะส่งแฮช ไม่ใช่รหัสผ่านแบบข้อความธรรมดา
# NTLM flow:
# 1. Client sends: NEGOTIATE
# 2. Server sends: CHALLENGE (8-byte nonce)
# 3. Client sends: NT hash of (password + nonce)
#
# The NT hash = MD4(UTF-16LE(password))ช่องทางการโจมตี Pass-the-Hash
เนื่องจาก NTLM ยืนยันตัวตนด้วยแฮช การขโมยแฮชจึงทำให้คุณยืนยันตัวตนได้โดยไม่ต้องรู้รหัสผ่านแบบข้อความธรรมดา นี่คือแก่นของการโจมตีแบบ Pass-the-Hash — แฮชก็คือข้อมูลประจำตัว
ภาพรวม Kerberos
Kerberos ใช้บุคคลที่สามที่เชื่อถือได้ (KDC — ศูนย์กระจายกุญแจ) เพื่อออกตั๋ว โดยให้การยืนยันตัวตนระหว่างกันทั้งสองฝ่าย และหลีกเลี่ยงการส่งข้อมูลประจำตัวผ่านเครือข่ายหลังจากออก TGT ครั้งแรก
# Kerberos components:
# KDC: Key Distribution Center (domain controller)
# AS: Authentication Service (issues TGTs)
# TGS: Ticket Granting Service (issues service tickets)
# TGT: Ticket Granting Ticket (proves identity)
# ST: Service Ticket (grants access to a service)ลำดับการพิสูจน์ตัวตนด้วยเคอร์เบอรอส
1. ไคลเอนต์ส่ง AS-REQ (เข้ารหัสด้วยแฮชรหัสผ่าน) ไปยัง AS 2. AS ส่ง TGT ที่เข้ารหัสด้วยคีย์ krbtgt กลับมา 3. ไคลเอนต์ส่ง TGT ให้ TGS เพื่อขอตั๋วบริการ 4. ไคลเอนต์ส่งตั๋วบริการให้บริการเป้าหมาย
ตั๋วสำคัญของเคอร์เบอรอส
TGT (ตั๋วสำหรับขอตั๋วบริการ): ใช้ยืนยันตัวตนกับ KDC และมีอายุประมาณ 10 ชั่วโมง ตั๋วบริการ: ให้สิทธิ์เข้าถึงบริการที่ระบุ ตั๋วทั้งสองชนิดเข้ารหัสด้วยคีย์ที่ไคลเอนต์ไม่สามารถอ่านได้
# View tickets on Windows:
klist
# View on Linux (with Kerberos client)
klist -v
# Request a TGT:
kinit username@DOMAIN.COMการเปรียบเทียบความปลอดภัยระหว่าง NTLM กับเคอร์เบอรอส
ควรเลือกใช้เคอร์เบอรอสมากกว่า เพราะรองรับการพิสูจน์ตัวตนระหว่างกัน ไม่ส่งข้อมูลแบบข้อความอ่านได้ และถูกส่งต่อได้ยากกว่า ส่วน NTLM จะทำงานเป็นทางเลือกสำรองเมื่อเคอร์เบอรอสล้มเหลว (เช่น การเข้าถึงด้วยที่อยู่ IP หรือโฮสต์ที่ไม่ได้อยู่ในโดเมน) ผู้โจมตีจึงบังคับให้ใช้ NTLM เป็นทางเลือกสำรองเพื่อดักจับแฮชได้
การโจมตีแบบส่งต่อ NTLM
การส่งต่อ NTLM จะดักจับความพยายามพิสูจน์ตัวตนด้วย NTLM แล้วส่งต่อไปยังบริการอื่น ทำให้พิสูจน์ตัวตนในฐานะเหยื่อได้โดยไม่ต้องทราบรหัสผ่านของเหยื่อ รีสปอนเดอร์ใช้ดักจับข้อมูล ส่วน ntlmrelayx ใช้ส่งต่อข้อมูล
# Capture NTLM hashes with Responder
responder -I eth0 -rdwv
# Relay with ntlmrelayx
ntlmrelayx.py -tf targets.txt -smb2supportการพิสูจน์ตัวตนล่วงหน้าของเคอร์เบอรอส
การพิสูจน์ตัวตนล่วงหน้ากำหนดให้ไคลเอนต์เข้ารหัสเวลาประทับด้วยแฮชรหัสผ่านก่อนรับ TGT บัญชีที่ไม่กำหนดให้ต้องพิสูจน์ตัวตนล่วงหน้าจะเสี่ยงต่อการโจมตีแบบแคร็ก AS-REP เพราะสามารถขอ TGT และแคร็กแบบออฟไลน์ได้
ตั๋วทองคำและตั๋วเงิน
ตั๋วทองคำ: TGT ปลอมที่ลงนามด้วยแฮช krbtgt ทำให้เข้าถึงได้ทุกสิ่ง ตั๋วเงิน: ตั๋วบริการปลอมสำหรับบริการที่ระบุ มีโอกาสถูกตรวจพบน้อยกว่าและไม่ต้องติดต่อ KDC
การเสริมความมั่นคงปลอดภัยของการพิสูจน์ตัวตนในวินโดวส์
ปิดใช้งาน NTLM เมื่อทำได้ บังคับใช้การลงนาม SMB เพื่อป้องกันการส่งต่อ กำหนดให้ทุกบัญชีต้องใช้การพิสูจน์ตัวตนล่วงหน้า ตรวจสอบคำขอตั๋วที่ผิดปกติ (เหตุการณ์ ID 4768, 4769) และปกป้องบัญชี krbtgt
ตรวจสอบความเข้าใจ
TGT ของเคอร์เบอรอสช่วยให้ทำอะไรได้
สรุป: NTLM และเคอร์เบอรอส
NTLM พิสูจน์ตัวตนด้วยกระบวนการท้าทายและตอบกลับโดยใช้แฮช จึงเสี่ยงต่อการส่งต่อและการโจมตีแบบส่งต่อแฮช ส่วนเคอร์เบอรอสใช้ตั๋วที่ออกโดย KDC ที่เชื่อถือได้ จึงปลอดภัยกว่า แต่ยังเสี่ยงต่อการแคร็ก Kerberos การแคร็ก AS-REP และการโจมตีด้วยตั๋วทองคำหรือตั๋วเงินเมื่อ KDC ถูกเจาะระบบ ควรทำความเข้าใจทั้งสองโพรโทคอลเพื่อเข้าใจเส้นทางการโจมตีในไดเรกทอรีที่ใช้งานอยู่และใช้มาตรการเสริมความมั่นคงปลอดภัยได้ตรงจุด
เรียนรู้ Cyber Security Academy ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 76
- บทเรียน
- 303
คำถามที่พบบ่อย
บทเรียน “การยืนยันตัวตน Windows: NTLM และ Kerberos” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การยืนยันตัวตน Windows: NTLM และ Kerberos” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การยืนยันตัวตน Windows: NTLM และ Kerberos”
ทำความเข้าใจการทำงานของการท้าทายและตอบกลับของ NTLM และการออกตั๋วของ Kerberos คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การยืนยันตัวตน Windows: NTLM และ Kerberos” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การยืนยันตัวตน Windows: NTLM และ Kerberos
- การโจมตี Pass-the-Hash และ Pass-the-Ticket
- Kerberoasting และ AS-REP Roasting
- การเสริมความปลอดภัย Active Directory