0 day: Elevación de privilegios en Microsoft Windows
----------------------------------------------------
Se ha públicado un nuevo 0 day en Microsoft Windows que permite a un
usuario local obtener privilegios de SYSTEM (control total sobre el
sistema) eludiendo cualquier control de usuario.
Los detalles técnicos se han hecho públicos, así como el código fuente y
el programa necesarios para aprovechar el fallo. El exploit se aprovecha
de la forma en la que el controlador win32k.sys procesa ciertos valores
del registro. En concreto, el exploit manipula el valor
SystemDefaultUEDCFont del registro y activa el soporte para EUDC
(End-User-Defined-Characters) a través de la función EnableEUDC.
Esto quiere decir que el atacante debe crear una clave en el registro
donde un usuario no administrador tiene privilegios para hacerlo. Luego
intenta leerla, provoca el fallo en el driver y obtiene los privilegios.
La prueba de concepto utiliza esta clave:
HKEY_USERS\[SID DEL USUARIO]\EUDC
La prueba de concepto funciona perfectamente en Windows Vista, 7 y 2008
totalmente parcheados. Tanto si el usuario pertenece al grupo de
usuarios como al de administradores (incluso con la protección UAC
activa), se obtendrán privilegios sin ningún tipo de advertencia por
parte de Windows y por supuesto, sin necesidad de conocer la contraseña.
En Windows XP, la prueba de concepto no funciona (no existe por defecto
esa rama del registro) pero es posible que la vulnerabilidad también le
afecte. La prueba de concepto no es detectada por ningún motor en estos
momentos:
http://www.virustotal.com/file-scan/report.html?id=59260532fe33547420613b0aa7b001aed3f565201e50f91558a16cf7465775f6-1290672402
Para que este fallo fuese aprovechado por un atacante o malware, primero
debería acceder al sistema por cualquier otro medio y encontrarse con
que no puede realizar los cambios que desea a causa de los permisos.
Realmente, este no suele ser un impedimento para el malware masivo
(puesto que el usuario medio suele o bien obviar el UAC o bien
deshabilitarlo o bien en XP pertenecer al grupo de administradores). Sí
que es posible que este fallo sea usado en ataques dirigidos o entornos
profesionales, donde los usuarios de escritorio suelen tener privilegios
limitados en el dominio.
Con este fallo, ya son dos problemas de elevación de privilegios que
Microsoft debe arreglar. El fallo anterior fue descubierto en el cuerpo
del famoso troyano Stuxnet. A través del programador de tareas, el
malware era capaz de elevar privilegios en el equipo infectado. Hace
algunos días los detalles de esta vulnerabilidad también se hicieron
públicos.
El equipo de seguridad de Microsoft ha declarado en su twitter que está
investigando el asunto. Un método para prevenir el problema hasta que
exista parche oficial es limitar los permisos del usuario en la rama
HKEY_USERS\[SID DEL USUARIO]\EUDC
En el registro, se debe negar el permiso de escritura a los usuarios no
administradores. Gráficamente, es sencillo (localizar el SID del
usuario, botón derecho sobre la rama del registro y denegar).
Para automatizar el proceso, aconsejamos (aunque puede tener efectos
secundarios, hágalo bajo su responsabilidad) utilizar subinacl.exe, una
herramienta oficial de Microsoft descargable desde:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b
Una vez instalada, localizar el SID del usuario (normalmente terminará
en 1000) y el nombre de máquina y usuario con el comando:
whoami /user:
INFORMACIÓN DE USUARIO
----------------------
Nombre de usuario SID
==============================================
ordenador\usuario S-1-5-21-123456789-12345677889-123445678990-1000
y ejecutar:
subinacl.exe /subkeyreg "HKEY_USERS\
S-1-5-21-123456789-12345677889-123445678990-1000\EUDC /deny=
ordenador\usuario=w
Esto evitará que el usuario pueda escribir en esa rama y por tanto la
prueba de concepto no funcionará. Repetir para el resto de usuarios en
el equipo si los hubiera.
Fuente:http://www.hispasec.com/unaaldia/4415