ข้อมูลประจำตัวของแคชของ Windows จัดเก็บไว้ในเครื่องท้องถิ่นอย่างไร


26

ข้อมูลประจำตัวของโดเมน Active Directory ที่แคชไว้ถูกเก็บไว้ในไคลเอนต์ Windows เป็นอย่างไร พวกเขาเก็บอยู่ในฐานข้อมูล SAM ท้องถิ่นหรือไม่ซึ่งทำให้พวกเขามีความอ่อนไหวต่อการโจมตีแบบเรนโบว์เทเบิลเดียวกันกับที่บัญชีผู้ใช้ในท้องถิ่นนั้นมีความอ่อนไหวหรือพวกเขาเก็บไว้ต่างกันหรือไม่? โปรดทราบว่าฉันทราบดีว่าพวกเขาถูกใส่เกลือและแฮชเพื่อไม่ให้ถูกจัดเก็บในรูปแบบข้อความธรรมดา แต่จะถูกแฮชในลักษณะเดียวกับบัญชีท้องถิ่นและเก็บไว้ในที่เดียวกันหรือไม่

ฉันรู้ว่าอย่างน้อยพวกเขาก็มีความอ่อนไหวต่อการโจมตีด้วยกำลังดุร้าย แต่นั่นเป็นสถานการณ์ที่ดีกว่าการเสี่ยงต่อตารางสายรุ้งในกรณีที่เครื่องถูกขโมย

คำตอบ:


17

"ข้อมูลรับรองแคช"

ข้อมูลประจำตัวที่ถูกแคชสำหรับโดเมนโฆษณานั้นจะถูกแฮชสองครั้งของรหัสผ่านและเก็บไว้ในกลุ่ม HKLM \ Security ตำแหน่งไฟล์ของไฮฟ์คือ: %systemroot%\System32\config\SECURITY

เฉพาะผู้ใช้ "ระบบ" เท่านั้นที่สามารถเข้าถึงรีจิสตรีคีย์ได้
HKLM\Security\Cache\NL$nโดยที่nดัชนี 1 ถึงจำนวนแคชข้อมูลรับรองสูงสุด

ความไวต่อการโจมตี

WinNT to WinXP ใช้แฮช "ผู้จัดการ Lan" สำหรับบัญชีภายในซึ่งแตกง่ายในฮาร์ดแวร์ที่ทันสมัย การแคร็กมักใช้เวลาหลายนาที (ฉันเพิ่งทำรหัสผ่าน 3 รหัสในเวลา 00:08:06) ด้วยคอมพิวเตอร์เดสก์ท็อป "ปกติ" แฮช Manager ของ Lan ไม่ได้ใส่เกลือดังนั้นจึงมีโต๊ะรุ้งให้บริการแบบสาธารณะเช่นกัน

Vista และใหม่กว่าใช้ NT แฮชสำหรับบัญชีท้องถิ่น Windows 2000 และใหม่กว่าใช้แฮช NT สำหรับบัญชีโดเมนเช่นกัน แฮช NT จะทำการแฮชแบบ double-MD4 เกลือต่อรายการป้องกันการใช้ตารางสายรุ้ง แต่ MD4 สามารถดำเนินการได้อย่างรวดเร็วมากบนฮาร์ดแวร์ที่ทันสมัย: ประมาณ 6 ปีคำนวณสำหรับรหัสผ่าน 60 บิต ด้วยโชคและคลัสเตอร์ GPU 6 ตัวแครกเกอร์สามารถทำลายรหัสผ่านประเภทนี้ได้ใน ~ 6 เดือน เมื่อนำไปไว้บนคลาวด์ประมาณ $ 35k บน GPU Amazon EC2 - ขึ้นอยู่กับความพร้อมใช้งานอาจเป็นชั่วโมง


ฉันเดาว่าส่วนใหญ่ของคำถามของฉันคือข้อมูลประจำตัวที่เก็บไว้เหล่านี้มีความอ่อนไหวต่อการโจมตีตามตารางแบบเดียวกับบัญชีท้องถิ่นหรือไม่หากพวกเขาถูกแฮชด้วยวิธีการที่แตกต่างกัน
MDMarra

อัปเดต ... Vista + ทุกอย่างเหมือนกัน รุ่นเก่านั้นแตกต่างกัน
Chris S

"แฮช NT ของรหัสผ่านถูกคำนวณโดยใช้อัลกอริทึมแฮช MD4 ที่ไม่ผ่านการประมวลผล" - ตรงจาก TechNet: technet.microsoft.com/en-us/library/hh994565(v=ws.10).aspx
thepip3r

หน้านั้นไม่ถูกต้องแฮช NT จะถูกใส่เกลือ ดูคำตอบของโจด้านล่างสำหรับลิงก์ไปยัง KB
Chris S

4

ข้อมูลประจำตัวไม่ได้ถูกแคชจริงในเครื่องท้องถิ่น ดูข้อความที่ตัดตอนมาจาก MS:

ความปลอดภัยของข้อมูลรับรองโดเมนที่แคช

คำว่าข้อมูลประจำตัวที่แคชไม่ถูกต้องอธิบายวิธี Windows แคชข้อมูลการเข้าสู่ระบบสำหรับการเข้าสู่ระบบโดเมน ใน Windows 2000 และ Windows รุ่นใหม่กว่าชื่อผู้ใช้และรหัสผ่านจะไม่ถูกแคช ระบบจะจัดเก็บตัวตรวจสอบการเข้ารหัสของรหัสผ่านไว้แทน ตัวตรวจสอบนี้เป็นแฮช MD4 ที่ผ่านการคำนวณแล้วซึ่งคำนวณได้สองครั้ง การคำนวณสองครั้งอย่างมีประสิทธิภาพทำให้ตัวตรวจสอบการแฮชของแฮชของรหัสผ่านผู้ใช้ ลักษณะการทำงานนี้ไม่เหมือนกับพฤติกรรมของ Microsoft Windows NT 4.0 และ Windows NT รุ่นก่อนหน้า

http://support.microsoft.com/kb/913485


ใช่ฉันเข้าใจว่าข้อมูลประจำตัวของตัวเองไม่ได้ถูกแคชจริง ๆ แต่คำถามของฉันมีมากขึ้นตามบรรทัดของ "คือแฮชที่เกิดขึ้นที่เก็บไว้ในฐานข้อมูล SAM ในท้องถิ่นแบบเดียวกับที่บัญชีท้องถิ่นทำให้การโจมตีแบบเดียวกัน " ฉันจะแก้ไขในนาทีเพื่อให้ชัดเจนยิ่งขึ้น
MDMarra

1
ฉัน .. นี่คือคำพูดที่น่าเบื่อหน่าย ธรรมชาติของ "hashing" เป็นกระบวนการทางเดียวที่สร้างมูลค่าของรหัสผ่านที่สับสนโดยใช้อัลกอริทึมที่ปลอดภัยแบบเข้ารหัส ปัญหาคือ MD4 อาจมีความปลอดภัยในการเข้ารหัสเมื่อ 10-15 ปีที่แล้ว แต่ไม่ได้ปิดอีกต่อไป (ไม่ใช่ MD5 หรือ SHA1 จากจุดยืนของผู้เข้ารหัส) ดังนั้นหากคุณมีฮาร์ดแวร์ในปัจจุบันที่สามารถทำลายพื้นที่สำคัญของอัลกอริทึมหรือค้นพบการชนได้อย่างรวดเร็วคุณสามารถรับรหัสผ่านจากแฮชได้อย่างง่ายดาย ...
thepip3r

หากข้อมูลประจำตัวถูกเก็บไว้ในรูปแบบหรือวิธีการใด ๆ เพื่อให้สามารถตรวจสอบในโหมดออฟไลน์ - พวกเขามีไว้สำหรับเจตนาและวัตถุประสงค์ทั้งหมดแคชไม่ว่าข้อมูลในแคชนั้นมีลักษณะอย่างไร
NiKiZe

4

จัดการโดย Credential Manager ซึ่งมี Credential Manager API แฮ็คเค็มจะถูกเก็บไว้ในรูปแบบที่ค่อนข้างปลอดภัยบนดิสก์และเข้าถึงได้ผ่าน HKLM \ Security (ซึ่งสามารถเข้าถึงได้โดย LocalSystem โดยค่าเริ่มต้น แต่ง่ายต่อการข้ามเช่นโดย psexec -i -s regedit.exe)

อย่างไรก็ตามในระบบ Windows ที่ใช้งานอยู่สถานการณ์ยิ่งเลวร้ายลงเนื่องจากข้อมูลประจำตัวที่ใช้ล่าสุดสามารถรับและย้อนกลับเป็นข้อความธรรมดาได้อย่างง่ายดายด้วยการเชื่อมต่อ DLL เข้ากับ Lsass (ดู Mimikatz)

ดังนั้นใช่คุณจะพบแฮช (หรือแฮชของแฮ็ชหรือ 'เครื่องยืนยัน' หรืออะไรก็ตามที่คุณต้องการเรียก) ที่ HKLM \ Security \ Cache บนไคลเอนต์ แต่ฉันไม่คิดว่าจะมีวิธีที่เป็นไปได้ที่จะโจมตีแฮชบนดิสก์ มันไม่เหมือนกับแฮช NTLM แบบเดิมที่สามารถโจมตีได้


การถอดรหัสรหัสผ่านออฟไลน์ใน SAM นั้นต่างจากการเชื่อมต่อ LSASS ในหน่วยความจำอย่างสมบูรณ์เหมือนกับ Mimikatz และ WCE และขึ้นอยู่กับความซับซ้อนของรหัสผ่านการแคร็กรหัสผ่านออฟไลน์ของ SAM สามารถทำได้ง่ายมาก (ดู samdump2)
thepip3r
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.