Auditoría y CTF

Guia Metasploitable 2: Parte 3

Colaborador: Vasco

Hola hackers!!

Ésta es la tercera y última parte de la guía Metasploitable 2. En la segunda parte vimos como explotar las diferentes aplicaciones web que nos ofrece Metasploitable.
Retomaremos  la guía en el puerto 445, que es el siguiente en el escaneo con Nmap realizado en la primera parte de la guía.


PUERTO 445 SAMBA

Samba es el equivalente al SMB de Windows en los sistemas Unix. Permite compartir archivos e impresoras en una red local.
Para este puerto disponemos de varios escáneres en Metasploit mediante los que obtener información del servicio.

  • smb_version: nos muestra la versión del SMB.

Establecemos la IP de la máquina objetivo en RHOSTS y ejecutamos el escáner con el comando run. En este caso se trata de Samba 3.0.20-Debian.

  • smb_enumusers: mediante este escáner obtenemos los nombres de usuario de Metasploitable.

Hemos obtenido una buena lista de nombres de usuario con los que crear un diccionario por ejemplo para realizar un futuro ataque de fuerza bruta.

  • smb_enumshares: obtendremos las carpetas compartidas del objetivo.

Además de los escaneres, disponemos de un exploit mediante el cual obtendremos una shell con privilegios root.

Configuración del exploit.

 

Shell con privilegios root.
PUERTOS 512, 513, 514 SERVICIOS «r»
Estos servicios son herramientas con una parte cliente y otra servidor que permiten la conexión remota entre máquinas (terminal remota y trasferencia de archivos).
El puerto 513 corresponde a rlogin y se utiliza como terminal virtual (parecido a telnet).
El puerto 514 (rsh) es utilizado para ejecutar comandos en una máquina remota sin necesidad de acceder a ella.
Estos servicios han sido configurados erróneamente para permitir el acceso remoto desde cualquier máquina. Para aprovechar ésta mala configuración, nos conectaremos al puerto 513 mediante el cliente rsh-client y como usuario root (al no ser necesario introducir la contraseña).
 Conexión por el puerto 513.
PUERTO 1099 JAVA-RMI
 
Se trata de un mecanismo de Java para invocar un método de forma remota. Proporciona una forma simple de comunicación entre servidores en aplicaciones basadas exxclusivamente en Java (para la comunicación entre otras tecnologías debe utilizarse CORBA o SOAP).
Para la explotación de este puerto disponemos de un exploit en Metasploit.
 Configuración del exploit.
 Shell obtenida con privilegios root.
 
 
PUERTO 2049 NFS 
 
Este puerto se utiliza para que cualquier aplicación pueda acceder al sistema de archivos NFS (Network File System). Un atacante podría utilizar este puerto para montar un disco virtual y accceder a éste como si fuera de manera local permitiéndole ver y modificar archivos.
Para poner esto en práctica, primero veremos los directorios compartidos del equipo remoto mediante el comando showmount.
 Directorios compartidos.

En este caso tiene el directorio raiz / compartido. Lo siguiente será crear una carpeta en nuestro equipo y montar el directorio remoto en ella.

Como podéis ver en la captura anterior, una vez tenemos el directorio montado, podemos acceder a él y ver o modificar lo que queramos como si se tratara de una carpeta de nuestro pc.
PUERTO 3306 MYSQL
Éste puerto es el utilizado por el servidor de bases de datos MySQL. Actualmente es el sistema de gestión de bases de datos más popular, principalmente en sitios de internet.
Si le pasamos un escáner de vulnerabilidades como Nessus, éste nos indica que es posible conectarse a la db sin necesidad de contraseña.
Una vez dentro podemos hacer lo que queramos puesto que disponemos de privilegios root.
PUERTO 5432 POSTGRESQL
PostgreSQL es un sistema de gestión de bases de datos relacional orientada a objetos y de código abierto.
En Metasploit disponemos de un auxiliar con el que hacer un ataque por fuerza bruta para intentar obtener usuario y contraseña.
  • PASS_FILE: archivo con la lista de contraseñas para probar (una contraseña por linea).
  • USERPASS_FILE: archivo con una lista de usuario contraseña (separados por un espacio y un par usuario/contraseña por linea).
  • USER_FILE: archivo con una lista de nombres de usuario (uno por linea).

Además de las opciones anteriores, debemos establecer RHOSTS con la IP del objetivo y los THREADS (número de palabras que probará cada vez) para que, en caso de tener unas listas muy extensas, no tarde mucho en comprobarlas.

 Usuario y contraseña encontrados!!
Además del auxiliar visto, disponemos de un exploit mediante el cual obtendremos la tan ansiada shell.
 Configuración del exploit.
Aprovechamos  que tenemos los credenciales obtenidos con el auxiliar e introducimos usuario y contraseña en las opciones del exploit, junto con RHOST.
Con todo configurado, lanzamos el exploit.
 Shell sin privilegios.
Ahora mismo no disponemos de privilegios root, para ello, en esta ocasión, vamos a utilizar el exploit udev_netlink. 
En la captura anterior podéis ver que el último comando introducido es background, esto es así porque para usar el siguiente exploit, es necesario tener una sesión previa, con background dejamos la sesión en segundo plano pero abierta.
 Shell con privilegios root.
Establecemos el número de la sesión (opción SESSION) obtenida anteriormente y que tenemos en background (para ver el número de sesión utilizamos el comando sessions -l), y una carpeta (opción WritableDir) con permisos para escritura(/tmp).
 
Lanzamos el exploit y ya tendremos la shell con privilegios root.
 
 
PUERTO 5900 VNC
 
VNC es un software libre de escritorio remoto, basado en una estructura cliente-servidor el cual permite tomar el control del servidor remotamente a través del cliente, pudiendo compartir la pantalla, controlar el ratón y teclado, en definitiva como si estuviéramos en frente del pc.
 
Analizando la máquina Metasploitable 2 con Nessus, éste nos indica que la contraseña para el servicio VNC es «password«. Nos conectaremos con un cliente vncviewer.
 
VNCViewer con privilegios root. 
 
 
PUERTO 6667 IRC
 
Se llama IRC a una red de comunicación en tiempo real en la que puedes hablar con varios usuarios a la vez. Estos usuarios están conectados a una de las redes IRC como puede ser freenode, Hispano, etc. Éstas a su vez están divididas en canales de diferentes temáticas.
 
Existe un exploit en Metasploit que aprovecha un backdoor malicioso añadido al archivo Unreal3.2.8.1.tar.gz entre Noviembre 2009 y Junio 2010.
 
Configuración del exploit.
 
Shell con privilegios root.
 
 
PUERTO 8180 TOMCAT
 
Apache Tomcat funciona como un contenedor web con soporte de servlets (servlet: clase en el lenguaje de programación Java utilizada para ampliar las capacidades de un servidor). Tomcat puede funcionar como un servidor web por sí mismo.
 
Primero intentaremos obtener algo de información mediante el auxiliar tomcat_administration.
 
Credenciales obtenidos.
 
Con los credenciales en nuestro poder, podemos usar el exploit Apache Tomcat Manager Application Deployer Authenticated Code Execution. Éste exploit puede usarse tanto en plataformas Windows como Unix, cambiando el payload acorde a la plataforma.
 
Configuración del exploit.
 
Configuramos los campos PASSWORD y USERNAME con los credenciales obtenidos anteriormente, los típicos RHOST/RPORT con la IP y puerto de la máquina objetivo y LHOST/LPORT con la IP y puerto de la máquina atacante. Lanzamos el exploit.
 
Shell obtenida sin privilegios.
 
Para escalar privilegios podemos usar el exploit visto anteriormente (udev_netlink).
 
 
Hasta aquí la última entrega de ésta guía Metasploitable 2. Espero que os haya sido de utilidad y hayáis aprendido con ella. Como siempre está hecha con fines únicamente educativos, no nos hacemos responsables del mal uso que se le pueda dar. 
 
Un saludo.