XUT_ / COURSES / CYBER SECURITY 101

The Metasploit Database

Aunque no es necesario en TryHackMe, un escenario realista de pentesting probablemente tendrá varios objetivos.

Metasploit tiene una función de base de datos para simplificar el manejo de proyectos y evitar posibles confusiones al configurar parámetros.

NOTE

Los siguientes pasos han sido seguidos en la AttackBox de TryHackMe así que sólo deberás hacer esto si has instalado Metasploit tú mismo o estás usando tu propia máquina.

Primero debes lanzar PostgreSQL con el comando systemctl startpostgresql. Después tendremos que iniciar la base de datos de Metasploit usando el comando msfdb init. Intentar usar ese comando como root puede devolver un error, por lo que podemos ejecutarlo con el usuario postgres: sudo -u postgres msfdb init. Para borrar una base de datos: sudo -u postgres msfdb delete.

Una vez hecho esto puedes lanzar msfcosole y comprobar el estado de la base de datos usando el comando db_status.

La función de base de datos nos permitirá crear espacios de trabajo para aislar los diferentes proyectos. Puedes listar estos espacios usando el comando workspace.

Puedes añadir o eliminar estos añadiendo -a o -d, respectivamente. Para cambiar de uno a otro simplemente usa workspace seguido del nombre deseado. Puedes usar el comando workspace -h para listar las opciones de argumentos disponibles para workspace.

Si quieres hacer un escaneo de nmap, usa db_nmap para que los resultados queden guardados. Ahora puedes acceder a la información relevante sobre los hosts y los servicios con los comandos hosts y services. Añadiendo -h a estos comandos puedes ver las opciones que tienen.

Puedes usar el comando hosts -R para añadir el valor al parámetro RHOSTS.


Ejemplo de Flujo de Trabajo

  1. Usaremos el módulo de escaneo de vulnerabilidades que puede encontrar las vulnerabilidades MS17-010: use auxiliary/scanner/smb/smb_ms17_010.
  2. Configuramos el parámetro RHOSTS usando hosts -R.
  3. Escribimos show options para ver si los valores se asignaron correctamente.
  4. Una vez que todo está en su sitio, lanzamos el exploit usando run o exploit.

Si hay más de una dirección IP guardada en la base, todas serán usadas con el comando hosts -R.

En un caso típico de pentesting podríamos tener el siguiente escenario:

  • Encontramos hosts disponibles con el comando db_nmap.
  • Escaneamos estos para encontrar vulnerabilidades o puertos abiertos usando módulos.

El comando service usado con el parámetro -S (services -S netbios) te permite buscar servicios específicos en el entorno.

Te interesa buscar en puertos que tengan alguno de los siguientes servicios:

  • HTTP
  • SQL
  • FTP
  • SMB
  • SSH
  • RDP