การโจมตี Microsoft Active Directory Certificate Services (AD CS) ด้วย NTLM Replay Attack ผ่านโปรโตคอล NTLM เข้ายึดครองโดเมน Windows โดยไม่ต้อง Authentication

NTLM คืออะไร

NTLM หรือ NT (New Technology) LAN Manager เป็นโปรโตคอลตรวจสอบสิทธิ์การเข้าถึงที่ Microsoft นำมาใช้แทน Microsoft LAN Manager (LANMAN) NTLM เป็นโปรโตคอลที่ถูกใช้งานมาตั้งแต่ Windows รุ่นแรกจนถึง Windows 2000 และหลังจากนั้น ทาง Microsoft ก็ได้เปลี่ยนไปใช้งาน Kerberos จนถึงปัจจุบัน แต่ NTLM นั้นก็ยังคงถูกใช้งานอยู่อย่างแพร่หลายในบางระบบ สำหรับตรวจสอบและรับรองความ ถูกต้องของการจัดเก็บรหัสผ่านบน Windows-Active Directory

การโจมตี NTLM Relay

ผู้โจมตีจะเป็นตัวกลางระหว่างไคลเอนต์และ เซิร์ฟเวอร์บนเครือข่ายโดยทำการดักจับข้อมูลในขั้นตอน Authentication มีวิธีการคือผู้โจมตีจะส่ง Authentication Requests ของไคลเอนต์ไปยังเซิร์ฟเวอร์และการตอบสนอง Authentication Requests จากเซิร์ฟเวอร์สู่ไคลเอนต์ ณ ช่วงเวลาดังกล่าว Challenge จะถูกส่งไปยังไคลเอนต์ และ Response ผลการตรวจสอบความถูกต้องของ Challenge กลับไปยังเซิร์ฟเวอร์ ซึ่งจะช่วยให้ผู้โจมตีสามารถใช้สิทธิ์ของไคลเอนต์ได้ โดยไคลเอนต์จะเข้าใจว่า ตัวเองกำลังคุยกับเซิร์ฟเวอร์เป้าหมายที่ต้องการยืนยันการ Authentication ในขณะเดียวกันเซิร์ฟเวอร์จะเชื่อว่า ผู้โจมตีนั้นคือไคลเอนต์ตัวจริงที่พยายามขอการ Authentication

การโจมตี AD ด้วย NTLM Replay Attack

Lionel Gilles นักวิจัยด้าน Offensive Computer Security ในประเทศฝรั่งเศสได้ทำการเผยแพร่เครื่องมือ PoC ที่มีชื่อว่า PetitPotam ซึ่งผู้โจมตีสามารถใช้ประโยชน์จากฟังก์ชัน EfsRPCOpenFileRAW ของ API ที่มีชื่อว่า MS-EFSRPC (Encrypting File Services Remote Protocol) โดยสร้างสคริปต์ที่สามารถทำการ Remote Authentication ผ่านโปรโตคอล NTLM สิ่งนี้จะส่งผลกระทบต่อองค์กรที่ใช้ Microsoft Active Directory Certificate Services (AD CS) และเซิร์ฟเวอร์ Public Key Infrastructure (PKI)

รู้จักกับ Microsoft Active Directory Certificate Services (AD CS)
Active Directory (AD) คืออะไร

เป็นเครื่องมือหนึ่งใน Windows Server มีหน้าที่เป็นศูนย์กลางในการจัดการทรัพยากรของระบบบบที่มียูสเซอร์จำนวนมาก เพื่อช่วยลดภาระค่าใช้จ่ายในการบริหารจัดการและเพิ่มความปลอดภัยให้กับระบบเครือข่าย ปัจจุบันตั้งแต่ Windows Server 2008 จะเรียก Active Directory ว่า Active Directory Domain Services (AD DS)

Active Directory Domain Services (AD DS) ทำหน้าที่ในการพิสูจน์ตัวตน (Authentication & Authorization) และการเข้าถึงทรัพยากรต่างๆ

สำหรับ Active Directory Certificate Services (AD CS) จะทำหน้าที่ออก Digital Certificate เพื่อให้ยูสเซอร์ใช้ในการพิสูจน์ตัวตน เพื่อความปลอดภัยในการรับ-ส่งข้อมูล AD CS ทำงานในรูปแบบ Public Key Infrastructure (PKI)

Public Key Infrastructure (PKI) เป็นเทคโนโลยีสำหรับตรวจสอบผู้ใช้และอุปกรณ์ในโลกดิจิทัล มีแนวคิดพื้นฐานคือมีฝ่ายที่เชื่อถือได้อย่างน้อยหนึ่งฝ่ายรับรองว่าคีย์การเข้ารหัสนั้นเป็นของผู้ใช้หรืออุปกรณ์ โดย PKI มีวัตถุประสงค์คือการเชื่อมโยงคีย์กับผู้ใช้หรืออุปกรณ์ที่มีคีย์อย่างปลอดภัย

PetitPotam คืออะไร

PetitPotam ถือเป็นการโจมตี NTLM Relay ซึ่งเป็นอีกรูปแบบหนึ่งของการโจมตีแบบ Manipulator-in-the-middle โดยทาง Microsoft ได้ให้คำแนะนำวิธีการแก้ไขปัญหาเพื่อที่จะหลีกเลี่ยงการโจมตี

PetitPotam

https://twitter.com/rootsecdev/status/1418727597777866753

ผลกระทบ

ผู้โจมตีสามารถเข้ายึดครองโดเมน Windows ได้อย่างสมบูรณ์ โดยที่ Active Directory Certificate Services (AD CS) ทำงานแบบไม่ต้องผ่านการ Authentication ใดๆ เพียงแค่ต้องทำการเชื่อมต่อเซิร์ฟเวอร์ เป้าหมายกับไปป์ที่มีชื่อว่า LSARPC ด้วยขาอินเทอร์เฟซ c681d488-d850-11d0-8c52-00c04fd90f7e ซึ่งวิธีการนี้จะช่วยให้ผู้โจมตีใช้ประโยชน์จาก LSARPC เพื่อสื่อสารกับ Encrypting File System Remote Protocol (MS-EFSRPC) โดยตรง

ตามเอกสารประกอบของ Microsoft สำหรับ MS-EFSRPC นั้นควรเป็นการเชื่อมต่อที่ต้องรับรองความถูกต้อง แต่ตามที่การทดสอบของ PetitPotam แสดงให้เห็นว่าคำขอตรวจสอบสิทธิ์นั้นไม่จำเป็นอีกต่อไป และยังสามารถใช้ Credential ที่บันทึกไว้เพื่อยกระดับสิทธิ์การเข้าถึง ซึ่งอาจส่งผลให้เกิดการถูกครอบครองโดยสมบูรณ์

การตรวจสอบ

เครื่องที่มีการเรียกใช้ Active Directory Certificate Services (AD CS) หรือ Domain Controller (DC) ที่มีความเสี่ยงต่อการถูกโจมตี สามารถตรวจสอบโดยใช้คำสั่ง ดังนี้

Windows PowerShell (Run as administrator): Get-WindowsFeature adcs-web-enrollment

เพื่อตรวจสอบว่ามี Feature ที่มีความเสี่ยงถูกติดตั้งบนเครื่องหรือไม่

 การแก้ปัญหาชั่วคราว
  1. เปิดใช้งาน EPA และปิดใช้งาน HTTP ในส่วนของเซิร์ฟเวอร์ AD CS ให้ดำเนินการเปิดตัวจัดการบริการ ข้อมูลทางอินเทอร์เน็ต (IIS)
  2. หากเป็นไปได้ ควรปิดใช้งานการรับรองความถูกต้องของ NTLM และเพื่อการบรรเทาผลกระทบควรดำเนินการดังนี้
  • ปิดการใช้งานการรับรองความถูกต้อง NTLM บนตัวควบคุมโดเมน Windows
  • ปิดการใช้งาน NTLM บนเซิร์ฟเวอร์ AD CS ในโดเมน
  • ปิดใช้งาน NTLM  สำหรับ Internet Information Services (IIS) บนเซิร์ฟเวอร์ AD CS ในโดเมนที่ เรียกใช้บริการ “Certificate Authority Web Enrollment” หรือ”Certificate Enrollment Web Service”

เอกสารอ้างอิง

https://www.blumira.com/ntlm-relay-attack-petitpotam/

https://thehackernews.com/2021/07/new-petitpotam-ntlm-relay-attack-lets.html

https://www.bussink.net/ad-cs-exploit-via-petitpotam…/

https://twitter.com/TalBeerySec/status/1419213181214396417

https://msrc.microsoft.com/update…/vulnerability/ADV210003

https://docs.microsoft.com/en-gb/windows/security/threat-protection/security-policy-settings/network-security-restrict-ntlm-ntlm-authentication-in-this-domain

https://support.microsoft.com/en-us/topic/kb5005413-mitigating-ntlm-relay-attacks-on-active-directory-certificate-services-ad-cs-3612b773-4043-4aa9-b23d-b87910cd3429