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.
Comprendiendo el Framework Metasploit
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:
- 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.
- Auxiliary: Este módulo incluye diversas herramientas de soporte, como escáneres, fuzzer y utilidades de manipulación de protocolos.
- Encoders: Estos módulos se utilizan para ofuscar o codificar las cargas útiles (payloads) para eludir mecanismos de seguridad como software antivirus o firewalls.
- Payloads: Estos módulos contienen el código que se ejecuta en el sistema objetivo después de una explotación exitosa.
- 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.
Navegación básica y exploración de módulos
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.