jueves, 25 de noviembre de 2010

0 day: Elevación de privilegios en Microsoft Windows

Se ha publicado 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.


Sergio de los Santos
ssantos@hispasec.com


Más información:

POC:
http://www.exploit-db.com/sploits/uacpoc.zip

We 're investigating public PoC for a local EoP vuln requiring an
account on the target system
http://twitter.com/msftsecresponse

No hay comentarios:

Publicar un comentario en la entrada