ในตัวอย่างการสร้างการอัปเดต Windows 10 ผู้สร้าง 15007 Microsoft ดูเหมือนว่าจะแก้ไขวิธี UAC bypass ที่เกี่ยวข้องกับ eventvwr.exe ก่อนบายพาสนี้ทำงานอย่างไร
เมื่อคุณเข้าสู่ระบบในฐานะผู้ดูแลระบบไบนารีของ Windows ที่มีระดับการทำงานถูกตั้งค่าเป็น“ คุณสมบัติสูงสุด” และ“ autoelevate” ตั้งค่าเป็น“ true” ในรายการให้เริ่มการยกระดับโดยอัตโนมัติโดยไม่แสดงพรอมต์การควบคุมบัญชีผู้ใช้
ตัวจัดการงาน (Taskmgr.exe) และ Eventvwr.exe เป็นสองตัวอย่างดังกล่าว คุณสังเกตเห็นว่าตัวจัดการงานนั้นทำงานโดยการยกระดับตามค่าเริ่มต้น แต่จะไม่แสดงพรอมต์ UAC เมื่อคุณเข้าสู่ระบบในฐานะผู้ดูแลระบบหรือไม่
นักวิจัยด้านความปลอดภัย Matt Nelson (@ enigma0x3 บน Twitter) เขียนเกี่ยวกับการเลี่ยงผ่าน UAC หรือการใช้ช่องโหว่ที่ใช้ eventvwr.exe Eventvwr.exe นั้นเป็นโปรแกรมตัวเรียกใช้งานที่เรียกใช้งาน% systemroot% \ system32 \ eventvwr.msc โดยใช้วิธี ShellExecute
สิ่งที่ (ShellExecute) หมายถึงคือระบบใช้ข้อมูลการเชื่อมโยงไฟล์. MSC เพื่อเรียกใช้ไฟล์ปฏิบัติการที่เหมาะสมที่เปิดไฟล์ MSC เนื่องจากโปรแกรมหลัก eventvwr.exe รันการยกระดับโดยค่าเริ่มต้นกระบวนการลูกจึงรันการยกระดับเช่นกัน
UAC บายพาสโดยใช้แฮ็ครีจิสทรี
เมื่อ eventvwr.exe (เชลล์) เรียกใช้ไฟล์ eventvwr.msc, Windows แทนที่จะใช้ข้อมูลการเชื่อมโยงไฟล์ภายใต้ HKEY_LOCAL_MACHINE \ Software \ Classes \ mscfile ให้ทำการค้นหาสาขาที่นี่:
HKEY_CLASSES_ROOT \ mscfile
FYI, HKEY_CLASSES_ROOT เป็นเพียงมุมมองที่ผสานที่มีคีย์คีย์ย่อยและค่าจากสถานที่ทั้งสองนี้:
HKEY_CURRENT_USER \ Software \ Classes HKEY_LOCAL_MACHINE \ Software \ Classes
และหากมีคีย์และค่าที่เหมือนกันอยู่ภายใต้ทั้งคู่สิ่งนั้นภายใต้ HKEY_CURRENT_USER จะมีความสำคัญกว่า ดังนั้นคุณสามารถจี้ HKEY_CLASSES_ROOT\mscfile
โดยสร้างคีย์ต่อไปนี้:
HKEY_CURRENT_USER \ Software \ Classes \ mscfile \ shell \ เปิด \ คำสั่ง
โปรแกรมหรือสคริปต์ที่เป็นอันตรายสามารถตั้งค่าข้อมูล (default)
ตามลำดับเพื่อให้คำสั่ง / สคริปต์ PowerShell สามารถดำเนินการได้ด้วยสิทธิ์การดูแลระบบเต็มรูปแบบ / ความสมบูรณ์สูงโดยไม่แม้แต่ผู้ใช้ที่รู้
ดังนั้นโดยการหักหลัง HKEY_CLASSES_ROOT เหตุการณ์ eventvwr.exe สามารถใช้อย่างมีประสิทธิภาพเป็นโปรแกรมตัวเรียกใช้เพื่อดำเนินการโปรแกรมใด ๆ โดยพลการ - แม้ดาวน์โหลด ransomware payload จากเซิร์ฟเวอร์ระยะไกลและเรียกใช้โดยใช้ PowerShell.exe ภายใต้สิทธิ์ผู้ดูแลระบบ
นี่เป็นวิธีเลี่ยงผ่าน UAC ที่มีประสิทธิภาพมากเนื่องจากไม่จำเป็นต้องลดไฟล์, การฉีด DLL หรือสิ่งอื่นใด แน่นอนการหาประโยชน์จาก UAC นี้จะทำงานเฉพาะเมื่อคุณลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบ
สิ่งนี้มีการเปลี่ยนแปลงใน Build Preview preview build 15007 โชคดีที่ Microsoft ได้แก้ไข eventvwr.exe ใน 15007 - มันไม่ได้เก็บรักษาไฟล์ MSC อีกต่อไป แต่จะสร้างกระบวนการ MMC.exe โดยตรง - การเชื่อมโยงไฟล์ไม่ได้ใช้
ขอบคุณ Matt Nelson (@ enigma0x3) ที่ค้นพบวิธีบายพาสนี้และเพื่อ FireF0X (@ hFireF0X) ที่แจ้งว่าปัญหานี้ได้รับการแก้ไขใน 15007 โดยที่ eventvwr.exe ใช้ CreateProcess เพื่อเปิด mmc.exe แทน ShellExecute ดูเพิ่มเติมที่: Microsoft Windows - การเพิ่มการป้องกัน UAC แบบไม่มี Filed Bypass