ecoestadistica.com

lunes, marzo 06, 2006

Paper: Elevacion de Privilegios en Windows....

El 31 de enero del corriente, Sudhakar Govindavajhala y Andrew W.
Appel publicaron "Windows Access Control Demystified" un profundo
análisis sobre la forma en que Windows maneja el control de accesos y
los permisos.
Este documento expone distintas formas de elevar privilegios, es
decir, poder obtener permisos (de administrador o cuentas del sistema)
que un usuario normal generalmente no posee.
En este caso el culpable no es Microsoft, a menos que se lo culpe de
hacer demasiado complejos y completos los niveles de acceso. Lo que
lleva a la elevación de privilegios es la mala implementación de los
permisos por parte de empresas fabricantes de software que por
desconocimiento, error o negligencia no asignan los permisos
estrictamente necesarios para que una aplicación funcione.

En cambio Microsoft sí tiene programas y servicios que asignan en
forma incorrecta los permisos en Windows, como cualquier otro
fabricante.
Mediante estos servicios u otros de terceros es posible realizar la
explotación y lograr privilegios administrativos.

Microsoft se ha pronunciado sobre este tema exponiendo cómo único
factor de mitigación la instalación de actualizaciones, y la
activación y correcta configuración de un Firewall.

A modo de ejemplo haxorcitos a través de tarako (Andrés Tarascó) ha
desarrollado una aplicación que permite elevar los permisos de un
usuario restringido.
Utilizando esa herramienta he realizado esta demostración logrando
permisos administrativos sobre un equipo al cual tenía acceso con
mínimos privilegios (guest).
NOTA: Las imágenes están situadas en:
http://www.segu-info.com.ar/boletin/img/bol34_xx.png

PASO 1. La máquina víctima es Windows XP SP2 con todas las
actualizaciones instaladas y sin el Firewall activado. Si se activa el
Firewall el ataque no se puede llevar a cabo ya que la conexión es
denegada.
Aquí vemos la importancia de esta sencilla medida de seguridad que
nunca debería dejar de considerarse.
La IP víctima es 192.168.0.34 y mediante el uso de la herramienta de
haxorcitos se listan los servicios vulnerables en la misma (la modesta
suma de 301).
En la imagen (bol34_01.png) se remarca el servicio elegido para ser
atacado. Se seleccionó este porque luego se lo podrá desactivar sin
graves consecuencias a la estabilidad del sistema. Si se eligiera DCOM
o NETBios el sistema atacado debería ser restaurado o reinstalado casi
con seguridad debido a la inestabilidad que puede ocasionar el ataque.

PASO 2. Se ejecuta la herramienta indicando la víctima y el servicio
mencionado anteriormente. El exploit se ejecuta correctamente y se nos
informa que podemos conectarnos a nuestra víctima a través del puerto
8080 (bol34_02.png).

PASO 3. Antes de conectarnos vemos las consecuencias en el Windows víctima.
Al visualizar el servicio UPS (Sistema de Alimentación Ininterrumpida)
podemos ver el código que se ejecutará al iniciar el servicio. Se
puede ver que se creará un directorio "HXR" y dentro del mismo un
script con extensión VBS con un código fuente que veremos luego
En el caso de una víctima real, esta nunca hubiera percibido el ataque
a menos que fuera a controlar específicamente este servicio.
También consideremos que esto es una prueba de concepto por lo que la
carpeta es fácilmente identificable. Si hubiera sido una carpeta del
sistema, nunca lo hubiéramos notado.

PASO 4. Aquí podemos apreciar el código fuente del script VBS mencionado.
Si lo seguimos podremos ver que el mismo crea un archivo "\HXR\a.exe"
con el contenido del exploit propiamente dicho. Como antes, este
archivo podría haber tenido un nombre parecido a algún archivo de
sistema y no lo hubiéramos notado (bol34_04.png).
Además también podemos ver como se ha modificado el servicio UPS en el
registro de Windows (bol34_07.png).

PASO 5. El momento esperado. Nos conectamos a la víctima al puerto
mencionado. Como vemos se nos devuelve una shell a "c:\windows\system32"
lo que nos indica que estamos dentro del sistema con los mismos
privilegios que el servicio explotado, en este caso "LocalService"
(bol34_05.png).
Para demostrar el acceso hemos creado un directorio "c:\hack".
En bol34_06.png puede verse los dos directorios creados: el primero
"c:\hxr" para realizar el ataque y el segundo "c:\hack" creado
manualmente.

Conclusión:
Por algún extraño motivo este paper no se ha difundido en la forma en
que se esperaría para un documento cuya aplicación directa permite
la elevación de privilegios de usuarios y aplicaciones.
Es posible automatizar este ataque y creo no equivocarme al decir que
si un gusano se aprovecha de esta "vulnerabilidad" las consecuencias
podrían ser desastrosas ya que, como se vio, es posible tomar control
total del equipo atacado.
Esto daría lugar a una extensa propagación y a la creación de millones
de PC zombies utilizables para fines delictivos.

Más información:
http://www.haxorcitos.com/ficheros.html#SRVCHECK2
http://cyruxnet.org/archivo.php?20060203.00
http://cyruxnet.org/archivo.php?20060204.00
http://cyruxnet.org/archivo.php?20060213.00
http://www.hispasec.com/unaaldia/2660/n
http://www.microsoft.com/technet/security/advisory/914457.mspx
A Black-Box Tracing Technique to Identify Causes of Least-Privilege Incompatibilities
http://research.microsoft.com/~shuochen/papers/chen-ndss05.pdf
Windows Access Control Demystified
http://www.cs.princeton.edu/~sudhakar/papers/winval.pdf

Fuente: http://www.segu-info.com.ar (pagina altamente recomendable como favorita)

Salu2

ecoestadistica.com