CVE-2021-1675 เป็นการเรียกใช้โค้ดจากระยะไกลที่สำคัญและช่องโหว่ในการยกระดับสิทธิ์ในเครื่องที่เรียกว่า "PrintNightmare"
มีการเผยแพร่การหาประโยชน์แบบพิสูจน์แนวคิด (Python, C++) สำหรับความสามารถในการเรียกใช้โค้ดจากระยะไกล และการเรนเดอร์ C# สำหรับการเพิ่มระดับสิทธิ์ในเครื่อง เราไม่เคยเห็นการใช้งานแบบเนทิฟใน PowerShell เพียงอย่างเดียว และเราต้องการลองใช้มือของเราในการปรับแต่งและสร้างช่องโหว่ขึ้นมาใหม่
สคริปต์ PowerShell นี้ทำการยกระดับสิทธิ์ในเครื่อง (LPE) ด้วยเทคนิคการโจมตี PrintNightmare
สิ่งนี้ได้รับการทดสอบบน Windows Server 2016 และ Windows Server 2019
เพิ่มผู้ใช้ใหม่ในกลุ่มผู้ดูแลระบบท้องถิ่นตามค่าเริ่มต้น:
นำเข้าโมดูล .cve-2021-1675.ps1 เรียกใช้-Nightmare # เพิ่มผู้ใช้ `adm1n`/`P@ssw0rd` ในกลุ่มผู้ดูแลระบบท้องถิ่นโดยค่าเริ่มต้นInvoke-Nightmare -DriverName "Xerox" -NewUser "deb" -NewPassword "SuperSecure"
ระบุเพย์โหลด DLL แบบกำหนดเองเพื่อทำสิ่งอื่นที่คุณอาจต้องการ
นำเข้าโมดูล .cve-2021-1675.ps1 เรียกใช้ Nightmare -DLL "C:absolutepathtoyourbindshell.dll"
เทคนิค LPE ไม่จำเป็นต้องทำงานกับ RPC หรือ SMB ระยะไกล เนื่องจากใช้งานได้กับฟังก์ชันของ Print Spooler เท่านั้น
สคริปต์นี้ฝังเพย์โหลด GZIPped ที่เข้ารหัส Base64 สำหรับ DLL แบบกำหนดเองซึ่งได้รับการแพตช์ตามข้อโต้แย้งของคุณ เพื่อเพิ่มผู้ใช้ใหม่ในกลุ่มผู้ดูแลระบบท้องถิ่นได้อย่างง่ายดาย
สคริปต์นี้ฝังวิธีการจาก PowerSploit/PowerUp เพื่อเข้าถึง Win32 API อย่างสะท้อนกลับ
วิธีนี้ไม่วนซ้ำไดรเวอร์เครื่องพิมพ์ทั้งหมดเพื่อค้นหาเส้นทาง DLL ที่เหมาะสม เพียงดึงไดรเวอร์ตัวแรกและกำหนดเส้นทางที่เหมาะสม