0 day: Elevación de privilegios en Microsoft Windows

Iniciado por kamsky, 25 Noviembre 2010, 16:44 PM

0 Miembros y 1 Visitante están viendo este tema.

kamsky

 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
----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!

aaronduran2

Por las pruebas que hice sobre una VM de W7, teniendo el UAC desactivado no funcionaba, sólo si estaba activado me permitía obtener los privilegios.

kamsky

No he tenido ocasión de probarlo, pero eso no tiene mucho sentido... es como decir que puedo entrar a una casa a través de su puerta aunque tenga candado, pero que si no lo tiene no puedo
----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!

aaronduran2

La verdad es que no lo tiene, pero incluso hoy lo probé en mi W7 nativo y no funcionó con el UAC desactivado, y tras otra prueba en clase, lo mismo.

Debci

Una mas...
Haber si aparecen mas jeje
La probaré, haber si ocurre lo que dicen por aqui del UAC y lo comento.

Saludos

kamsky

#5
funciona con UAC y sin UAC:

con


sin

----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!

‭‭‭‭jackl007

yo no lo consegui hacer funcionar, use las apis de windows del registro para poder crear la clave, luego leerla ... pero nada, la aplicacion no consige tener privilegios.


aaronduran2

Pues es extraño, en las virtuales funciona con el UAC activado o no, sin embargo, en la nativa no pasa eso :/