Arquitectura y configuración de la base de datos

CiberseguridadBeginner
Practicar Ahora

Introducción

Metasploit Framework es una herramienta potente utilizada por profesionales de la seguridad para realizar pruebas de penetración y desarrollo de vulnerabilidades. Un componente central de su arquitectura es la base de datos backend, generalmente PostgreSQL.

Esto merece ser enfatizado porque Metasploit no es solo una colección de exploits; es una plataforma de flujo de trabajo. La base de datos, los módulos, las sesiones y los espacios de trabajo existen para ayudarte a gestionar un compromiso a medida que se vuelve más complejo.

Integrar una base de datos con Metasploit te permite almacenar, buscar y gestionar de manera eficiente los datos recopilados durante tus evaluaciones. Esto incluye hosts descubiertos, puertos abiertos, servicios en ejecución y credenciales extraídas. Al utilizar espacios de trabajo, puedes separar lógicamente estos datos para diferentes proyectos o redes objetivo, asegurando que tu flujo de trabajo de pruebas de penetración se mantenga limpio y organizado.

Sin esa estructura, una evaluación de gran escala se vuelve difícil de gestionar rápidamente. La base de datos convierte comandos aislados en conocimiento persistente que puedes revisar y correlacionar.

En este laboratorio, aprenderás a inicializar la base de datos PostgreSQL, interactuar con la interfaz principal de Metasploit (msfconsole), gestionar espacios de trabajo de proyectos y poblar tu base de datos utilizando herramientas de escaneo integradas.

Inicializar la base de datos PostgreSQL

En este paso, inicializarás la base de datos PostgreSQL para Metasploit. La base de datos es un componente crucial de la arquitectura de Metasploit Framework. Almacena tu configuración, espacios de trabajo, hosts descubiertos, servicios y credenciales, lo que permite una gestión eficiente de los datos durante las pruebas de penetración.

Primero, asegúrate de que el servicio PostgreSQL esté en ejecución. Utiliza el siguiente comando para iniciar el servicio:

sudo systemctl start postgresql

A continuación, inicializa la base de datos de Metasploit. Este comando crea una nueva base de datos, configura un usuario de base de datos dedicado para Metasploit y genera los archivos de configuración necesarios en tu directorio personal:

msfdb init

Deberías ver una salida que indica que la base de datos se ha creado y configurado correctamente. La configuración se guarda en un directorio oculto en ~/.msf4/database.yml.

Iniciar msfconsole y verificar el estado de la base de datos

En este paso, iniciarás la consola de Metasploit Framework (msfconsole) y verificarás que se haya conectado correctamente a la base de datos PostgreSQL.

Es mejor considerar msfconsole como el centro de comando del framework. Una vez que la base de datos está conectada, las acciones realizadas en la consola pueden enriquecer un modelo interno compartido del compromiso.

msfconsole es la interfaz de línea de comandos principal para interactuar con Metasploit Framework. Proporciona una consola centralizada para acceder a todos los módulos, payloads y funciones de la base de datos.

Inicia la consola en modo silencioso (para omitir el banner de inicio de arte ASCII) ejecutando el siguiente comando en tu terminal:

msfconsole -q

Una vez que la consola cargue, tu prompt cambiará a msf6 >, lo que indica que ahora estás dentro del entorno de Metasploit.

Verifica el estado de la conexión a la base de datos escribiendo el siguiente comando dentro de la consola:

db_status

Deberías ver una salida similar a la siguiente, confirmando la conexión:

[*] Connected to msf. Connection type: postgresql.

Puedes mantener msfconsole abierta para los siguientes pasos.

Crear y gestionar espacios de trabajo

En este paso, aprenderás a crear y gestionar espacios de trabajo (workspaces). Los espacios de trabajo te permiten separar lógicamente tus datos de pruebas de penetración. Por ejemplo, puedes tener diferentes espacios de trabajo para distintos clientes o redes objetivo, asegurando que los hosts y las credenciales no se mezclen.

Asegúrate de seguir dentro del prompt de msfconsole (msf6 >). Si saliste, simplemente escribe msfconsole -q para volver a entrar.

Para ver los espacios de trabajo actuales, escribe:

workspace

Verás un espacio de trabajo llamado default marcado con un asterisco (*), lo que indica que es el espacio de trabajo activo actualmente.

Ahora, crea un nuevo espacio de trabajo llamado project_alpha usando el flag -a (add):

workspace -a project_alpha

La consola cambiará automáticamente al espacio de trabajo recién creado. Puedes verificar esto ejecutando el comando workspace nuevamente:

workspace

Deberías ver * project_alpha en la salida, confirmando que tu nuevo espacio de trabajo está activo y listo para almacenar datos.

Importar escaneos de Nmap al espacio de trabajo

En este paso, poblarás la base de datos de tu espacio de trabajo ejecutando un escaneo de Nmap directamente desde Metasploit.

Metasploit proporciona el comando db_nmap, que ejecuta la herramienta Nmap estándar pero importa automáticamente los resultados del escaneo (hosts, puertos y servicios) a la base de datos del espacio de trabajo activo.

Dentro de tu msfconsole (asegúrate de estar todavía en el espacio de trabajo project_alpha), ejecuta un escaneo rápido contra tu máquina local (127.0.0.1). En esta configuración de laboratorio, PostgreSQL es el servicio que sabemos que está en ejecución, por lo que escanearemos su puerto predeterminado, 5432.

db_nmap -sV -p 5432 127.0.0.1

Espera unos momentos a que se complete el escaneo. Una vez finalizado, puedes ver los hosts descubiertos que se han almacenado automáticamente en la base de datos:

hosts

Para ver los servicios específicos y los puertos abiertos descubiertos durante el escaneo, utiliza el comando services:

services

Verás una tabla estructurada que muestra la IP del host, el puerto, el protocolo, el estado y el nombre del servicio. Debido a que escaneamos el puerto 5432, deberías ver una entrada de servicio relacionada con PostgreSQL en lugar de HTTP o SSH.

Has inicializado correctamente la base de datos, gestionado los espacios de trabajo e importado datos de escaneo. Para salir de la consola de Metasploit y volver a tu terminal de Linux estándar, escribe:

exit

Resumen

¡Felicidades! Has completado con éxito el laboratorio de Arquitectura y configuración de la base de datos.

Has aprendido a inicializar la base de datos PostgreSQL para Metasploit Framework, iniciar msfconsole y verificar la conectividad de la base de datos. Además, dominaste la creación y gestión de espacios de trabajo para mantener aislados los datos de tus proyectos, y utilizaste db_nmap para escanear objetivos e importar los resultados directamente a tu base de datos. Estas habilidades fundamentales son esenciales para mantener flujos de trabajo de pruebas de penetración organizados y eficientes.