การเคลื่อนที่ด้านข้าง: Pass-the-Hash และ Pass-the-Ticket
ทำความเข้าใจว่าผู้โจมตีนำแฮช NTLM และตั๋ว Kerberos กลับมาใช้เพื่อเคลื่อนที่ด้านข้างโดยไม่ต้องรู้รหัสผ่านแบบข้อความเปิดได้อย่างไร รวมถึงแนวทางป้องกันการโจมตีเหล่านี้
การเคลื่อนที่ด้านข้าง: Pass-the-Hash และ Pass-the-Ticket เป็นบทเรียน Security+ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Security+ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Security+ Academy มีบทเรียนทั้งหมด 4 บทเรียน
การเคลื่อนที่ด้านข้าง: แพร่กระจายผ่านเครือข่าย
การเคลื่อนที่ด้านข้าง หมายถึงเทคนิคที่ผู้โจมตีใช้เคลื่อนผ่านเครือข่ายไปทีละขั้นหลังจากสร้างจุดยึดเริ่มต้นได้แล้ว โดยมุ่งไปยังเป้าหมายที่มีมูลค่าสูงกว่า เช่น ตัวควบคุมโดเมน ฐานข้อมูล และเครื่องลูกข่ายสำหรับผู้ดูแลระบบ แตกต่างจากการเข้าถึงครั้งแรก (ซึ่งมักมุ่งเป้าไปที่ปลายทางเพียงเครื่องเดียว) การเคลื่อนที่ด้านข้างใช้ประโยชน์จาก ความสัมพันธ์ด้านความไว้วางใจ ระหว่างระบบ ได้แก่ กลไกการตรวจสอบสิทธิ์ ข้อมูลรับรองความถูกต้องที่ใช้ร่วมกัน การเชื่อมต่อเครือข่าย และเครื่องมือสำหรับผู้ดูแลระบบ ซึ่งผู้ใช้ที่ถูกต้องพึ่งพาในแต่ละวัน การเคลื่อนที่ด้านข้างที่มีประสิทธิภาพทำให้บัญชีสิทธิ์ต่ำที่ถูกโจมตีเพียงบัญชีเดียวสามารถเข้าถึงทุกระบบในสภาพแวดล้อมได้ในที่สุด
การตรวจสอบสิทธิ์ของ Windows ทำงานอย่างไร: NTLM
NTLM (NT LAN Manager) เป็นโพรโทคอลการตรวจสอบสิทธิ์แบบเดิมของ Windows ที่ใช้กลไก การท้าทายและตอบกลับ เมื่อไคลเอนต์ตรวจสอบสิทธิ์กับเซิร์ฟเวอร์ เซิร์ฟเวอร์จะส่งค่าท้าทายแบบสุ่ม และไคลเอนต์จะตอบกลับด้วยการแฮชค่าท้าทายร่วมกับแฮช NT ของผู้ใช้ (แฮชคงที่ที่ได้มาจากรหัสผ่าน) ข้อบกพร่องด้านการออกแบบที่สำคัญคือ แฮช NT เพียงอย่างเดียวก็เพียงพอสำหรับการตรวจสอบสิทธิ์ ไม่จำเป็นต้องใช้รหัสผ่าน แฮช NT ถูกจัดเก็บไว้ใน ฐานข้อมูล Security Account Manager (SAM) บนเครื่องลูกข่าย และใน NTDS.DIT บนตัวควบคุมโดเมน หากผู้โจมตีได้แฮช NT ไป ก็สามารถตรวจสอบสิทธิ์ในฐานะผู้ใช้นั้นได้โดยไม่ต้องรู้รหัสผ่านเลย
# NT hash example: MD4 of Unicode password
# Password 'Password123' -> NT hash: 58a478135a93ac3bf058a5ea0e8fdb71
# This hash alone is sufficient for NTLM authentication
# An attacker with the hash can authenticate to any service accepting NTLMPass-the-Hash (PtH): ตรวจสอบสิทธิ์โดยไม่ใช้รหัสผ่าน
Pass-the-Hash (PtH) เป็นเทคนิคการโจมตีที่ผู้โจมตีใช้ แฮช NTLM ที่ดักจับมาเพื่อตรวจสอบสิทธิ์กับระบบอื่นโดยไม่รู้รหัสผ่านแบบข้อความธรรมดาที่อยู่เบื้องหลัง หลังจากเจาะระบบหนึ่งได้และดึงแฮชจากหน่วยความจำ (LSASS) หรือฐานข้อมูล SAM แล้ว ผู้โจมตีจะแทนที่ข้อมูลวัสดุรับรองความถูกต้องของตนเองด้วยแฮชที่ขโมยมาในคำขอตรวจสอบสิทธิ์ วิธีนี้สร้างความเสียหายอย่างมาก โดยเฉพาะเมื่อมี รหัสผ่านผู้ดูแลระบบภายในเครื่องที่ใช้ร่วมกัน (ซึ่งพบได้ทั่วไปในสภาพแวดล้อมที่ไม่มี LAPS) เพราะแฮชเดียวอาจทำให้เครื่องหลายร้อยหรือหลายพันเครื่องถูกเจาะได้ เครื่องมืออย่าง Mimikatz, psexec.py ของ Impacket และ CrackMapExec ช่วยทำการโจมตี PtH โดยอัตโนมัติ
# PtH attack using Impacket's psexec (attacker tool - for understanding defenses)
# psexec.py -hashes :58a478135a93ac3bf058a5ea0e8fdb71 administrator@192.168.1.100
# This grants an interactive shell on 192.168.1.100 WITHOUT knowing the password
# Using only the NTLM hash extracted from a previously compromised systemการป้องกันการโจมตีแบบ Pass-the-Hash
มาตรการลดความเสี่ยงหลายประการช่วยลดประสิทธิผลของการโจมตี PtH ได้ ได้แก่ Local Administrator Password Solution (LAPS) — เครื่องมือของ Microsoft ที่กำหนดรหัสผ่านผู้ดูแลระบบภายในเครื่องที่ไม่ซ้ำกันและหมุนเวียนให้แต่ละเครื่อง ดังนั้นแฮชที่ขโมยจากเครื่องหนึ่งจึงปลดล็อกได้เฉพาะเครื่องนั้น Credential Guard (Windows 10/11) — ใช้การรักษาความปลอดภัยบนพื้นฐานการจำลองเสมือนเพื่อแยก LSASS ไว้ในพื้นที่ปลอดภัยที่ไม่สามารถดึงแฮชออกมาได้ ปิดใช้งาน NTLM และใช้ Kerberos แทนเมื่อทำได้ จำกัดการเข้าถึงระดับผู้ดูแลระบบ ผ่านเวิร์กสเตชันสำหรับการเข้าถึงแบบมีสิทธิ์ (PAW) และรูปแบบผู้ดูแลระบบแบบแบ่งระดับ และ กลุ่มความปลอดภัย Protected Users ใน Active Directory ซึ่งป้องกันการแคชแฮชสำหรับบัญชีสมาชิก
# Check if LAPS is deployed on a domain
# Look for the ms-Mcs-AdmPwd attribute on computer objects
Get-ADComputer -Filter * -Properties ms-Mcs-AdmPwd |
Where {$_.'ms-Mcs-AdmPwd' -ne $null} |
Select-Object Name, 'ms-Mcs-AdmPwd'ภาพรวม Kerberos: ตั๋วทำงานอย่างไร
Kerberos เป็นโพรโทคอลการตรวจสอบสิทธิ์เริ่มต้นในสภาพแวดล้อม Active Directory และหลีกเลี่ยงการส่งรหัสผ่านหรือแฮชผ่านเครือข่ายด้วยการใช้ ตั๋วที่เข้ารหัส กระบวนการมีดังนี้: (1) ไคลเอนต์ตรวจสอบสิทธิ์กับ Key Distribution Center (KDC) ซึ่งเป็นบทบาทที่ตัวควบคุมโดเมนทำหน้าที่ และได้รับ Ticket Granting Ticket (TGT) ที่เข้ารหัสด้วยแฮชของบัญชี KRBTGT (2) เมื่อไคลเอนต์ต้องการเข้าถึงบริการ ไคลเอนต์จะแสดง TGT เพื่อรับ Service Ticket (TGS/ST) ที่เข้ารหัสด้วยคีย์ของบริการเป้าหมาย (3) ไคลเอนต์แสดงตั๋วบริการแก่เป้าหมาย ซึ่งจะตรวจสอบความถูกต้องโดยไม่ต้องติดต่อ KDC ตั๋วมีอายุเริ่มต้น 10 ชั่วโมง
# View current Kerberos tickets on Windows
klist
# Output shows:
# Ticket cache: API:...
# Server: krbtgt/DOMAIN.COM
# Encryption type: AES-256
# Expiration date: <timestamp>Pass-the-Ticket (PtT): ขโมยตั๋ว Kerberos
Pass-the-Ticket (PtT) เป็นรูปแบบเทียบเท่าของ Pass-the-Hash ใน Kerberos กล่าวคือ ผู้โจมตีดึงตั๋ว Kerberos ที่ยังใช้ได้จากหน่วยความจำของระบบที่ถูกเจาะ แล้วนำเข้าไปในเซสชันของตนเองเพื่อยืนยันตัวตนในฐานะเจ้าของตั๋ว ตั๋ว Kerberos ถูกจัดเก็บไว้ในหน่วยความจำบน Windows และสามารถดึงออกมาได้ด้วยคำสั่ง kerberos::list และ kerberos::ptt ของ Mimikatz TGT ที่ขโมยมามีค่ามากที่สุด เพราะใช้ขอรับตั๋วบริการสำหรับบริการใด ๆ ที่เจ้าของตั๋วมีสิทธิ์เข้าถึงได้ ส่วน Service Ticket (TGS) ที่ขโมยมามีขอบเขตจำกัดกว่า — ให้สิทธิ์เข้าถึงเฉพาะบริการที่ออกตั๋วให้เท่านั้น
# PtT attack: export and import tickets with Mimikatz
# On compromised system:
# mimikatz# kerberos::list /export <- dumps all tickets to .kirbi files
# On attacker system:
# mimikatz# kerberos::ptt ticket.kirbi <- injects stolen ticket
# Now authenticated as the ticket's owner for its serviceOver-Pass-the-Hash: ยกระดับแฮชเป็นตั๋ว
Over-Pass-the-Hash (oPtH) หรือที่เรียกว่า Pass-the-Key ช่วยเชื่อมช่องว่างระหว่างการขโมยแฮช NTLM กับการรับตั๋ว Kerberos ผู้โจมตีใช้แฮช NT หรือคีย์ AES ที่ขโมยมาเพื่อ ขอ Kerberos TGT จากตัวควบคุมโดเมน แม้จะไม่รู้รหัสผ่านแบบข้อความธรรมดา วิธีนี้แปลงแฮชที่ขโมยมาให้เป็น Kerberos TGT แบบเต็มรูปแบบ ซึ่งมอบความยืดหยุ่นทั้งหมดของการโจมตี PtT เทคนิคนี้มีประโยชน์เพราะหลายองค์กรปิดใช้งาน NTLM และหันไปใช้ Kerberos — oPtH ทำให้การโจมตีโดยใช้แฮชยังประสบความสำเร็จในสภาพแวดล้อมที่ใช้ Kerberos เท่านั้น Mimikatz นำเทคนิคนี้ไปใช้เป็น sekurlsa::pth
โพรโทคอลสำหรับการเคลื่อนที่ด้านข้าง: SMB, WMI และ RDP
ผู้โจมตีใช้โพรโทคอลหลายชนิดเพื่อเคลื่อนที่ด้านข้างด้วยข้อมูลรับรองความถูกต้องหรือตั๋วที่ขโมยมา ได้แก่ SMB (Server Message Block) ซึ่งอนุญาตให้เรียกใช้คำสั่งจากระยะไกลผ่าน PsExec พร้อมให้เข้าถึงไฟล์จากระยะไกลและสร้างบริการได้ WMI (Windows Management Instrumentation) ซึ่งอนุญาตให้เรียกใช้คำสั่งจากระยะไกล และถูกใช้มากโดยทั้งผู้ดูแลระบบและผู้โจมตีเนื่องจากมีอยู่ทั่วไปและมีช่องว่างในการบันทึก RDP (Remote Desktop Protocol) ซึ่งให้เซสชันเดสก์ท็อปแบบโต้ตอบ และ WinRM/การเรียกใช้ PowerShell จากระยะไกล ซึ่งอนุญาตให้เรียกใช้คำสั่ง PowerShell บนระบบระยะไกล ผู้ป้องกันควรกำหนดค่าพื้นฐานว่าระบบใดใช้โพรโทคอลเหล่านี้อย่างถูกต้อง และแจ้งเตือนเมื่อพบรูปแบบการใช้งานที่ผิดปกติ
# Detection: look for unusual SMB authentication from workstations
# Windows Security Event ID 4624: successful logon
# Windows Security Event ID 4648: explicit credential use
# Splunk query:
# index=windows EventCode=4624 LogonType=3 WorkstationName!='DOMAIN\server*'
# NOT [whitelist of servers]
# | stats count by Computer, AccountName, IpAddressBloodHound: แสดงภาพเส้นทางการโจมตี
BloodHound เป็นเครื่องมือโอเพนซอร์สที่ทั้งทีมโจมตีจำลองและผู้ป้องกันใช้เพื่อแสดงภาพ เส้นทางการเพิ่มสิทธิ์และการเคลื่อนที่ด้านข้างใน Active Directory เครื่องมือนี้รวบรวมข้อมูลความสัมพันธ์ (ใครเป็นสมาชิกของกลุ่มใด ใครมีสิทธิ์ผู้ดูแลระบบบนเครื่องใด บัญชีใดเปิดใช้งานการมอบสิทธิ์) และแสดงข้อมูลเป็นกราฟ โดยโหนดคือผู้ใช้/เครื่อง/กลุ่ม และเส้นเชื่อมคือสิทธิ์ คำค้น 'Find Shortest Paths to Domain Admins' ของ BloodHound สามารถแสดงให้ผู้โจมตี — และผู้ป้องกัน — เห็นได้อย่างชัดเจนว่าลำดับการเจาะระบบใดอาจนำไปสู่การควบคุมโดเมนทั้งหมด ผู้ป้องกันใช้ BloodHound เพื่อกำจัดเส้นทางสิทธิ์ที่ไม่จำเป็นก่อนที่ผู้โจมตีจะใช้ประโยชน์จากเส้นทางเหล่านั้น
# Run BloodHound collector (SharpHound) on domain
# SharpHound.exe -c All --outputdirectory C:\Temp
# Outputs JSON files imported into BloodHound Neo4j database
# Key queries for defenders:
# - Find all Domain Admins
# - Find Shortest Paths to Domain Admins
# - Find Principals with DCSync Rightsการตรวจจับการเคลื่อนที่ด้านข้าง
การตรวจจับการเคลื่อนที่ด้านข้างจำเป็นต้องเชื่อมโยงเหตุการณ์จากหลายระบบเข้าด้วยกัน สัญญาณสำคัญสำหรับการตรวจจับ ได้แก่ รหัสเหตุการณ์ Windows 4648 (การเข้าสู่ระบบด้วยข้อมูลรับรองความถูกต้องที่ระบุอย่างชัดเจน — พบได้ทั่วไปใน PtH/PtT) รหัสเหตุการณ์ 4769 (มีการขอตั๋วบริการ Kerberos — ผิดปกติหากขอตั๋วสำหรับบริการที่แทบไม่เคยเข้าถึง) รหัสเหตุการณ์ 7045/4697 (ติดตั้งบริการใหม่ — พบได้ทั่วไปในการเคลื่อนที่ด้านข้างที่ใช้ PsExec) การใช้เครื่องมือผู้ดูแลระบบที่ผิดปกติ จากเครื่องลูกข่ายที่ไม่ใช่เครื่องผู้ดูแลระบบ (wmic.exe, psexec.exe) และ ความผิดปกติในการตรวจสอบสิทธิ์ SMB เมื่อเครื่องลูกข่ายตรวจสอบสิทธิ์กับเครื่องลูกข่ายอื่น (โดยปกติการรับส่งข้อมูลจะไหลจากเครื่องลูกข่ายไปยังเซิร์ฟเวอร์ ไม่ใช่ระหว่างเครื่องระดับเดียวกัน) แพลตฟอร์ม EDR ที่มีการตรวจจับตามพฤติกรรมสามารถตรวจจับรูปแบบเหล่านี้ทั่วทั้งเครือข่ายได้
รูปแบบการบริหารแบบแบ่งระดับ
รูปแบบการบริหารแบบแบ่งระดับ (การออกแบบ Active Directory ที่ Microsoft แนะนำ) ป้องกันไม่ให้การขโมยข้อมูลรับรองความถูกต้องจากระดับหนึ่งนำไปสู่การเจาะระดับที่สูงกว่า: ระดับ 0 (ระนาบควบคุมข้อมูลประจำตัว — ตัวควบคุมโดเมน, Azure AD) — เฉพาะบัญชีผู้ดูแลระบบระดับ 0 เท่านั้นที่สามารถบริหารจัดการส่วนนี้ได้ และบัญชีเหล่านี้จะไม่เข้าสู่ระบบระดับ 1 หรือ 2 ระดับ 1 (เซิร์ฟเวอร์และบริการคลาวด์) — ใช้บัญชีผู้ดูแลระบบระดับ 1 โดยเฉพาะ ระดับ 2 (เครื่องลูกข่ายและอุปกรณ์) — ใช้บัญชีฝ่ายช่วยเหลือและบัญชีผู้ดูแลระบบมาตรฐาน การแยกข้อมูลรับรองความถูกต้องออกเป็นระดับทำให้บัญชีผู้ดูแลเครื่องลูกข่ายที่ถูกเจาะไม่สามารถใช้โจมตีตัวควบคุมโดเมนได้ วิธีนี้ตอบโต้การเคลื่อนที่ด้านข้างแบบ PtH และ PtT ได้โดยตรง
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจแนวคิด CompTIA Security+ (SY0-701) จากบทเรียนนี้
ทบทวนบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า Pass-the-Hash ใช้ประโยชน์จากการออกแบบที่ใช้แฮชของ NTLM เป็นข้อมูลรับรอง — แฮช NT เพียงอย่างเดียวก็ใช้ยืนยันตัวตนได้โดยไม่ต้องใช้รหัสผ่าน และการโจมตีนี้ป้องกันได้เป็นหลักด้วย LAPS และ Credential Guard, Pass-the-Ticket ขโมยตั๋ว Kerberos ที่ถูกต้องจากหน่วยความจำ เพื่อยืนยันตัวตนเป็นผู้ใช้อื่น โดย TGT ที่ถูกขโมยมีความอันตรายเป็นพิเศษ เพราะสามารถสร้างตั๋วบริการสำหรับบริการใดก็ได้ และ รูปแบบการดูแลระบบแบบแบ่งระดับ ช่วยป้องกันไม่ให้การขโมยข้อมูลรับรองในระดับหนึ่งเปิดทางให้เคลื่อนย้ายไปยังระดับที่มีสิทธิ์สูงกว่าได้ บทถัดไปเราจะสำรวจการโจมตี Kerberoasting และ Golden Ticket ที่มุ่งเป้าไปยังการทำงานของ Kerberos ใน Active Directory
คำถามที่พบบ่อย
บทเรียน “การเคลื่อนที่ด้านข้าง: Pass-the-Hash และ Pass-the-Ticket” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเคลื่อนที่ด้านข้าง: Pass-the-Hash และ Pass-the-Ticket” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Security+ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Security+ Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเคลื่อนที่ด้านข้าง: Pass-the-Hash และ Pass-the-Ticket”
ทำความเข้าใจว่าผู้โจมตีนำแฮช NTLM และตั๋ว Kerberos กลับมาใช้เพื่อเคลื่อนที่ด้านข้างโดยไม่ต้องรู้รหัสผ่านแบบข้อความเปิดได้อย่างไร รวมถึงแนวทางป้องกันการโจมตีเหล่านี้ คุณปฏิบัติ Security+ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Security+ Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Security+ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การเคลื่อนที่ด้านข้าง: Pass-the-Hash และ Pass-the-Ticket” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Security+ Academy นี้ได้ไหม
ได้ บทเรียน Security+ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- วงจรชีวิต APT: จากการเข้าถึงครั้งแรกสู่การคงอยู่ในระบบ
- การเคลื่อนที่ด้านข้าง: Pass-the-Hash และ Pass-the-Ticket
- การโจมตี Kerberoasting และ Golden Ticket
- กรอบการทำงาน MITRE ATT&CK สำหรับการตรวจจับและตอบสนอง