Fundamentos de Metasploit Framework

Qué es Metasploit Framework

Metasploit Framework es una herramienta mantenida en la actualidad por la empresa Rapid7, principalmente programado en Ruby y que permite a los profesionales de la ciberseguridad el desarrollar y ejecutar módulos (usualmente exploits) para aprovechar una vulnerabilidad y hacer de esta explotación algo completamente sencillo en la mayoría de los casos.

En esta herramienta nos vamos a encontrar una serie de módulos, que no son más que fragmentos de código que podemos usar para lograr un objetivo en concreto, los tipos de módulos que hay hoy en día en Metasploit Framework son:

  • Auxiliary
  • Payloads
  • Exploits
  • Nops
  • Post
  • Encoder

A medida que han pasado los años, esta herramienta ha recibido una fuerte ola de críticas, ya que muchos no la califican como “útil”. Esto se debe a su facilidad de uso para, entre otras cosas, lanzar exploits contra activos remotos y poder explotar las vulnerabilidades que tenga dicho activo, siempre que de la cual exista un exploit dentro de esta herramienta.

Cabe resaltar que hacer uso de Metasploit Framework no es sinónimo de no contar con conocimiento técnico, de hecho, el uso de Metasploit Framework puede ayudar en la mayoría de casos a optimizar tiempo, por ejemplo, en pruebas de penetración. Aunque el hecho de que sea tan sencillo de usar provoca que también haya cierto público que haga uso de esta herramienta para atacar activos sin saber qué está haciendo la misma por detrás, activos de los cuales no cuentan con los permisos necesarios para realizar dichas pruebas, por lo que se pueden estar cometiendo delitos. Al final no es culpa de la herramienta, es total responsabilidad del usuario que haga uso de esta.

Lo más recomendable a la hora de usar algún módulo de Metasploit Framework es saber qué pasa por detrás y no solo ejecutar los módulos porque sí, ya que, en algunos casos no pasará nada más de lo que se tiene planeado que pase, pero es probable que, por ejemplo, algún exploit interactúe con el objetivo de cierta forma que no es la esperada y eso pueda provocar incidentes no planeados.

Instalación de Metasploit Framework

Esta herramienta, viene instalada en la mayoría de las distribuciones de GNU/Linux que están destinadas a la ciberseguridad, como Kali Linux, Parrot Os Security, entre otras, sin embargo, si se desea instalar la herramienta, se pueden seguir los siguientes pasos (hablando de distribuciones GNU/Linux):

  • Lo primero es instalar el sistema gestor de bases de datos que usa esta herramienta, llamado postgresql, para ello:

    sudo apt-get install -y postgresql

  • Seguidamente toca descargar Metasploit Framework, para ello usaremos el siguiente comando que, a través de curl, descargará el contenido de msfupdate.erb y con una redirección lo enviaremos a un fichero llamado msfinstall, luego, usaremos el operador lógico && para indicar que, cuando termine la descarga y que el contenido se guarde en msfinstall, le asignaremos permisos en octal con chmod, en concreto 755 (rwxr-xr-x) y, finalmente, usaremos nuevamente el operador lógico && para ejecutar el fichero y así instalar Metasploit Framework:

    curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall

Imagen Instalación Metasploit

  • Luego de que ambos comandos se hayan ejecutado con éxito, podremos escribir msfconsole y acceder a Metasploit Framework:

Imagen Instalación Metasploit - 2

Comandos básicos Metasploit Framework

Seguidamente, debemos tener presente que, dentro de la línea de comandos que nos provee Metasploit Framework, tenemos una serie de comandos que nos permitirán trabajar con esta herramienta, abarcaremos los más fundamentales:

  • search: Destinado a buscar módulos.
  • show: Destinado a mostrar módulos dependiendo la categoría que indiquemos, por ejemplo:
    • show exploits: Mostrará todos los exploits.
    • show payloads: Mostrará todos los payloads.
    • show auxiliary: Mostrará todos los módulos auxiliares.
  • info: Destinado a mostrar información sobre el módulo seleccionado.
  • use: Destinado a seleccionar un módulo, la sintaxis es use (ruta al módulo) o use (número del módulo), esto último solo es válido cuando obtengamos una lista de módulos.
  • show options: Destinado a mostrar las opciones configurables de un módulo (también funciona solo ejecutando options).
  • set: Destinado a asignar un valor a una variable que necesite un módulo (con setg el valor permanece guardado, aunque se cambie de módulo)

Ejemplo de uso contra máquina Windows

Por otro lado, ya es hora de poner a prueba los conocimientos aprendidos anteriormente, vamos a hacer un ataque a una máquina Windows alojada en TryHackMe, que es una plataforma para practicar ciberseguridad de forma legal y controlada. Sobra decir que hacer uso de alguna técnica que se verá a continuación sobre un activo del que no se tenga permiso es un delito.

En este caso, se usará la máquina Blue que cuenta con la vulnerabilidad MS17-010 que podremos explotar usando el exploit llamado EternalBlue que está disponible en Metasploit Framework.

Enumeración básica de la máquina

Primeramente, se hará una enumeración básica de la máquina, para detectar el puerto donde corre el servicio que vamos a explotar, para ello, usaré nmap, con las banderas:

  • -sC: Destinada a lanzar todos los scripts con categoría “default”.

  • -sV: Destinada a detectar la versión de los servicios.

  • -T4: Destinada a acelerar más el escaneo (en auditorías reales no es recomendable porque es muy ruidoso, va del T1 al T5, mientras más alto el número, más rápido, ruidoso y propenso a falsos positivos, en este caso como es un entorno controlado, podemos usarlo sin problemas).

  • -p-: Destinada a que el escaneo se haga sobre todos los puertos (desde el 1 hasta el 65535).

Es una enumeración de ejemplo. Lo más idóneo es, primero detectar todos los puertos abiertos con otras banderas de nmap u otras herramientas como furious, y luego, a dichos puertos abiertos, hacerles un escaneo más profundo con nmap, por ejemplo, con las banderas -sC y -sV.

No he querido extenderme más en este tema, ya que, este artículo trata sobre Metasploit Framework, pero en el futuro hablaremos de forma más profunda sobre nmap.

Imagen escaneo con nmap

Con el resultado del escaneo en mente, procedemos abrir la consola de Metasploit Framework y empezar a usar varios módulos.

Explotación con Metasploit

Lo primero, será hacer uso de un módulo auxiliar para verificar si la máquina es vulnerable a la vulnerabilidad MS17-010 o no, para ello ejecutaremos en la consola el comando:

search type:auxiliary MS17-010

Imagen búsqueda de módulo auxiliar

En este punto, seleccionaremos el segundo, como es el resultado de una búsqueda, se le asigna un número de identidad, así que podemos ejecutar:

use 1

Al ejecutar este comando, conseguiremos que se seleccione este módulo auxiliar, seguidamente hay que ver que opciones nos pide, en este caso solo tendremos que proporcionar el RHOST (Remote Host) es decir, la dirección IP de la máquina víctima:

Imagen configuración auxiliar

Ahora, solo hay que ejecutarlo con run:

Imagen ejecución auxiliar

Y así de simple ya sabemos que la máquina efectivamente es vulnerable.

Seguidamente, toca explotar dicha vulnerabilidad, entonces toca buscar el exploit, para ello ejecutamos:

search type:exploit MS17-010

Imagen búsqueda exploit

Seleccionamos el primero con:

use 0

En este punto, toca añadirles valor a las variables del exploit, tanto RHOST, LHOST (Local Host, tu dirección IP), LPORT (Local Port, puerto donde llegará la shell reversa). Fíjate que, cuando seleccionamos el exploit, automáticamente se nos selecciona el payload meterpreter para windows que interactuará de forma reversa (nos permitirá tener una shell para interactuar con el sistema explotado):

Imagen configuración exploit

Con todo configurado, queda ejecutar el exploit y, si todo ha ido bien, ya podríamos tener acceso a la máquina víctima sin apenas haber hecho acciones complejas:

Imagen ejecución exploit

Así pues, ya viste lo sencillo que es vulnerar un activo con esta herramienta. Evidentemente este ejemplo ha sido muy básico, ya que esta herramienta tiene muchísimo que ofrecer y, actualmente, tampoco es muy común ver equipos que se puedan vulnerar de una forma tan simple, pero es importante tener en cuenta este tipo de herramientas a la hora de querer optimizar el tiempo y siempre sabiendo que pasa por detrás

Si quieres reforzar los conocimientos aprendidos ahora, puedes realizar el Taller Metasploit para pentesting y, cuando ya lo hayas realizado, puedes terminar de profundizar en la herramienta con el Curso de Metasploit Framework.

También te puede interesar...

Metasploit para pentesting

Metasploit para pentesting

32 minutos y 13 segundos · taller

  • Ciberseguridad
Curso de introducción a la Ciberseguridad

Curso de introducción a la Ciberseguridad

4 horas y 57 segundos · curso

  • Ciberseguridad
Curso de Metasploit

Curso de Metasploit Framework

4 horas y 19 minutos · curso

  • Ciberseguridad

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información.