lunes, 24 de junio de 2013

Vmware Esxi 5.1 Hardening & Hacking casero.

Vmware Esxi 5.1 el Hiper Visor de máquinas virtuales gratuito hasta 32 gigas de ram...
En casa he montado un pequeño sistema Host con Esxi 5.1 en un pc clónico con 16 gigas de ram, un procesador I5, 3 tarjetas de red y unos cuantos gigas de HD. Ya había tocado cosas con la virtualización bajo entornos Hiper V y el viejo Esxi 4.0 y pensé montar todos los laboratorios con los que trabajo y escribo esos post que tanto os gustan sobre esta plataforma, y así no cargar tanto el portátil que se queda corto con 3 máquinas trabajando, y aparte, es interesante apagarlo de vez en cuando :-).

Hay muchas guías en Internet sobre su instalación y administración, por lo que no voy a hablaros de las ventajas, usos, guías y demás. Voy a intentar acercar el mundo de la seguridad a esta plataforma, al menos para una implementación básica como es la mía, un laboratorio, así como un despliegue sencillo en una empresa con uno o varios sistemas anfitriones/Host Esxi 5.1

Lo primero que debemos hacer es crear una contraseña robusta. Para estas pruebas con el usuario Root me basta, y confío en mi contraseña fuerte y compleja. Si prefieres habilitar una política de contraseñas robustas puedes editar el fichero /etc/pam.d/passwd y editar la línea password requisite /lib/security/$ISA/pam_passwdqc.so retry=N min=N0,N1,N2,N3,N4 con los valores que deseamos. Cuales son?

RETRY es el número de veces que un usuario se le solicita una contraseña nueva si el candidato contraseña no es suficientemente fuerte.
N0 es el número de caracteres requeridos para una contraseña que utiliza caracteres de una sola clase de caracteres.Por ejemplo, la contraseña sólo contiene letras minúsculas.
N1 es el número de caracteres requeridos para una contraseña que utiliza caracteres a partir de dos clases de caracteres.
N2 se utiliza la contraseña de frase. ESXi requiere tres palabras para una contraseña. Cada palabra en la frase debe ser 8-40 caracteres de longitud.
N3 es el número de caracteres necesarios para la contraseña que utiliza personajes de tres clases de personajes.
N4 n es el número de caracteres requeridos para una contraseña que utiliza caracteres de todas las cuatro clases de caracteres.n partido es el número de caracteres permitidos en una cadena que se reutiliza de la contraseña anterior


Para crear un usuario, otorgarle permisos de una manera gráfica muy descriptiva podemos seguir las siguientes pantallas.






Una de las cosas que he hecho es habilitar el servicio SSH para poder administrar la consola de Esxi en el caso de caídas del algún servicio crítico que no me permita usar el Client.


Entramos en Configuration y en Security Profile en la parte de Services configuramos la manera de arrancar el servicio, indicando que se inicie con el inicio del Host. Con esto ya tenemos acceso SSH al Host Esxi.


En la parte de abajo de Services aparece Firewall. Entramos en sus propiedades y configuramos una regla para permitir solo acceso ssh a través de una Ip concreta o un conjunto de redes. Interesante para limitar el tráfico desde Internet, aunque no tengo expuesto el servicio sino que me conecto por VPN.


Me voy al mundo de las pantallas negras y veo como se ve en mi red local el equipo.


Otra de las cosas que hago es parar el servicio servidor HTTP ya que no voy a realizar ninguna gestión mediante interface Web.


A continuación voy a cambiar el banner del servicio SSH por si las moscas, cosas que me da por hacer. Para ello editamos el fichero /etc/issues con nuestro banner favorito. El editor que lleva Esxi es VI.


De momento no he podido tapar mucho el equipo, pero voy a repasarme Metasploit por si puedo jugar un rato y probar alguna vulnerabilidad. Para ello, como no tengo mucha memoria, entro en Metasploit en mi máquina Backtrack y hago "Search esxi" para ver los módulos.


Uso un módulo específico para lo que estoy buscando, identificar el Esxi.


Lo pilla al momento. Que buena herramienta...
Puesto con Metasploit, lanzo otro módulo que trata de enumerar las características de las máquinas virtuales instaladas sabiendo el password. No es muy atractivo como herramienta de explotación pero si post-explotación en un supuesto de penetrar en un sistema y conseguir la clave. Si estás en una sesión mediante Pivoting no tienes a mano el Client gráfico.



Muestra toda la información de las VM.
Leyendo documentación y foros descubro un servicio denominado MOB que permite navegar mediante interface web por todos los objetos de nuestro sistema, por lo que deshabilito este servicio. Lo podemos comprobar en https://IP /MOB
vim-cmd proxysvc/remove_service "/mob" "httpsWithRedirect"


Vamos a configurar los archivos temporales y sobre todo los Logs del sistema. Por defecto los Logs estarán disponibles solo hasta que se reinicie el servidor, por lo que debemos conectarlos a un servidor remoto syslog o indicarle una ruta persistente dentro del sistema de almacenamiento.

Entramos en Configuration-Storage. En nuestro sistema de almacenamiento disponible hacemos botón derecho, examinar. Creamos un directorio para almacenar los Logs.


Seguimos en Configuration-Advanced Setting y configuramos la ruta de la carpeta creada en la sección ScratchConfig.


Necesitamos reiniciar el HOST para que los cambios surjan efecto.


Vamos a configurar en Configuration-Networking las propiedades de nuestro Virtual Switch para denegar el modo promiscuo para cualquiera de las máquinas virtuales y el cambio de dirección MAC.


Esto es todo lo que he ido probando de aspectos de seguridad de mi ESXi casero, que tengo que decir que me funciona de las mil maravillas.

Como siempre, gracias por leerme y espero que os guste este artículo.



Google +