Databases
Las bases de datos en msfconsole se utilizan para hacer un seguimiento de los resultados. No es un misterio que durante evaluaciones de máquinas más complejas, o incluso de redes enteras, las cosas pueden volverse confusas y complicadas debido a la gran cantidad de resultados de búsqueda, puntos de entrada, problemas detectados, credenciales descubiertas, etc.
Aquí es donde entran en juego las bases de datos. Msfconsole tiene soporte incorporado para el sistema de bases de datos PostgreSQL. Con ello, tenemos acceso directo, rápido y fácil a los resultados de los escaneos, con la capacidad añadida de importar y exportar resultados en conjunto con herramientas de terceros. Las entradas de la base de datos también pueden utilizarse para configurar los parámetros de los módulos de explotación con los hallazgos ya existentes directamente.
Configuración de la Base de Datos
Primero, debemos asegurarnos de que el servidor PostgreSQL esté en funcionamiento en nuestra máquina host. Para ello, introduce el siguiente comando:
Estado de PostgreSQL
sherlock28@htb[/htb]$ sudo service postgresql statusIniciar PostgreSQL
sherlock28@htb[/htb]$ sudo systemctl start postgresqlDespués de iniciar PostgreSQL, necesitamos crear e inicializar la base de datos de MSF con msfdb init.
MSF - Iniciar una Base de Datos
sherlock28@htb[/htb]$ sudo msfdb init[i] Database already started
[+] Creating database user 'msf'
[+] Creating databases 'msf'
[+] Creating databases 'msf_test'
[+] Creating configuration file '/usr/share/metasploit-framework/config/database.yml'
[+] Creating initial database schema
rake aborted!
NoMethodError: undefined method `without' for #<Bundler::Settings:0x000055dddcf8cba8>
Did you mean? with_options
<SNIP>A veces, puede ocurrir un error si Metasploit no está actualizado. Esta diferencia que causa el error puede suceder por varias razones. A menudo, ayuda actualizar Metasploit nuevamente (apt update) para resolver este problema. Luego, podemos intentar reinicializar la base de datos de MSF.
Si la inicialización se omite y Metasploit nos informa que la base de datos ya está configurada, podemos volver a verificar el estado de la base de datos.
Si este error no aparece, lo que a menudo sucede después de una instalación nueva de Metasploit, entonces veremos lo siguiente al inicializar la base de datos:
Después de que la base de datos haya sido inicializada, podemos iniciar msfconsole y conectarnos a la base de datos creada simultáneamente.
MSF - Conectar a la Base de Datos Iniciada
Sin embargo, si ya tenemos la base de datos configurada y no podemos cambiar la contraseña del usuario de MSF, procedemos con los siguientes comandos:
MSF - Reinitiar la Base de Datos
Comprobando el Estado de la Base de Datos
Ahora estamos listos para continuar. Msfconsole también ofrece ayuda integrada para la base de datos, lo que nos brinda una buena visión general de cómo interactuar y usar la base de datos.
MSF - Opciones de Base de Datos
Comprobando el Estado de la Base de Datos
Usando la Base de Datos
Con la ayuda de la base de datos, podemos gestionar muchas categorías diferentes y hosts que hemos analizado. Alternativamente, la información sobre ellos que hemos interactuado usando Metasploit. Estas bases de datos pueden ser exportadas e importadas. Esto es especialmente útil cuando tenemos listas extensas de hosts, loot, notas y vulnerabilidades almacenadas para estos hosts. Después de confirmar que la base de datos está conectada correctamente, podemos organizar nuestros Workspaces.
Workspaces
Podemos pensar en los Workspaces de la misma manera que pensamos en carpetas en un proyecto. Podemos segregar los diferentes resultados de escaneo, hosts e información extraída por IP, subred, red o dominio.
Para ver la lista actual de Workspaces, usa el comando workspace. Agregar un switch -a o -d después del comando, seguido del nombre del workspace, añadirá o eliminará ese workspace de la base de datos.
Nota que el Workspace predeterminado se llama default y está actualmente en uso según el símbolo *. Escribe el comando workspace [nombre] para cambiar al workspace actualmente usado. Mirando nuestro ejemplo, creemos un workspace para esta evaluación y seleccionémoslo.
Para ver qué más podemos hacer con los Workspaces, podemos usar el comando workspace -h para el menú de ayuda relacionado con los Workspaces.
Importando Resultados de Escaneo
A continuación, supongamos que queremos importar un escaneo de Nmap de un host a nuestro Workspace de la base de datos para comprender mejor el objetivo. Podemos usar el comando db_import para esto. Después de que la importación se complete, podemos comprobar la presencia de la información del host en nuestra base de datos utilizando los comandos hosts y services. Ten en cuenta que el tipo de archivo .xml es preferido para db_import.
Escaneo Nmap Almacenado
Importando Resultados de Escaneo
Usando Nmap Dentro de MSFconsole
Alternativamente, podemos usar Nmap directamente desde msfconsole. Para escanear directamente desde la consola sin tener que poner en segundo plano o salir del proceso, utiliza el comando db_nmap.
Comando de Nmap
Después de realizar el escaneo, puedes listar los hosts y servicios descubiertos:
Copia de Seguridad de Datos
Después de finalizar la sesión, asegúrate de hacer una copia de seguridad de nuestros datos en caso de que ocurra algo con el servicio PostgreSQL. Para hacerlo, utiliza el comando db_export.
Esta información puede ser importada nuevamente en msfconsole cuando sea necesario.
Hosts
El comando hosts muestra una tabla de base de datos que se llena automáticamente con las direcciones de los hosts, nombres de host y otra información que encontramos durante nuestros escaneos e interacciones.
Servicios
El comando services funciona de manera similar al anterior y contiene una tabla con descripciones e información sobre los servicios descubiertos durante escaneos o interacciones.
Credenciales
El comando creds permite visualizar las credenciales recopiladas durante nuestras interacciones con el host objetivo.
Loot
El comando loot trabaja en conjunto con el comando anterior para ofrecer una lista de servicios y usuarios comprometidos. Loot se refiere a volcado de hashes de diferentes tipos de sistema, incluidos hashes, passwd, shadow, entre otros.
Last updated
Was this helpful?