Menú principal

viernes, 30 de agosto de 2013

Sudo Password Bypass en Mac OS X con Metasploit

Hace unos meses avisamos de que Mac OS X se veía afectado por una vulnerabilidad en sudo desde su versión 1.6.0 hasta la 1.7.10p y desde la 1.8.0 hasta la 1.8.6p. La vulnerabilidad tiene asignado desde hace tiempo el siguiente CVE-2013-1775 y en él se describe como este bug permite a un atacante realizar un bypass de las restricciones de tiempo que tiene sudo realizando una elevación de privilegios sin volver a autenticar al usuario. En otras palabras, si el atacante consigue una shell con un usuario perteneciente al grupo admin, para poder realizar alguna acción como root deberá autenticarse con sudo, por norma general.

Gracias al módulo de Metasploit que se presenta en este artículo nos saltaremos la restricción de tiempo, por lo que podremos ejecutar acciones como root en la máquina sin conocer la credencial del usuario. El exploit es de tipo local, ya que necesitamos tener una sesión en dicha máquina para poder ejecutarlo. Los requisitos, aparte de la versión de sudo, del exploit son que el usuario que el atacante controla debe pertenecer a admin y haber realizado alguna acción con sudo en algún instante anterior. Vamos a explicar paso a paso una pequeña PoC donde se verá claramente el funcionamiento del módulo y la explotación de la vulnerabilidad.

PoC: Ganando privilegios en un Mac OS X

En primer lugar debemos conseguir una shell en el equipo remoto, este hecho puede lograrse de muchas maneras, una de ellas y dado que en el año 2013 Java está teniendo muchos problemas de seguridad, sería utilizar algún bug conocido de Java como por ejemplo los fallos de Java 7, el ProviderSkeleton Insecure Invoke Methods o los 19 bugs críticos solventados en una actualización. Otra vía sería preparar un ejecutable que contenga como shellcode una shell inversa y mediante ingeniería social "colar" dicho código o algún ejecutable no malicioso que invocara al malicioso.

Para crearnos un ejecutable con una shell inversa utilizaremos la herramienta msfpayload. A esta herramienta le pasamos el nombre del payload que queremos incluir en el binario y los parámetros necesarios para que la shellcode "vuelva a casa", en este caso LHOST y LPORT

Figura 1: Creación de binario con shell inversa

Una vez la víctima ejecute, de alguna manera dicho código, obtendremos una shell en el Mac OS X. ¿Qué usuario seremos? Pues sencillamente con el que el binario se haya ejecutado. Para recibir la conexión del binario utilizaremos el módulo exploit/multi/handler, el módulo para todo de Metasploit.

Figura 2: Ejecución exploit/multi/handler

Es importante saber la versión de sudo, para comprobar si es vulnerable o no al módulo de elevación de privilegios. Para ello, en la propia shell que nos devuelve el anterior código, lanzamos un sudo -V.

Figura 3: Comprobación de versión de sudo

Según el CVE de la vulnerabilidad la aplicación sudo de este Mac OS X es vulnerable, pero aún falta confirmar si el usuario ha ejecutado sudo con anterioridad en esta máquina. El encargado de comprobarlo será el propio exploit de Metasploit. Si todo va bien, el módulo nos devolverá una nueva sesión con una shell donde seremos root.

Ahora, utilizaremos el módulo de elevación de privilegios Sudo Password Bypass. El único parámetro básico que debemos indicar en el módulo es SESSION. Este parámetro se refiere a la sesión activa sobre el Mac OS X, por lo que le asignamos el ID de la sesión que tenemos y lanzamos exploit.

Figura 4: Explotación de vulnerabilidad de sudo

Si quieres puedes comprobar si tu Mac OS X es vulnerable a este fallo de seguridad lanzando el comando en tu equipo, pero ya te decimos que a día de hoy todos son vulnerables.

Figura 5: Comprobación de versión de sudo en OSX Mountain Lion 10.8.4

Como se puede comprobar ahora somos root en la nueva sesión de shell que tenemos. La mitigación de esta vulnerabilidad no debe ser compleja a día de hoy, ya que se disponen de versiones superiores a la 1.8.6p en el sitio web de sudo pero al ser un módulo paquetizado por Apple deberemos esperar a que la compañía lo distribuya en la próxima actualización. Si quieres aprender más cosas acerca de Metasploit no dudes en utilizar el libro de Metasploit para Pentesters de nuestro compañero Pablo González.

No hay comentarios:

Publicar un comentario en la entrada

Entrada destacada

Vente al "Security Innovation Day 2016: Let Security Be"

El Security Innovation Day es el evento desde el que Telefónica y ElevenPaths comparten los últimos lanzamientos y novedades en innovació...

Otras historias relacionadas

Entradas populares