
Bypass de CVE-2020-1048: PoC de binary planting
Peleg Hadar (@peleghd) y Tomer Bar de SafeBreach (@safebreach) fueron reconocidos por Microsoft mediante el CVE-2020-1048, una vulnerabilidad del Spooler de Windows que permite una elevación de privilegios en Windows 7 y posteriores.
Algunos detalles fueron divulgados por Alex Ionescu (@aionescu) y Yarden Shafir (@yarden_shafir) en su genial publicación de blog PrintDemon: Print Spooler Privilege Escalation, Persistence & Stealth (CVE-2020-1048 & more). Usando este conocimiento, encontré un bypass para el parche mediante puntos de unión (junction points) y enlaces simbólicos de Windows (gracias a James Forshaw @tiraniddo).
Mi informe fue un duplicado porque la causa raíz ya había sido reportada por alguien más y al informe se le asignó el CVE-2020-1337, un CVE realmente c00l :-)
Este código en C# permite colocar una DLL maliciosa en el directorio local C:\windows\system32 para que sea cargada por una aplicación o servicio vulnerable al secuestro de DLL.
Entrada de blog: CVE-2020-1337: mis dos centavos; también en español.
Usa Visual Studio para obtener un binario autocontenido. La magia se consigue usando los siguientes paquetes Nuget:
Coloca el binario y tu archivo malicioso en la misma ruta y ejecuta el primer paso:

Reinicia manualmente el sistema y ejecuta el segundo paso para finalmente colocar tu DLL con su nombre final:
