Exploit
Exploit
Exploit
mx)
Inicio > Pruebas de penetración para principiantes: explotando una vulnerabilidad con Metasploit Framework
exploit pentest
pruebas de
numero-19
La versión gratuita y limitada de Metasploit framework Community es una herramienta que permite
ejecutar y desarrollar exploits contra sistemas objetivos. Actualmente se encuentra integrado con Kali
Linux, una distribución de Linux con diversas herramientas orientadas a la seguridad y es ampliamente
utilizado para realizar pruebas de penetración. En la revista anterior mencionamos algunas de las
herramientas más importantes para adentrarse en el mundo de las pruebas de penetración . Ahora,
utilizaremos Metasploit para mostrar paso a paso la explotación de un servidor vulnerable.
Existen diferentes metodologías que pueden implementarse para realizar pruebas de penetración,
donde cada una de las variantes difiere principalmente en las técnicas y métodos para llevar a cabo las
respectivas tareas. Algunas metodologías son del tipo blackbox, donde básicamente no se conoce
ningún tipo de información sobre el sistema objetivo. En contraposición, están las de whitebox, donde
se tiene información sobre el sistema objetivo, como puede ser código fuente de aplicaciones,
configuraciones, entre otras alternativas. A su vez, existen diferentes etapas de acuerdo a la
metodología utilizada.
En este caso, sin realizar distinción de la metodología, haremos foco sobre la etapa de reconocimiento.
Dentro de ésta existen dos formas de recopilar la información, ya sea de forma activa o pasiva. En el
primer caso la información se obtiene directamente del sistema objetivo y en el segundo de forma
indirecta. Finalmente ejecutaremos la etapa de explotación, ya que nos permitirá obtener un panorama
general de lo que realmente involucra una prueba de penetración. Asimismo, un análisis completo
involucra otras etapas, tales como la de enumeración, acceso, entre otras.
¿Cómo comenzar?
Para que los lectores puedan hacer el ataque paso a paso deberían instalar dos máquinas virtuales
conectadas entre sí. Para ello es posible utilizar VMWare o en su defecto VirtualBox, en realidad
existen otras alternativas, aunque estas dos son las más populares. Las dos máquinas virtuales que
deben instalarse son las siguientes:
Para continuar, es importante verificar que ambas máquinas tengan visibilidad entre sí (es decir, que
puedan comunicarse). Esto puede corroborarse con un simple ping entre las dos.
Después, desde la máquina en Kali Linux (todo el ejercicio se desarrolla en esta máquina, la segunda
solo oficia como objetivo del ataque, pero no se realizarán acciones en ésta más allá de prenderla para
“atacarla”) utilizaremos la consola de Metasploit (msfconsole) de donde se lanzarán todos los
comandos correspondientes sobre el servidor en el que se desea realizar la prueba de penetración.
Para abrir la consola, solo hace falta el comando
> msfconsole
Information gathering
Para recopilar información es posible utilizar Nmap desde la propia consola de Metasploit. Para ello,
basta con solo invocar el comando “db_nmap”. Los parámetros que pueden utilizarse son los mismos
que acepta Nmap. De esta manera, los resultados serán almacenados en la base de datos de
Metasploit.
Para obtener una observación rápida del sistema objetivo, se ingresa el siguiente comando:
· Services: Imprime por pantalla todos los puertos y servicios asociados que fueron descubiertos
durante el análisis con Nmap.
Sin embargo, en esta instancia es posible que no se cuente con demasiada información sobre los
servicios descubiertos en el sistema objetivo. De esta manera, utilizando la misma herramienta (Nmap)
es posible determinar, por ejemplo, la versión específica de un servicio. Esto se puede lograr mediante
el siguiente comando:
El parámetro “sV” indica que examine la versión específica del servicio. A modo de ejemplo,
ejecutamos el siguiente comando para averiguar la versión sobre el servicio que se está ejecutando en
el puerto 21, utilizado comúnmente por el servicio FTP.
Si ahora se ejecuta el comando “services”, nuevamente, se obtendrá información específica del servicio
analizado.
Explotación
Asimismo, si se desea conocer todos los posibles parámetros de búsqueda, es posible acceder a la
ayuda mediante el siguiente comando:
Para seleccionar el exploit se introduce el comando “use” seguido de la ruta del exploit seleccionado.
En este caso el comando sería el siguiente:
Una vez seleccionado el exploit que se va a utilizar, se deben configurar aquellos parámetros
necesarios a través de la consola. Para ver las opciones, se debe ingresar el comando “ show options”,
el cual enumera todos los parámetros indicando si son opcionales u obligatorios mediante el campo
“required”.
Image not found or type unknown
En esta instancia, ya es posible configurar los parámetros. Para realizar esta tarea se debe utilizar el
comando “set” seguido del parámetro y el valor que se desea establecer. Para este ejemplo, el
comando es el siguiente:
Payload
Básicamente, el payload es la secuencia de instrucciones que se ejecutarán una vez que se haya
explotado con éxito la vulnerabilidad. Metasploit Framework posee diversos payloads con diferentes
funcionalidades para cada tipo de arquitectura. Mediante el comando “ show payloads” se pueden
visualizar cuáles son compatibles. De esta forma, se utiliza el siguiente comando para establecer el
payload:
Image not found or type unknown
En este caso hemos elegido el payload cmd/unix/interact. Sin embargo, para conocer todos los
payloads que son compatibles con el exploit que se va a utilizar, existe un comando para realizar el
listado correspondiente:
De la misma manera, si se desea conocer cuáles son los parámetros configurables del payload
seleccionado, es posible ejecutar el comando:
Luego de que todos los parámetros ya han sido configurados, será posible llevar a cabo la explotación.
Para ello, basta con ejecutar el comando “exploit” y esperar que Metasploit haga su trabajo.
En esta instancia, si todo ha resultado bien, se obtiene una shell de comandos sobre el sistema que ha
sido atacado, permitiendo ejecutar cualquier comando en dicho sistema. Por ejemplo, a continuación se
puede observar un comando de listado de directorios:
Image not found or type unknown
Conclusión
En este caso se obtuvo acceso a un servidor a través de un servicio FTP vulnerable. Mediante la
identificación de la versión del servicio se pudo encontrar el exploit adecuado. De la misma manera, se
inyectó un payload capaz de disponer una shell de comandos a merced del atacante.
Si bien este es un ejemplo específico, donde el acceso se logró a través de una vulnerabilidad
conocida por una versión antigua del software Vsftpd, también es posible que esto ocurra en un
escenario real. Asimismo, los ataques reales pueden ser más complejos o combinados. Sin embargo,
esto es un buen comienzo para tener noción sobre cómo se realizan ataques con Metasploit.
Finalmente, vale la pena destacar que no existe una herramienta capaz de ejecutar automáticamente
una prueba de penetración de calidad. El auditor, es decir, quien realiza las pruebas de penetración (
pentester), siempre debe recurrir al uso de su imaginación y conocimiento, cualidades que pondrán a
su disposición una gama de herramientas que le permitirán ejecutar una prueba precisa y contundente
sobre el sistema para obtener resultados de calidad.