Hoy terminamos esta "mini serie" de artículos sobre Metasploit en la que ya hemos visto los conceptos básicos y la estructura de la que se compone el framework, por otra parte también vimos como podíamos ejecutar la herramienta y lanzar un exploit sobre una máquina virtual que utilizamos como el equipo "víctima". El día de hoy volveremos a atacar la máquina donde habíamos instalado Metasploitable, pero en esta ocasión además de tomar el control de la máquina con el exploit, vamos a ver como podemos lanzar y modificar los payloads que se ejecutarán si el exploit tiene éxito.
Introducción a Metasploit (III de III) |
Lo primero que tenemos que hacer será ejecutar la máquina virtual donde tenemos instalado Metasploitable y consultamos la ip asignada a la misma. Como todos sabéis y como vimos en el artículo anterior, para identificar el host que queremos atacar tendríamos que hacer uso de terceras herramientas como Nmap para poder hacer un barrido de la red e identificar los equipos conectados a la misma. Sin embargo nosotros vamos a consultar la ip directamente desde la propia máquina virtual, de esta manera ahorramos tiempo y nos centraremos en lo que verdaderamente nos interesa. Por tanto, accedemos a Metasploitable con el usuario y la contraseña "msfadmin" y consultamos la ip de la máquina con el comando "ifconfig".
Después arrancamos nuestro Metasploit y vamos a escanear la dirección que hemos obtenido anteriormente:
nmap -sV 192.168.102
Una vez hayamos ejecutado la orden obtendremos un listado con los servicios que están corriendo en el sistema y los puertos que están utilizando. En esta ocasión vamos a vulnerar el servicio de IRC que está corriendo en el puerto 6667. (Hemos elegido este servicio ya que no requiere de complicadas configuraciones) Por tanto lo que deberíamos hacer a continuación sería lanzar el comando "search" para buscar un exploit disponible para atacar el servicio de IRC.
Como podemos ver nos devuelve como resultado un exploit que corresponde a "UNIX" e "IRC". Lo seleccionamos con el comando "use", y una vez seleccionado, cambiamos el parámetro de RHOST y escribimos la dirección IP de la máquina que vamos a atacar:
Ahora modificaremos el payload que el exploit nos carga por defecto, para ello vamos a ver cuál es el payload que nos cargaría en esta ocasión. Escribimos "set payload" y pulsamos dos veces la tecla "Tab". Podremos ver que nos muestra justo al lado lo siguiente: cmd/unix/. Esta es la lista de payloads que esta cargando el exploit por defecto. Volvemos a pulsar la tecla "Tab" dos veces y nos desplegarás la lista completa con los payloads que podemos utilizar en esta ocasión.
En concreto vamos a utilizar el siguiente payload: "reverse ruby". (Podréis observar que en realidad todos los payloads que nos deja utilizar en esta ocasión cumplen la misma función) Para seleccionarlo y de esta manera cambiar el payload que carga por defecto Metasploit, debemos introducir el comando "set payload" más el nombre del mismo:
Comprobamos la configuración del payload con "show options" y escribimos "set LHOST" junto a nuestra IP, para cambiar el parámetro. Por último introducimos el comando "run" y podremos comprobar que hemos tomado el control de la máquina correctamente, lo verificamos con el comando "whoami".
Sin embargo aunque hayamos tomado el control total de la máquina, ahora vamos a inyectar un segundo payload para que podáis ver como se hace y como podemos cambiar de sesión. Para hacerlo primero vamos a mandar la sesión que estamos utilizando actualmente a un segundo plano. Para hacerlo pulsamos "control + z" y nos preguntará si queremos mandar la sesión 1 al backgroung, ecribimos "y" para aceptar.
Ahora vamos a buscar un módulo post explotación llamado Meterpreter que seguro que os sonará a muchos de vosotros, para ello escribimos : search post/multi/manage/shell_to
Este módulo post explotación sirve básicamente para inyectar un payload conocido como Meterpreter. Este es un payload que nos ofrece una cantidad inabarcable de opciones, y que nos permite movernos con toda facilidad por cualquier sistema (Meterpreter utiliza su propia linea de comandos al margen de Metasploit). En esta ocasión nos servirá para ver como podemos cambiar y configurar un payload distinto cuando el exploit no lo trae por defecto o no es compatible. Para utilizar Meterpreter escribimos la orden "use post/" más el nombre del módulo. Después de esto mostramos sus opciones:
Veremos que nos pide un "HANDLER", esto simplemente quiere decir que se necesita un exploit para estar a la escucha mientras se ejecuta Meterpreter. Cuando Meterpreter se ejecute avisará al "HANDLER" para que tome el control del propio Meterpreter, y esto será lo que nos permita tomar el control de la máquina. Vemos que viene configurado como "true" por defecto, lo dejamos tal como está, pero cambiamos el parámetro de LHOST. Para ello ejecutamos "set LHOST" y nuestra dirección IP.
La siguiente opción que vamos a cambiar es "session". Supongo que recordaréis que la sesión anterior la mandamos a un segundo plano y era la numero 1, pues ahora introducimos el numero de esta sesión en el parámetro correspondiente para poder inyectar el módulo de Meterpreter. Escribimos "set session 1". Comprobamos que se a cambiado y ejecutamos el comando "run":
Y como podéis comprobar nos dice que a iniciado correctamente la sesión número 2 y que es una sesión Meterpreter. Si quisiéramos cambiar de sesión tenemos que escribir el comando "sessions -i" más el número de la sesión. Y veremos que la nueva sesión es la número 2, y es una línea de comando bajo Meterpreter (Como os comenté anteriormente Meterpreter posee su propia línea de comandos al margen de Metasploit)
Por otra parte si quisiéramos volver a la sesión anterior solo tenemos que ir al background y escribir el comando "sessions -i 1". Escribimos el comando "whoami" y podemos comprobar que es la shell que obtuvimos en un principio.
Bueno hasta aquí la tercera parte de esta breve introducción a Metasploit, en ella hemos visto como podemos tomar el control de una máquina, cómo manejarnos entre sesiones, como inyectar un payload por medio de un módulo post explotación, y también como modificar los payloads que Metasploit carga por defecto. Espero que esta pequeña introducción os haya sido de ayuda, en un futuro no muy lejano seguiremos viendo como funciona un poco más en profundidad este maravilloso framework, hasta la próxima.
Comprobamos la configuración del payload con "show options" y escribimos "set LHOST" junto a nuestra IP, para cambiar el parámetro. Por último introducimos el comando "run" y podremos comprobar que hemos tomado el control de la máquina correctamente, lo verificamos con el comando "whoami".
Sin embargo aunque hayamos tomado el control total de la máquina, ahora vamos a inyectar un segundo payload para que podáis ver como se hace y como podemos cambiar de sesión. Para hacerlo primero vamos a mandar la sesión que estamos utilizando actualmente a un segundo plano. Para hacerlo pulsamos "control + z" y nos preguntará si queremos mandar la sesión 1 al backgroung, ecribimos "y" para aceptar.
Ahora vamos a buscar un módulo post explotación llamado Meterpreter que seguro que os sonará a muchos de vosotros, para ello escribimos : search post/multi/manage/shell_to
Este módulo post explotación sirve básicamente para inyectar un payload conocido como Meterpreter. Este es un payload que nos ofrece una cantidad inabarcable de opciones, y que nos permite movernos con toda facilidad por cualquier sistema (Meterpreter utiliza su propia linea de comandos al margen de Metasploit). En esta ocasión nos servirá para ver como podemos cambiar y configurar un payload distinto cuando el exploit no lo trae por defecto o no es compatible. Para utilizar Meterpreter escribimos la orden "use post/" más el nombre del módulo. Después de esto mostramos sus opciones:
Veremos que nos pide un "HANDLER", esto simplemente quiere decir que se necesita un exploit para estar a la escucha mientras se ejecuta Meterpreter. Cuando Meterpreter se ejecute avisará al "HANDLER" para que tome el control del propio Meterpreter, y esto será lo que nos permita tomar el control de la máquina. Vemos que viene configurado como "true" por defecto, lo dejamos tal como está, pero cambiamos el parámetro de LHOST. Para ello ejecutamos "set LHOST" y nuestra dirección IP.
La siguiente opción que vamos a cambiar es "session". Supongo que recordaréis que la sesión anterior la mandamos a un segundo plano y era la numero 1, pues ahora introducimos el numero de esta sesión en el parámetro correspondiente para poder inyectar el módulo de Meterpreter. Escribimos "set session 1". Comprobamos que se a cambiado y ejecutamos el comando "run":
Y como podéis comprobar nos dice que a iniciado correctamente la sesión número 2 y que es una sesión Meterpreter. Si quisiéramos cambiar de sesión tenemos que escribir el comando "sessions -i" más el número de la sesión. Y veremos que la nueva sesión es la número 2, y es una línea de comando bajo Meterpreter (Como os comenté anteriormente Meterpreter posee su propia línea de comandos al margen de Metasploit)
Por otra parte si quisiéramos volver a la sesión anterior solo tenemos que ir al background y escribir el comando "sessions -i 1". Escribimos el comando "whoami" y podemos comprobar que es la shell que obtuvimos en un principio.
Bueno hasta aquí la tercera parte de esta breve introducción a Metasploit, en ella hemos visto como podemos tomar el control de una máquina, cómo manejarnos entre sesiones, como inyectar un payload por medio de un módulo post explotación, y también como modificar los payloads que Metasploit carga por defecto. Espero que esta pequeña introducción os haya sido de ayuda, en un futuro no muy lejano seguiremos viendo como funciona un poco más en profundidad este maravilloso framework, hasta la próxima.