Menú principal

lunes, 5 de diciembre de 2011

Tomando el control de Mac OS X con un exploit Java

Durante el mes de Noviembre, hace aún menos de un mes, Apple parcheó 17 vulnerabilidades críticas en la máquina Java para los sistemas operativos Mac OS X Snow Leopard y Mac OS X Lion. Este parche tenía un nivel de serveridad crítico, ya que podría llevar a un atacante a ejecutar código arbitrario en la máquina.

Por supuesto, no han tardado en aparecer los exploits para estas vulnerabilidades, y algunos de ellos están ya incorporados en Metasploit. Hemos hecho una vez más la demostración de cómo funciona este exploit, para que la gente tome conciencia de la necesidad de aplicar una política de defensa en profundidad, manteniendo actualizado el software todo lo que sea posible, no usando una cuenta de administración en el equipo y aplicando software de detección de ataques.

Exploit java_rhino con metasploit

En esta sección vamos a ir paso a paso configurando el exploit. Así que, tras abrir metasploit, lo primero es seleccionar el exploit que queremos utilizar, en este caso exploit/multi/browser/java_rhino, que saca partido de la vulnerabilidad CVE-2011-3544. 

Figura 1: Selección de exploit java_rhino

Seleccionamos el objetivo en este exploit, como se puede ver es funcional en entornos Windows, Linux y Mac OS X. Para esta demostración, seleccionamos Mac OS X. 

Figura 2: Selección de objetivo para Mac OS X

Al seleccionarlo obtenemos una descripción de lo que se puede hacer con este exploit. Algo que nos viene perfecto para la demo.

Figura 3: Información del exploit

Ahora la selección del payload. Para este caso vamos a elegir la ejecución de un meterpreter en Java con reverse shell TCP a nuestra máquina, donde situaríamos el panel de control de las víctimas.

Figura 4: Selección de payload

Para ello es necesario indicar la dirección IP y el puerto donde vamos a tener escuchando Metasploit.

Figura 5: Configuración de listener para la shell reversa

Y con esto ya estaría listo el exploit, que se encontraría escuchando, listo para ejecutarse, en la URL indicada. El siguiente paso es que el usuario lo ejecute.

Ejecución del exploit

Para ejecutar el exploit los atacantes realizan muchos truchos. Hacen ataques masivos como en las infecciones que se llevaron la web de Apple por delante, ataques dirigidos, enviando un spam con un link como vimos en el ejemplo de Canvas y Apple Safari, o vulnerando una web que se sabe que va a ser visitada para simplemente meter la carga de una imagen que se carga desde la URL maliciosa. Así, por ejemplo, simplemente leyendo este blog, si tu sistema estuviera sin actualizar, y nosotros fueramos unos tipos malos (que no es el caso) podríamos haberte lanzado el exploit para controlar tu máquina. ¿Te darías cuenta?

Figura 6: Ejecución del exploit

Pues en Apple Safari NO, tal y como se puede ver en la imagen siguiente, ya que no muestra ningún mensaje de error ni nada. Solo página en blanco, así que, si ese link se mete en un iframe transparente dentro de una página no se notaría nada. Y como se puede ver no pide ninguna contraseña de administrador ni nada.

Figura 7: Ejecución del exploit a través de Apple Safari

En este exploit en concreto, en Google Chrome sí que sale el bloqueo del Applet Java que explota la vulnerabilidad, así que sería necesario que el usuario aceptase la ejecucíón del Applet.

Figura 8: Ejecución del exploit a través de Google Chrome

Meterpreter en Java

Una vez explotada la vulnerabilidad, el atacante recibe la shell de la víctima y puede ejecutar los comandos de meterpreter en Java para Mac OS X que estamos utilizando.

Figura 9: meterpreter en la máquina owneada

Meterpreter en Java no es tan potente que el meterpreter para Windows, pero más que suficiente para poder hacer todas las diabluras que se quieran, como meter un troyano, acceder a los datos confidenciales - no importa si están cifrados si el usuario ha iniciado sesión - etcétera.

Figura 10: Acceso al sistema de ficheros de la víctima

Soluciones

Las soluciones son las de siempre. Parchear, parchear, parchear. No usar el usuario administrador, usar un firewall de conexiones entrantes y salientes, usar un antimalware a ser posible, y tener mucho cuidado que links se siguen en Internet. Un exploit de 0day - sin parche - explotado on the wild, podría significar una infección inmediata de nuestro equipo.

Si quieres aprender más sobre cómo funciona Metasploit, puedes leer el libro de Pablo González Metasploit para Pentesters

1 comentario:

Artículos relacionados

Otras historias relacionadas

Entradas populares