สรุปสั้น

เครื่องมือโอเพนซอร์ส DPAPISnoop ได้รับการอัปเดตครั้งสำคัญโดยนาย Lefteris Panos ที่ปรึกษาด้านความปลอดภัยจากทีม Red Team ของบริษัท LRQA เพิ่มความสามารถในการสกัดข้อมูลจากไฟล์ CREDHIST ของ Windows ซึ่งเป็นกลไกที่ระบบปฏิบัติการใช้เก็บประวัติรหัสผ่านเก่าเป็นลูกโซ่เชื่อมต่อกัน เมื่อผู้ใช้เปลี่ยนรหัสผ่าน Windows จะสร้างรายการ CREDHIST ใหม่เพื่อให้ข้อมูลที่เข้ารหัสด้วยรหัสผ่านเก่ายังคงเข้าถึงได้ โดยแต่ละรายการจะถูกเข้ารหัสด้วย key material ที่ได้มาจากรหัสผ่านนั้นๆ

เครื่องมือนี้สามารถแปลงรายการ CREDHIST เป็นแฮชรูปแบบ $credhist$ ที่นำไปถอดรหัสแบบออฟไลน์ด้วย Hashcat ได้ทันที โดยรองรับโหมดใหม่ 2 โหมดคือ 15920 สำหรับ 3DES/HMAC-SHA1 และ 15930 สำหรับ AES-256/SHA-512 นักวิจัยชี้ว่ารายการเก่ามักใช้การเข้ารหัสที่อ่อนแอกว่า ทำให้ถอดรหัสได้ง่ายและสามารถใช้ผลลัพธ์ย้อนถอดรหัสรายการอื่นต่อเป็นทอดๆ จนกู้คืนประวัติรหัสผ่านทั้งหมดของผู้ใช้ได้

รายละเอียดข่าว

เว็บไซต์ Cyber Security News รายงานเมื่อวันที่ 15 มิถุนายน พ.ศ. 2569 ว่า เครื่องมือ DPAPISnoop ซึ่งเป็นเครื่องมือโอเพนซอร์สที่ใช้ในการทดสอบเจาะระบบ (penetration testing) ได้รับการอัปเดตให้รองรับการสกัดข้อมูลจากไฟล์ CREDHIST ของ Windows โดยนาย Lefteris Panos ที่ปรึกษาด้านความปลอดภัยจากทีม Red Team ของบริษัท LRQA เป็นผู้พัฒนาฟีเจอร์นี้ Microsoft Data Protection API (DPAPI) เป็นกลไกที่ Windows ใช้ปกป้องข้อมูลสำคัญ เช่น credential ของเบราว์เซอร์ คีย์เข้ารหัส และข้อมูลลับต่างๆ เดิมทีนักทดสอบเจาะระบบมักมุ่งเน้นการกู้คืน DPAPI Master Key เพื่อถอดรหัสข้อมูล แต่อัปเดตใหม่นี้เปิดช่องทางการโจมตีผ่านไฟล์ CREDHIST ที่จัดเก็บอยู่ใน %APPDATA%\Microsoft\Protect ซึ่งเก็บรหัสผ่านเก่าทุกรายการเป็นลูกโซ่ที่เชื่อมต่อกัน

เครื่องมือสามารถ parse ไฟล์ CREDHIST และแปลงรายการเป็นแฮชที่ใช้งานกับ Hashcat ได้โดยตรง โดยนักวิจัยได้เพิ่มโหมด Hashcat ใหม่ 2 โหมดคือ 15920 สำหรับรายการที่ใช้ 3DES กับ HMAC-SHA1 และ 15930 สำหรับรายการที่ใช้ AES-256 กับ SHA-512 เมื่อถอดรหัสได้สำเร็จ 1 รายการ สามารถนำผลลัพธ์ไปปลดล็อกรายการอื่นในลูกโซ่ต่อไปได้ ทำให้กู้คืนประวัติรหัสผ่านทั้งหมดของผู้ใช้รายนั้น รวมถึง SHA1 หรือ NTLM hash ของรหัสผ่านเก่าที่อาจถูกนำไปใช้ซ้ำในระบบอื่น

DPAPISnoop tool extracting CREDHIST hashes from Windows credentials
DPAPISnoop tool extracting CREDHIST hashes from Windows credentials

วิธีการโจมตี

กระบวนการเริ่มจากผู้โจมตีที่สามารถเข้าถึงระบบไฟล์ของเครื่องเป้าหมายได้ (เช่น ผ่าน local access, SMB share หรือ administrative share) จากนั้นจะคัดลอกไฟล์ CREDHIST จาก %APPDATA%\Microsoft\Protect มาวิเคราะห์ด้วย DPAPISnoop ซึ่งจะแปลงแต่ละรายการเป็นแฮชรูปแบบ $credhist$

รายการเก่าใน CREDHIST มักใช้การเข้ารหัสที่อ่อนแอกว่า เช่น SHA1-based PBKDF2 กับ 3DES ซึ่งถอดรหัสได้เร็วกว่ารูปแบบ SHA-512 ที่มี iteration count สูงกว่าอย่างมาก เมื่อถอดรหัสรายการกลางลูกโซ่ได้สำเร็จ จะเผยให้เห็น SHA1 หรือ NTLM hash ของรหัสผ่านเก่า ซึ่งนำไปใช้ปลดล็อกรายการอื่นต่อเนื่องได้ ข้อมูลที่ได้มีคุณค่าหลายด้าน ได้แก่ การระบุแพทเทิร์นการตั้งรหัสผ่านซ้ำ การวิเคราะห์แนวโน้มความซับซ้อนของรหัสผ่าน และโอกาสในการนำรหัสผ่านเก่าไปใช้ซ้ำกับระบบอื่นในองค์กร ซึ่งช่วยเร่งการเคลื่อนตัวในแนวราบ (lateral movement) และการยกระดับสิทธิ์ (privilege escalation) ในการโจมตีจริง

ผลกระทบต่อไทย

องค์กรในประเทศไทยที่ใช้ Windows เป็นระบบปฏิบัติการหลักและมีผู้ใช้จำนวนมากเปลี่ยนรหัสผ่านตามนโยบาย password rotation ล้วนมีไฟล์ CREDHIST สะสมอยู่ในทุกเครื่อง หากผู้โจมตีเข้าถึงระบบไฟล์ได้ ไม่ว่าจะเป็นผ่าน SMB share ที่ตั้งค่าไม่รัดกุมหรือผ่านมัลแวร์ ก็สามารถกู้คืนประวัติรหัสผ่านทั้งหมดและนำไปใช้โจมตีระบบภายในอื่นๆ ต่อได้ โดยเฉพาะหน่วยงานที่ผู้ใช้มีนิสัยตั้งรหัสผ่านซ้ำหรือเปลี่ยนเพียงตัวเลขท้ายจะได้รับผลกระทบมากที่สุด

คำแนะนำ

ผู้ดูแลระบบควรเฝ้าระวังการเข้าถึงไฟล์ในไดเรกทอรี %APPDATA%\Microsoft\Protect โดยเฉพาะไฟล์ CREDHIST และไดเรกทอรี DPAPI ของผู้ใช้แต่ละราย รวมถึงการเข้าถึงผ่าน SMB หรือ administrative share แนะนำให้ใช้ Sigma rules หรือ Elastic detection rules ที่มีอยู่แล้วสำหรับตรวจจับการเข้าถึง credential history file ที่ผิดปกติ นอกจากนี้ควรบังคับใช้นโยบายรหัสผ่านที่เข้มงวดซึ่งไม่อนุญาตให้ใช้รหัสผ่านที่คล้ายกับรหัสผ่านเก่า จำกัดสิทธิ์การเข้าถึงไฟล์ในระบบ และติดตามพฤติกรรมการเข้าถึง credential ที่ผิดปกติบน endpoint อย่างต่อเนื่อง

แหล่งอ้างอิง