Mostrando entradas con la etiqueta Metasploitable 2. Mostrar todas las entradas
Mostrando entradas con la etiqueta Metasploitable 2. Mostrar todas las entradas

lunes, 11 de abril de 2016

Guia Metasploitable 2: Parte 3


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.

sábado, 19 de marzo de 2016

Guia Metasploitable 2: Parte 2

Continuamos con la segunda parte de la guía de Metasploitable 2. En esta entrega vamos a explotar el puerto 80, en el que vamos a encontrar varias aplicaciones web vulnerables. Esto es lo que nos aparece al entrar.



TWIKI

La primera aplicación que aparece es Twiki. Se trata de un gestor de contenidos tipo wiki, escrito en Perl y con licencia GPL. Soporta extensiones para acceso a base de datos, diagramas, hojas de calculo, seguimiento de proyectos y muchas otras posibilidades.

Éste tiene una vulnerabilidad que podemos explotar con Metasploit.

Configuración exploit
Shell obtenida
Obtendremos una shell sin privilegios. Para escalar privilegios utilizaremos el mismo exploit que usamos en el puerto 22 (SSH), en la primera parte de ésta guía.


DVWA

Esta aplicación web dispone de varios fallos de seguridad como pueden ser SQL Injection, ejecucion de comandos, File Inclusion, etc.

Al entrar vemos un login, el user es "admin" y la pass "password".



Una vez dentro, lo primero que haremos es pinchar en Setup y Create/Reset Database, para crear la base de datos.



Lo siguiente es cambiar el nivel de seguridad, entramos en DVWA Security y lo cambiamos a Low, pinchamos en Submit.


Ya estamos listos para empezar a probar las vulnerabilidades.


Command Execution

Nos aparece una pantalla en la que podemos hacer un ping a la IP indicada. Pero además podemos ejecutar mas comandos con la siguiente  sintaxis: IP&&COMANDO.


Ejemplo: 127.0.0.1&&pwd


En la captura vemos como responde al ping y al comando pwd. Ahora ya depende de nuestra imaginación y los permisos que tengamos.


Cross Site Request Forgery (CSRF)

Esto es un ejemplo de una mala implementación del cambio de contraseña en una aplicación web.
  • Utiliza http en vez de https, por lo que va en texto plano.
  • Un atacante puede usar la URL para cambiar la contraseña-
Al entrar nos encontramos con esta pantalla.


Escribimos una contraseña y pulsamos Change.

Si nos fijamos en la URL, vemos  como aparece la nueva contraseña.


Ahora vamos a cambiar la contraseña desde la URL y actualizamos la página.


Nos aparece el mensaje Password Changed y en la URL la nueva contraseña establecida. Si salimos de DVWA y nos logueamos otra vez con la nueva contraseña, comprobareis que efectivamente funciona.


File Inclusion

Mediante esta vulnerabilidad podemos ver ciertos archivos del sistema como puede ser passwd, phpinfo, ftpusers, etc. Incluso podemos ejecutar un archivo que hayamos subido previamente como un backdoor.

En la web nos dice que modifiquemos una parte de la url para explotar la vulnerabilidad.



page=/etc/passwd


page=/var/www/phpinfo.php




Para el siguiente ejemplo, vamos a crear un backdoor con msfvenom.


Lo metemos en la máquina Metasploitable 2 de la forma que mas nos guste.
A continuación ponemos a la escucha en Kali el multi/handler para recibir la conexión.


Y por último, ejecutamos nuestro archivo introduciendo la ruta donde lo hayamos guardado. En mi caso lo he puesto en la carpeta /tmp.


Aquí tenemos la shell meterpreter, ya solo tendríamos que escalar privilegios mediante algún exploit.


SQL Injection

Es el turno del famoso SQL Injection. No voy a entrar en muchos detalles sobre el funcionamiento del mismo, para ello visita este enlace.

Para empezar introducimos el comando básico: 

' or ' 1=1 


La respuesta de la web es los nombres de usuario.

Para ver el nombre de usuario de la base de datos introducimos:

' or 0=0 union select null, user() # 

Usuario db: root


Para el nombre de la base de datos:  

' or 0=0 union select null, database() # 

 Nombre db: dvwa 

Buscaremos en las tablas de la base de datos information_schema (esta base de datos es donde se guarda la información sobre las db que el servidor MySQL maneja), las tablas que contengan la palabra user en su nombre. Para ello usamos el siguiente comando:

' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%' # 

Tabla: users 

Una vez sabemos el nombre de la tabla en cuestión, mostramos el nombre de las columnas:

' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' # 

 Columnas db users 

Por último, mostramos la información de las columnas que nos interesan:

' and 1=0 union select null, concat(user,0x0a,password) from users # 


Con los usuarios y sus respectivos hashes podemos obtener las contraseñas con John the Ripper u otra aplicacion de crackeo de hashes. 

 Usuarios y contraseñas 


Upload

Mediante esta vulnerabilidad podemos subir un archivo al servidor para posteriormente ejecutarlo por ejemplo, con lo que ello conlleva.

He creado, mediante msfvenom, un archivo php que devolverá una shell meterpreter. Buscamos el archivo y lo subimos.





Path del archivo 

Una vez subido, lo ejecutamos desde la URL.


Con msfconsole y multi/handler escuchando, obtendremos la shell.


Cross-Site Scripting (XSS)

XSS permite a un atacante inyectar código en la web evitando las medidas de control, permitiéndole robar información sensible, secuestrar sesiones de usuario, etc.

El ejemplo básico para comprobar la vulnerabilidad es el siguiente:

<script>alert("¡¡FWHIBBIT!!")</script>

 Nos aparecerá el siguiente mensaje:






Otro de los usos que se le puede dar es utilizar un iframe para mostrar otra web por encima de la original. Con ésta técnica podemos engañar a un usuario para que piense que se trata de la web original cuando en realidad no lo es, obteniendo así sus credenciales.




Iframe con web indicada 


Para obtener la cookie de la sesion introducimos :

<script>alert(document.cookie)</script> 


 
Mediante XSS podemos incluso ejecutar un archivo php (como el usado en la parte de Upload).

<script>window.location="http://192.168.0.195/dvwa/hackable/uploads/hack.php"</script> 

 Teniendo multi/handler a la escucha, tendremos una shell meterpreter.


Hasta aquí la entrada de hoy, espero que os haya gustado. Recordar que esto es con fines educativos y en ningún momento debe utilizarse para malos fines.


Google Analytics