การประนีประนอมรหัสผ่านข้อความธรรมดาใน Active Directory
ได้รับความสนใจเป็นอย่างมากในการป้องกันการโจมตีแบบ Pass-the-Hash และ Pass-The-Tick แต่กลยุทธ์เหล่านี้จำกัดฝ่ายตรงข้ามให้ทำได้เฉพาะสิ่งที่พวกเขาสามารถทำได้จากบรรทัดคำสั่ง การใช้รหัสผ่านแบบธรรมดาทำให้ผู้โจมตีสามารถเข้าถึงบัญชีได้ไม่จำกัด — ซึ่งรวมถึงการเข้าถึงเว็บแอปพลิเคชัน, VPN, อีเมลและอื่นๆ อีกมากมาย
วิธีหนึ่งในการแยกรหัสผ่านแบบข้อความธรรมดาคือผ่าน Kerberoasting แต่เทคนิคการบังคับดุร้ายนี้ต้องใช้เวลาและความอดทนอย่างมาก มีวิธีที่เร็วและง่ายกว่าในการแยกรหัสผ่านแบบข้อความธรรมดา ซึ่งเราจะพูดถึงในโพสต์นี้
การตั้งค่านโยบายกลุ่ม
ใน Windows Server 2008 Microsoft ได้เปิดตัวการตั้งค่านโยบายกลุ่ม (GPP) กรณีการใช้งานทั่วไปประการหนึ่งสำหรับ GPP คือการสร้างและจัดการบัญชีภายในเครื่อง (เช่น บัญชีผู้ดูแลระบบ) บนเซิร์ฟเวอร์และเวิร์กสเตชัน ในส่วนนี้ ผู้ดูแลระบบสามารถพุชรหัสผ่านสำหรับบัญชีเหล่านี้ได้
รหัสผ่านจะถูกจัดเก็บไว้ในไฟล์ Group Policy XML ใน SYSVOL และถูกเข้ารหัสโดยใช้คีย์ AES อย่างไรก็ตาม Microsoft เผยแพร่คีย์ AES ซึ่งสามารถใช้เพื่อถอดรหัสรหัสผ่านเหล่านี้ ทำให้เป็นรหัสผ่านแบบธรรมดาที่มีประสิทธิภาพ
เนื่องจากการแชร์ SYSVOL เปิดสำหรับผู้ใช้ที่ได้รับการรับรองความถูกต้อง ผู้ใช้ในองค์กรจึงสามารถอ่านไฟล์ที่เก็บไว้ที่นั่นได้ ดังนั้นบัญชีผู้ใช้ใดๆ จึงสามารถค้นหาและถอดรหัสไฟล์นโยบายกลุ่มได้ และด้วยเหตุนี้จึงสามารถเข้าถึงรหัสผ่านข้อความธรรมดาสำหรับบัญชีผู้ดูแลระบบได้ คำสั่ง PowerSploit Get-GPPPassword จะค้นหาและถอดรหัสรหัสผ่านเหล่านี้ให้คุณ
หากต้องการทราบรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้ โปรดดูโพสต์ของ Sean Metcalf และโพสต์ของ Microsoft นอกจากนี้ Microsoft ยังมีสคริปต์ที่มีประโยชน์สำหรับการสแกนหา GPP ที่มีรหัสผ่านซึ่งเป็นส่วนหนึ่งของกระดานข่าวด้านความปลอดภัย
Mimikatz และ LSASS Minidumps
โดยทั่วไปแล้ว Mimikatz จะใช้เพื่อแยกแฮชรหัสผ่าน NTLM หรือตั๋ว Kerberos ออกจากหน่วยความจำ อย่างไรก็ตาม หนึ่งในความสามารถที่ไม่ค่อยมีใครรู้จักคือความสามารถในการแยกรหัสผ่านข้อความธรรมดาจากดัมพ์ที่สร้างขึ้นสำหรับกระบวนการ LSASS ซึ่งหมายความว่าผู้โจมตีสามารถประนีประนอมรหัสผ่านข้อความธรรมดาโดยไม่ต้องเรียกใช้โค้ดที่เป็นอันตรายบนตัวควบคุมโดเมน ไฟล์ดัมพ์สามารถสร้างแบบโต้ตอบได้หรือใช้ ProcDump และไม่ว่าในกรณีใด กิจกรรมดังกล่าวไม่น่าจะถูกติดธงทำเครื่องหมายโดยซอฟต์แวร์ป้องกันไวรัส เมื่อสร้างดัมพ์แล้ว จะสามารถคัดลอกออกจากตัวควบคุมโดเมนได้ และข้อมูลประจำตัวแบบข้อความธรรมดาสามารถเก็บเกี่ยวได้โดยใช้ Mimikatz ออฟไลน์
คุณสามารถดูการสร้างดัมพ์กระบวนการบนตัวควบคุมโดเมนโดยใช้ ProcDump ได้ที่นี่
คำสั่งนี้จะสร้างภาพรวมของกระบวนการ LSASS ซึ่งประกอบด้วยข้อมูลรหัสผ่านแบบธรรมดา:
เมื่อสร้างแล้ว สามารถคัดลอกไฟล์ไปยังโฮสต์อื่นเพื่อแยกรหัสผ่านออฟไลน์โดยใช้ Mimikatz โดยใช้คำสั่ง sekurlsa::minidump คุณสามารถสลับบริบทของ Mimikatz ไปเป็นไฟล์ดัมพ์ที่แยกออกมา และออกคำสั่ง sekurlsa::logonpasswords ได้:
การใช้ Mimikatz กับ Digest Authentication Protocol
โปรโตคอล Digest Authentication (WDigest.dll) ซึ่งเปิดตัวใน Windows XP ใช้สำหรับ HTTP และ SASL สิ่งสำคัญที่สุดคือ การเปิดใช้งาน WDigest จะส่งผลให้มีการจัดเก็บข้อมูลประจำตัวแบบข้อความธรรมดาสำหรับบัญชีที่มีการรับรองความถูกต้องในเครื่อง ในปี 2014 Microsoft เปิดตัวแพตช์ที่ให้คุณปิดการใช้งาน WDigest โดยใช้ค่ารีจิสทรี UseLogonCredential อย่างไรก็ตาม หลายองค์กรยังคงใช้งานเซิร์ฟเวอร์และเวิร์กสเตชันจำนวนมากโดยเปิดใช้งาน WDigest
หากเปิดใช้งาน WDigest ฝ่ายตรงข้ามสามารถดึงข้อมูลรับรองข้อความธรรมดาได้อย่างง่ายดายด้วยคำสั่ง sekurlsa::logonpasswords:
การใช้ประโยชน์จากการเข้ารหัสแบบย้อนกลับได้
Active Directory ช่วยให้สามารถจัดเก็บรหัสผ่านผู้ใช้ด้วยการเข้ารหัสแบบย้อนกลับได้ ซึ่งโดยพื้นฐานแล้วเหมือนกับการจัดเก็บรหัสผ่านในรูปแบบข้อความธรรมดา นโยบายนี้ถูกนำมาใช้ใน Windows Server 2000 และยังคงมีอยู่ในเวอร์ชันล่าสุดด้วยซ้ำ ตามข้อมูลของ Microsoft ได้รับการแนะนำเพื่อให้ “การสนับสนุนสำหรับแอปพลิเคชันที่ใช้โปรโตคอลที่ต้องใช้รหัสผ่านของผู้ใช้ในการตรวจสอบสิทธิ์”
ตามค่าเริ่มต้น นโยบายนี้จะปิดอยู่ แต่หากเปิดใช้งาน ฝ่ายตรงข้ามสามารถแยกรหัสผ่านข้อความที่ชัดเจนได้อย่างง่ายดายโดยใช้เทคนิคเช่น DCSync:
คำสั่งด้านบนจะส่งคืนรหัสผ่านข้อความธรรมดา:
นโยบายการเข้ารหัสแบบย้อนกลับสามารถเปิดใช้งานได้ผ่านการตั้งค่าการควบคุมบัญชีผู้ใช้ของนโยบายกลุ่มและผ่านนโยบายรหัสผ่านที่ละเอียด ผู้โจมตีอาจสามารถสร้างนโยบายรหัสผ่านแบบละเอียดที่ลิงก์ไปยังผู้ดูแลระบบโดเมนเพื่อเปิดใช้งานรหัสผ่านของตนเพื่อจัดเก็บด้วยการเข้ารหัสแบบย้อนกลับได้ โดยทำให้พวกเขาสามารถเข้าถึงรหัสผ่านข้อความธรรมดาสำหรับบัญชีที่มีสิทธิ์
บทสรุป
อย่างที่คุณเห็น ผู้โจมตีที่สนใจสามารถรับรหัสผ่านข้อความธรรมดาสำหรับบัญชี Active Directory ได้ไม่มีทางขาดแคลน สำหรับข้อมูลเพิ่มเติม โปรดอ่านโพสต์ที่เกี่ยวข้องของเราเกี่ยวกับการแยกรหัสผ่านข้อความธรรมดาโดยใช้ PowerSploit การค้นหารหัสผ่านที่ไม่รัดกุม การโจมตีรหัสผ่านที่ไม่รัดกุม และการโจมตีรหัสผ่านบัญชีในเครื่อง
Netwrix StealthDEFEND ช่วยให้คุณสามารถตรวจจับสิ่งนี้ได้อย่างมีประสิทธิภาพและการโจมตีที่ซับซ้อนยิ่งขึ้นในโครงสร้างพื้นฐานของคุณ และตอบสนองต่อการโจมตีแบบเรียลไทม์





