Explora los Fundamentos de Metasploit Framework

Beginner

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos los conceptos fundamentales y el uso del Metasploit Framework, una poderosa herramienta de pruebas de penetración de código abierto. Metasploit ofrece una plataforma integral para identificar y explotar vulnerabilidades en diversos sistemas y aplicaciones. El objetivo de este laboratorio es familiarizarte con los componentes principales de Metasploit, sus metodologías de ataque y las técnicas básicas de uso.


Skills Graph

Comprender el Metasploit Framework

En este paso, introduciremos el Metasploit Framework, su arquitectura y conceptos fundamentales.

Metasploit es un potente y ampliamente utilizado framework de pruebas de penetración desarrollado en Ruby. Consiste en varios componentes, incluyendo módulos, interfaces, complementos, utilidades y bibliotecas. El framework está diseñado para ser modular, lo que permite la reutilización del código y la extensibilidad.

El Metasploit Framework está organizado en varios módulos clave:

  1. Exploits: Estos son módulos de código que aprovechan las vulnerabilidades en los sistemas objetivo para obtener acceso no autorizado o ejecutar código arbitrario.
  2. Auxiliary: Este módulo incluye diversas herramientas de soporte, como escáneres, fuzzer y utilidades de manipulación de protocolos.
  3. Encoders: Estos módulos se utilizan para ofuscar o codificar las cargas útiles (payloads) para eludir mecanismos de seguridad como software antivirus o firewalls.
  4. Payloads: Estos módulos contienen el código que se ejecuta en el sistema objetivo después de una explotación exitosa.
  5. Post-Exploitation: Estos módulos proporcionan funcionalidades para mantener el acceso y realizar acciones adicionales en el sistema comprometido.

Metasploit ofrece varias interfaces para interactuar con el framework, incluyendo una interfaz de línea de comandos (msfconsole), una interfaz basada en web (Metasploit Web UI) y una interfaz de línea de comandos (Metasploit Command Line).

Primero, iniciemos el entorno de laboratorio. Inicie Metasploitable2 haciendo doble clic en la terminal xfce del escritorio y escribiendo el siguiente comando en la terminal:

sudo virsh start Metasploitable2

Espere a que la máquina objetivo se inicie, puede tardar de 1 a 3 minutos.

Ping a la máquina objetivo para asegurarse de que está en funcionamiento (presione Ctrl-C para salir del ping):

ping 192.168.122.102

Luego, iniciemos el contenedor Kali y accedamos a la interfaz bash, ejecute la operación de ping para verificar la conectividad de red:

docker run -ti --network host b5b709a49cd5 bash

Ahora, podemos ejecutar la operación de ping para verificar la conectividad de red (presione Ctrl-C para salir del ping):

ping 192.168.122.102

Ahora, podemos iniciar la consola de Metasploit:

cd ~
msfconsole

En los siguientes pasos, exploraremos el uso básico de la consola de Metasploit y realizaremos diversas tareas.

En este paso, aprenderemos cómo navegar por la consola de Metasploit y explorar los módulos disponibles.

La consola de Metasploit proporciona una interfaz de línea de comandos para interactuar con el framework. Aquí están algunos comandos básicos:

  • help: Muestra una lista de comandos disponibles y sus descripciones.
  • search [keyword]: Busca módulos basados en la palabra clave proporcionada.

Busquemos módulos relacionados con Linux en la consola de Metasploit:

search linux

Este comando listará todos los módulos relacionados con vulnerabilidades y exploits de Linux.

Para seleccionar un módulo específico, use el comando use seguido de la ruta del módulo en la consola de Metasploit:

use auxiliary/analyze/jtr_linux

Una vez seleccionado un módulo, puede ver sus opciones y parámetros requeridos usando el comando show options en la consola de Metasploit:

show options

Aquí hay un ejemplo de la salida que podría ver:

Module options (auxiliary/analyze/jtr_linux):

   Name                  Current Setting  Required  Description
   ----                  ---------------  --------  -----------
   BLOWFISH              false            no        Include BLOWFISH hashes (Very Slow)
   BSDI                  true             no        Include BSDI hashes
   CONFIG                                 no        The path to a John config file to use instead of the default
   CRACKER_PATH                           no        The absolute path to the cracker executable
   CUSTOM_WORDLIST                        no        The path to an optional custom wordlist
   DES                   true             no        Indlude DES hashes
   FORK                  1                no        Forks for John the Ripper to use
   INCREMENTAL           true             no        Run in incremental mode
   ITERATION_TIMEOUT                      no        The max-run-time for each iteration of cracking
   KORELOGIC             false            no        Apply the KoreLogic rules to John the Ripper Wordlist Mode(slower)
   MD5                   true             no        Include MD5 hashes
   MUTATE                false            no        Apply common mutations to the Wordlist (SLOW)
   POT                                    no        The path to a John POT file to use instead of the default
   SHA256                false            no        Include SHA256 hashes (Very Slow)
   SHA512                false            no        Include SHA512 hashes (Very Slow)
   USE_CREDS             true             no        Use existing credential data saved in the database
   USE_DB_INFO           true             no        Use looted database schema info to seed the wordlist
   USE_DEFAULT_WORDLIST  true             no        Use the default metasploit wordlist
   USE_HOSTNAMES         true             no        Seed the wordlist with hostnames from the workspace
   USE_ROOT_WORDS        true             no        Use the Common Root Words Wordlist
   WORDLIST              true             no        Run in wordlist mode


Auxiliary action:

   Name  Description
   ----  -----------
   john  Use John the Ripper

Presione Ctrl+D para salir de la consola de Metasploit y luego inicie la inspección

Configuración de Opciones de Módulo

En este paso, aprenderemos cómo configurar opciones para un módulo seleccionado en Metasploit.

En primer lugar, si no está en la consola de Metasploit, debe iniciar la consola de Metasploit:

cd ~
msfconsole

Seleccione un módulo:

use auxiliary/analyze/jtr_linux

Muchos módulos requieren que se configuren opciones específicas antes de que puedan ejecutarse. Puede configurar una opción utilizando el comando set seguido del nombre de la opción y su valor en la consola de Metasploit, como set OPTION_NAME value.

Por ejemplo, configuremos la opción JOHN_PATH para el módulo jtr_linux en la consola de Metasploit:

set JOHN_PATH /usr/share/metasploit-framework/data/wordlists/password.lst

También puede usar el comando setg para configurar una opción global que se mantendrá a través de los cambios de módulo.

Después de configurar las opciones requeridas, puede ejecutar el módulo utilizando el comando run o exploit en la consola de Metasploit, dependiendo del tipo de módulo.

run

o

exploit

Para volver al contexto padre o salir del módulo actual, use el comando back.

Presione Ctrl+D para salir de la consola de Metasploit y luego inicie la inspección

Explotación de una Vulnerabilidad

En este paso, simularemos un escenario del mundo real y intentaremos explotar una vulnerabilidad en un sistema objetivo.

En primer lugar, si no está en la consola de Metasploit, debe iniciar la consola de Metasploit:

cd ~
msfconsole

Supongamos que hemos identificado un servidor MySQL vulnerable en la dirección IP objetivo 192.168.122.102. Podemos usar el módulo mysql_login para intentar un ataque de fuerza bruta contra las credenciales de MySQL.

Seleccione el módulo mysql_login en la consola de Metasploit:

use auxiliary/scanner/mysql/mysql_login

A continuación, configure las opciones requeridas en la consola de Metasploit:

set RHOSTS 192.168.122.102
set user_file /path/to/usernames.txt
set pass_file /path/to/passwords.txt

Finalmente, ejecute el módulo en la consola de Metasploit:

exploit

Metasploit intentará iniciar sesión en el servidor MySQL utilizando las combinaciones de nombres de usuario y contraseñas proporcionadas en los archivos especificados. Los nombres de usuario y contraseñas que proporcionamos son solo ejemplos, es posible que el inicio de sesión falle. Debe reemplazarlos con los nombres de usuario y contraseñas reales.

Presione Ctrl+D para salir de la consola de Metasploit y luego inicie la inspección

Tareas de Post-Explotación

En este paso, exploraremos los módulos de post-explotación disponibles en Metasploit, que se pueden utilizar para mantener el acceso y realizar acciones adicionales en un sistema comprometido.

Después de explotar con éxito una vulnerabilidad y obtener acceso al sistema objetivo, puede utilizar los módulos de post-explotación para realizar diversas tareas, como:

  • Recopilar información del sistema
  • Elevar privilegios
  • Mantener un acceso persistente
  • Realizar pivote hacia otros sistemas

En primer lugar, si no está en la consola de Metasploit, debe iniciar la consola de Metasploit:

cd ~
msfconsole

Para utilizar un módulo de post-explotación, siga los mismos pasos que con otros tipos de módulos en la consola de Metasploit:

use post/windows/gather/enum_logged_on_users
show options

Aquí hay un ejemplo de la salida que podría ver:

Module options (post/windows/gather/enum_logged_on_users):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   CURRENT  true             yes       Enumerate currently logged on users
   RECENT   true             yes       Enumerate recently logged on users
   SESSION                   yes       The session to run this module on
set SESSION 1
exploit

Este módulo de ejemplo enumera los usuarios conectados en un sistema Windows, pero Metasploit ofrece muchos otros módulos de post-explotación para diversas plataformas y tareas.

Presione Ctrl+D para salir de la consola de Metasploit y luego inicie la inspección

Resumen

En este laboratorio, exploramos el Framework Metasploit, una herramienta poderosa para pruebas de penetración y evaluación de vulnerabilidades. Aprendimos sobre los componentes principales de Metasploit, como exploits, payloads y módulos auxiliares. También practicamos la navegación por la consola de Metasploit, la búsqueda de módulos, la configuración de opciones y la ejecución de módulos para explotar vulnerabilidades y realizar tareas de post-explotación.

Metasploit ofrece una plataforma integral y versátil para hackers éticos, profesionales de seguridad e investigadores, que les permite identificar y mitigar vulnerabilidades de seguridad. Al comprender y practicar con Metasploit, puede mejorar sus habilidades en pruebas de penetración, análisis de vulnerabilidades y evaluación general de seguridad.