ในเดือนสิงหาคม 2020 Microsoft ได้เปิดตัวการอัปเดตเพื่อแก้ไขช่องโหว่ Windows Server ที่สำคัญใน Active Directory — CVE-2020-1472 (รู้จักกันในชื่อ Zerologon ) . ติดตั้งโปรแกรมปรับปรุงนี้เรียบร้อยแล้วบนตัวควบคุมโดเมนทั้งหมด 4 เดือนที่ผ่านมา อย่างไรก็ตาม ไม่ใช่ผู้ดูแลระบบ Windows ทุกคนที่รู้ว่าการติดตั้งการอัปเดตใน DC นั้นยังไม่จบสิ้น ในบทความนี้ เราจะมาบอกเล่าเกี่ยวกับช่องโหว่ของ Zerologon วิธีป้องกันตัวควบคุมโดเมน AD เหตุใดการอัปเดต Zerologon อีกตัวจะออกในเดือนกุมภาพันธ์ 2021 และสิ่งที่ผู้ดูแลระบบ Windows Server ควรทำอย่างไรกับสิ่งเหล่านี้
ZeroLogon:ช่องโหว่ Windows Netlogon CVE-2020-1472
ช่องโหว่ที่สำคัญ CVE-2020-1472 ใน Active Directory ใน Windows Server ทุกเวอร์ชัน (2008 R2, 2012, 2016, 2019) อนุญาตให้ผู้ใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์ได้รับสิทธิ์ผู้ดูแลระบบโดเมนจากระยะไกล เนื่องจากข้อบกพร่องในการใช้งานโปรโตคอลการเข้ารหัส AES-CFB8 ใน Netlogon Remote Protocol (MS-NRPC) ผู้โจมตีที่เข้าถึงตัวควบคุมโดเมนผ่านเครือข่ายสามารถยกระดับสิทธิ์และเปลี่ยนรหัสผ่านบัญชีตัวควบคุมโดเมนใน AD จากนั้นผู้โจมตีจะตรวจสอบสิทธิ์ใน DC ด้วยสิทธิ์ SYSTEM และควบคุม Active Directory ได้อย่างสมบูรณ์ (รีเซ็ตรหัสผ่านผู้ดูแลระบบโดเมนหรือทำสิ่งอื่นใดใน AD)
โปรโตคอล Netlogon ใช้ในการตรวจสอบผู้ใช้และคอมพิวเตอร์ในเครือข่ายโดเมน AD Netlogon ยังใช้เพื่ออัปเดตรหัสผ่านบัญชีคอมพิวเตอร์จากระยะไกลในโดเมน Active Directory
เพื่อใช้ช่องโหว่ Zerologon ผู้โจมตีจำเป็นต้องสร้างการเชื่อมต่อผ่าน Netlogon (ใช้พอร์ตต่อไปนี้:RPC locator TCP/135, RPC dynamic port range และ SMB protocol over TCP/445) โดยใช้ลำดับเฉพาะที่ขึ้นต้นด้วย ศูนย์ ช่องโหว่ Netlogon ช่วยให้คุณสามารถปลอมแปลงเป็นคอมพิวเตอร์โดเมนที่ถูกต้อง และคุณสามารถเปลี่ยนรหัสผ่านบัญชี DC ได้หลังจากยกระดับสิทธิ์ของคุณ
คะแนน CVSS สูงสุด (10 จาก 10 คะแนน) ให้กับช่องโหว่
เวอร์ชัน Windows Server ทั้งหมดได้รับผลกระทบ:
- Windows Server 2019, Windows Server 2016;
- Windows Server 2004, 1909, 1903;
- Windows Server 2012 R2/2012;
- Windows Server 2008 R2 SP 1
ในขณะนี้ มีช่องโหว่สาธารณะ Zerologon ที่ใช้งานได้หลายอย่าง (นอกจากนี้ยังเพิ่มโมดูล zerologon ใน mimikatz ด้วย)
อย่าทดสอบช่องโหว่ Zerologon ในเครือข่ายของคุณ เนื่องจากหากคุณรีเซ็ตรหัสผ่าน DC เป็นรหัสผ่านที่ว่างเปล่า คุณอาจสร้างความเสียหายให้กับโครงสร้างพื้นฐาน AD ของคุณ
มีสคริปต์ Python เพื่อทดสอบ DC ของคุณสำหรับช่องโหว่ zerologon:https://github.com/SecuraBV/CVE-2020-1472
การอัปเดตเซิร์ฟเวอร์ Windows เทียบกับ Zerologon
เนื่องจาก Microsoft ไม่สนับสนุน Windows Server 2008 R2 อีกต่อไป จึงไม่มีการแก้ไขจุดบกพร่องที่เผยแพร่ต่อสาธารณะสำหรับระบบปฏิบัติการเวอร์ชันนี้ อย่างไรก็ตาม หากคุณซื้อ Extended Security Updates (ESU) การสมัครใช้งาน 1 ปี คุณสามารถดาวน์โหลดและติดตั้งการอัปเดต 4571729 สำหรับ WS2008R2 ได้
มีโปรแกรมแก้ไข Zerologon อย่างไม่เป็นทางการสำหรับ Windows Server 2008 R2 — 0patch (https://blog.0patch.com/2020/09/micropatch-for-zerologon-perfect.html) คุณสามารถใช้มันได้โดยมีความเสี่ยงWindows Server เวอร์ชันอื่นๆ มีการอัปเดตใน Windows Update, WSUS หรือคุณสามารถดาวน์โหลดการอัปเดตด้วยตนเองจาก Microsoft Update Catalog และติดตั้งไฟล์อัปเดต MSU ด้วยตนเอง
- Windows Server 2019 (KB4565349), Windows Server 2016 (KB571694);
- Windows Server 2004 (4566782), 1909 (KB4565351), 1903 (KB4565351);
- Windows Server 2012 R2 (KB4571723), Windows Server 2012 (KB4571702)
ปกป้องตัวควบคุมโดเมน Active Directory จาก ZeroLogon
การอัปเดตที่แก้ไขช่องโหว่ Zerologon เผยแพร่ในเดือนสิงหาคม 2020 เพื่อปกป้อง Active Directory คุณต้องติดตั้งอัปเดตสะสมเดือนสิงหาคม (หรืออัปเดตใหม่กว่า) สำหรับเวอร์ชัน Windows Server ของคุณบนตัวควบคุมโดเมนทั้งหมด
อันที่จริง โปรแกรมแก้ไขนี้เป็นโปรแกรมแก้ไขชั่วคราว
Microsoft กำลังจะแก้ไข Zerologon ในสองขั้นตอนเพื่อให้การเปลี่ยนผ่านเพื่อรักษาความปลอดภัย Remote Procedure Call (RPC) ใน Netlogon เป็นไปอย่างราบรื่น:
- ระยะแรก (การทำให้ใช้งานได้) โปรแกรมแก้ไขเดือนสิงหาคมเป็นโปรแกรมแก้ไขฉุกเฉินเพื่อปกป้องตัวควบคุมโดเมนจากสถานการณ์การโจมตีที่ทราบ แต่การอัปเดตนี้ไม่ได้แก้ไขช่องโหว่ทั้งหมด (สถานการณ์อื่นๆ ในการโจมตี DC ผ่าน Netlogon ก็เป็นไปได้ด้วย) ระบบเดิมที่ไม่รองรับโปรโตคอล RPC เวอร์ชันใหม่ที่ปลอดภัยสำหรับ Netlogon ยังคงเชื่อมต่อกับตัวควบคุมโดเมนได้
- ระยะที่สอง (การบังคับใช้) . การอัปเดตครั้งต่อไปจะเผยแพร่ในวันที่ 9 กุมภาพันธ์ 2021 หลังจากที่คุณติดตั้งการอัปเดตนี้ ตัวควบคุมโดเมนทั้งหมดจะปฏิเสธการเชื่อมต่อที่ใช้โปรโตคอล Netlogon แบบเก่า (อย่างไรก็ตาม คุณสามารถตั้งค่าการยกเว้นสำหรับอุปกรณ์รุ่นเก่าโดยใช้ GPO เราจะแสดงวิธีการดำเนินการ อยู่ด้านล่าง)
หลังจากติดตั้งแพตช์แรก คุณจะพบเหตุการณ์การเชื่อมต่ออุปกรณ์ที่ใช้ Netlogon RPC เวอร์ชันที่ไม่ปลอดภัยในบันทึกของตัวควบคุมโดเมน นอกจากนี้ หากคุณไม่มีอุปกรณ์รุ่นเก่าในเครือข่าย คุณสามารถปิดใช้งานการสนับสนุนสำหรับ Netlogon RPC เวอร์ชันเก่าบนตัวควบคุมโดเมนของคุณ โดยไม่ต้องรอปี 2021 (โดยใช้ FullSecureChannelProtection พารามิเตอร์รีจิสตรี)
หลังจากที่คุณติดตั้งการอัปเดตความปลอดภัย เหตุการณ์ของการเชื่อมต่อคอมพิวเตอร์โดยใช้เวอร์ชัน Netlogon ที่มีช่องโหว่จะถูกลงทะเบียนในบันทึกของตัวควบคุมโดเมน คุณควรให้ความสนใจกับ EventID ต่อไปนี้จาก NETLOGON ในตัวแสดงเหตุการณ์ -> บันทึกของ Windows -> ระบบ:
- EventID 5827 และ 5828 — บริการ Netlogon ปฏิเสธการเชื่อมต่อช่องทางที่ปลอดภัยของ Netlogon ที่มีช่องโหว่จากบัญชีคอมพิวเตอร์ ข้อความนี้หมายความว่าการเชื่อมต่อของคอมพิวเตอร์เครื่องนี้โดยใช้เวอร์ชัน Netlogon ที่มีช่องโหว่ถูกปฏิเสธ (เป็นข้อความอ้างอิงจนถึงเดือนกุมภาพันธ์ 2021 จะไม่มีการดำเนินการใดๆ จริงเพื่อบล็อกการเชื่อมต่อ) คุณสามารถบันทึกเหตุการณ์ทั้งหมดลงในไฟล์ CSV และวิเคราะห์ชื่อของอุปกรณ์ที่พยายามเชื่อมต่อกับ DC ใช้คำสั่ง PowerShell ต่อไปนี้:
Get-EventLog -LogName System -InstanceId 5827 -Source NETLOGON|Select-Object message| Export-Csv c:\ps\5827.csv -Encoding utf8
- รหัสเหตุการณ์ 5829 — อนุญาตการเชื่อมต่อโดยใช้เวอร์ชัน Netlogon ที่มีช่องโหว่
- รหัสเหตุการณ์ 583, 5831 — อนุญาตการเชื่อมต่อโดยใช้เวอร์ชัน Netlogon ที่มีช่องโหว่ เนื่องจากอุปกรณ์ถูกเพิ่มในนโยบาย “ตัวควบคุมโดเมน:อนุญาตการเชื่อมต่อช่องสัญญาณที่ปลอดภัยของ Netlogon ที่มีช่องโหว่”
คุณต้องติดตั้งการอัปเดตความปลอดภัยล่าสุดในอุปกรณ์ที่ตรวจพบทั้งหมดจนถึงเดือนกุมภาพันธ์ 2021 ใน Windows การติดตั้งการอัปเดตสะสมล่าสุดก็เพียงพอแล้ว สอบถามผู้จำหน่ายอุปกรณ์/ซอฟต์แวร์ (OEM) ของคุณสำหรับการอัปเดตสำหรับอุปกรณ์อื่นๆ ทั้งหมดที่ใช้ Netlogon Remote Protocol เพื่อเชื่อมต่อกับ Active Directory
การอัปเดตความปลอดภัยพิเศษจะออกในเดือนกุมภาพันธ์ซึ่งจะทำให้ตัวควบคุมโดเมนอยู่ในโหมดที่อุปกรณ์ที่เชื่อมต่อทั้งหมดต้องใช้โปรโตคอล Netlogon เวอร์ชันที่ปลอดภัย ในเวลาเดียวกัน อุปกรณ์ที่ระบุใน Event 5829 (ซึ่งไม่สนับสนุนเวอร์ชัน Netlogon ที่ปลอดภัย) จะไม่สามารถเชื่อมต่อโดเมนได้ คุณจะต้องเพิ่มอุปกรณ์เหล่านี้ในการยกเว้น GPO ด้วยตนเอง
หมายความว่ารุ่น Windows ที่ไม่รองรับอีกต่อไป (Windows XP/ Windows Server 2003/Vista/2008) จะไม่สามารถทำงานได้ตามปกติในโดเมน AD ของคุณนโยบายกลุ่มสำหรับ Zerologon
หากไม่มีอุปกรณ์เหลืออยู่ในเครือข่ายของคุณที่รองรับเฉพาะเวอร์ชัน Netlogon ที่ไม่ปลอดภัย คุณสามารถสร้าง GPO แยกต่างหากเพื่อบังคับให้ DC ใช้เวอร์ชัน Netlogon ที่ปลอดภัยก่อนวันที่ 9 กุมภาพันธ์ 2021 (เมื่อการอัปเดตขั้นตอนที่สองจะออกซึ่งปฏิเสธการเชื่อมต่อ โดยใช้เวอร์ชัน Netlogon ที่ไม่ปลอดภัย) โดยปรับใช้รีจิสตรีคีย์ต่อไปนี้โดยใช้ GPO กับ DC ทั้งหมดของคุณ:
- รหัสรีจิสทรี:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
- ประเภทพารามิเตอร์:
DWORD
- ชื่อพารามิเตอร์:
FullSecureChannelProtection
ค่าที่เป็นไปได้:
- 1 — เปิดใช้งานโหมดการบังคับใช้ DC จะปฏิเสธการเชื่อมต่อผ่าน Netlogon เวอร์ชันที่มีช่องโหว่ พารามิเตอร์นี้ไม่มีผลกับบัญชีที่เพิ่มในนโยบาย “ตัวควบคุมโดเมน:อนุญาตการเชื่อมต่อช่องทางที่ปลอดภัยของ Netlogon” (ดูด้านล่าง)
- 0 – อนุญาตให้ DC ยอมรับการเชื่อมต่อโดยใช้เวอร์ชัน Netlogon ที่มีช่องโหว่จาก ไม่ใช่ Windows อุปกรณ์ (ตัวเลือกนี้จะเลิกใช้ในช่วงการบังคับใช้)
จะอนุญาตให้อุปกรณ์ที่ไม่ใช่ Windows เชื่อมต่อกับ DC โดยใช้ Netlogon ได้อย่างไร
พารามิเตอร์พิเศษที่อนุญาตให้อุปกรณ์/บัญชีบางตัวใช้เวอร์ชัน Netlogon ที่มีช่องโหว่เพื่อเชื่อมต่อกับ DC ปรากฏใน GPO นโยบายนี้เรียกว่า ตัวควบคุมโดเมน:อนุญาตการเชื่อมต่อช่องทางที่ปลอดภัยของ Netlogon ที่มีช่องโหว่ และคุณสามารถค้นหาได้ใน การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> การตั้งค่าความปลอดภัย -> นโยบายในพื้นที่ -> ตัวเลือกความปลอดภัย
คุณต้องสร้างกลุ่มความปลอดภัยใน AD และเพิ่มบัญชี/อุปกรณ์ที่จำเป็น ได้รับอนุญาตให้สร้างช่องทางที่ปลอดภัยด้วยตัวควบคุมโดเมนโดยใช้ Netlogon RPC รุ่นเก่า
เปิดใช้งานนโยบายสำหรับ DC (ในระดับนโยบายตัวควบคุมโดเมนเริ่มต้น) คลิก กำหนดความปลอดภัย และระบุกลุ่มที่ได้รับอนุญาตให้ใช้โปรโตคอล Netlogon ที่ไม่ปลอดภัย (สร้างการเชื่อมต่อที่มีช่องโหว่ -> อนุญาต ).
โดยการตรวจสอบ ปฏิเสธ คุณสามารถปฏิเสธได้โดยใช้ Netlogon RPC ที่ไม่ปลอดภัยสำหรับอุปกรณ์เฉพาะ