¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Metasploit
  3. La base de datos de Metasploit
Extrait - Metasploit Verifique la seguridad de sus infraestructuras
Extractos del libro
Metasploit Verifique la seguridad de sus infraestructuras
1 opinión
Volver a la página de compra del libro

La base de datos de Metasploit

Introducción

Durante las pruebas de intrusión, es raro tener una sola máquina para auditar las acciones que se deben tomar suelen ser las mismas entre varios sistemas del perímetro. Para ahorrar tiempo en estas situaciones, Metasploit viene con una base de datos PostgreSQL, que permite automatizar un montón de acciones y ahorrar mucho tiempo.

Los comandos relacionados con la base de datos se pueden enumerar utilizando el comando help database:

msf6 > help database   
  
Command          Description   
-------          -----------   
db_connect       Connect to an existing database   
db_disconnect    Disconnect from the current database instance  
db_export        Export a file containing the content of the database  
db_import        Import a scan result file   
db_nmap          Executes nmap and records the output automatically  
db_rebuild_cache Rebuilds the database-stored module cache  
db_status        Show the current database status   
hosts            List...

Inicialización de la base de datos

Durante la primera conexión en Kali, es necesario arrancar la base de datos PostgreSQL e inicializarla para evitar este tipo de mensaje de error:

msf6 > msfconsole   
  
[-] Failed to connect to the database: could not connect to server: 
Connection refused   
    Is the server running on host "localhost" (::1) and accepting  
    TCP/IP connections on port 5432?  
could not connect to server: Connection refused   
    Is the server running on host "localhost" (127.0.0.1) and accepting  
    TCP/IP connections on port 5432? 

El comando db_status permite comprobar que se ha establecido la conexión entre el framework y la base de datos:

msf6 > db_status   
[*] postgresql selected, no connection 

Para arrancar e inicializar la base de datos, puede utilizar el comando msfdb init:

root@kali:~# msfdb init   
[+] Starting database   
[+] Creating database user 'msf'   
[+] Creating databases 'msf'   
[+] Creating databases 'msf_test'   
[+] Creating configuration file '   
[+] Creating initial database schema   
  
  
msf6 > db_status   
[*] postgresql connected to msf 

Los elementos de configuración...

Los espacios de trabajo

Los espacios de trabajo (workspaces) se utilizan para separar el conjunto de datos. Esto permite segmentar de manera lógica los datos que se van a probar. Por lo tanto, es posible crear un espacio de trabajo por subred que se va a auditar, en el caso de una auditoría por segmentación. Esto también hace posible que no sea necesario tener varias bases de datos en caso de que se realicen varias pruebas de intrusión en paralelo.

Con la creación de los diferentes espacios de trabajo, se hace mucho más fácil importar, manipular y exportar datos.

Los espacios de trabajo permiten segmentar y administrar hosts y los datos almacenados en la base de datos. Puede utilizar espacios de trabajo para crear una separación lógica para cada segmento que desee probar. Por ejemplo, se puede crear un espacio de trabajo para cada subred de una organización a fin de limitar los hosts a una red específica. Por lo tanto, departamentos como recursos humanos, informática y contabilidad, tendrían cada uno su propio espacio de trabajo.

De forma predeterminada, el conjunto de datos está dentro del mismo espacio de trabajo, que se puede listar mediante el comando workspace:

msf> workspace   
* default 

1. Crear un espacio de trabajo

El objetivo es compartimentar los datos. Para hacerlo, es necesario crear espacios de trabajo. Esto se hace simplemente mediante el comando...

Importación y exportación de datos

Compartimentar los datos dentro de los espacios de trabajo es un primer paso importante. Sin embargo, una vez creados estos espacios, también es necesario integrar los datos con los que se va a trabajar.

1. Importar datos

a. Importar datos existentes

El comando db_import permite importar archivos que provienen de muchas herramientas de terceros, como Acunetix, Nessus, Burp o incluso Nmap. Por lo tanto, los auditores pueden realizar escaneos usando las herramientas que mejor dominan e integrarlas dentro del Framework Metasploit para consolidar todos los resultados.

Los archivos que se pueden importar se pueden obtener utilizando el comando db_import -h:

msf6 > db_import -h   
Usage: db_import <filename> [file2...]   
  
Currently supported file types include:   
   Acunetix   
   Amap Log   
   Amap Log -m   
   Appscan   
   Burp Session XML   
   Burp Issue XML   
   [...] 

Para poder utilizar toda la potencia de los escaneos realizados por Nmap, es necesario exportar los escaneos de Nmap en formato XML (-oX) antes de importarlos a Metasploit:

root@kali:~# nmap -oX scope.xml 192.168.0.0/24   
[...]   
  
msf6 > db_import internal_scope.xml   
[*] Importing 'Nmap XML' data   
[*] Import: Parsing with 'Nokogiri v1.8.4'   
[*] Importing host 192.168.0.1   
[*] Importing host 192.168.0.2   
[*] Importing host 192.168.0.34   
[*] Importing host 192.168.0.35   
[*] Successfully imported /root/Desktop/scope.xml 

En caso de que se vayan a importar varios tipos de archivos, el comando db_import reconocerá el tipo de cada archivo automáticamente:

msf6 > db_import .* 

b. Importar datos durante la fase de escaneo

También es posible agregar automáticamente los escaneos Nmap a la base de datos del Framework usando el comando db_nmap.

Este comando es un «wrapper» del comando Nmap, por lo que es posible usarlo exactamente de la misma manera.

msf6 > db_nmap -sV --open 192.168.171.128  
[*] Nmap: Starting Nmap 7.60 ( https://nmap.org ) at 2019-01-11 21:30 CET 
[*] Nmap: Nmap scan report for 192.168.171.128   
[*] Nmap: Host is up (0.00086s latency)....

Los hosts y los servicios

Los datos ahora están integrados y categorizados en los diferentes espacios de trabajo. Por lo tanto, es posible utilizar toda la potencia de la base de datos del Framework, especialmente con los comandos hosts y services.

1. Los hosts

El comando hosts permite mostrar toda la información sobre las máquinas presentes en la base de datos como resultado de su importación.

msf6 > hosts -h   
Usage: hosts [ options ] [addr1 addr2 ...]   
  
OPTIONS:   
 -a,--ad           Add the hosts instead of searching   
 -d,--delete       Delete the hosts instead of searching   
 -c <col1,col2>    Only show the given columns (see list below) 
 -C <col1,col2>    Only show the given columns until the 
next restart  
 -h,--help         Show this help information   
 -u,--up           Only show hosts which are up   
 -o <file>         Send output to a file in csv format   
 -O <column>       Order rows by specified column number   
 -R,--rhosts       Set RHOSTS from the results of the search   
 -S,--search       Search string to filter by   
 -i,--info         Change the info of a host   
 -n,--name         Change the name of a host   
 -m,--comment      Change the comment of a host   
 -t,--tag          Add or specify a tag to a range of hosts   
  
Available columns: address, arch, comm, comments, created_at,  
cred_count, detected_arch, exploit_attempt_count,  
host_detail_count, info, mac, name, note_count, os_family,  
os_flavor, os_lang, os_name, os_sp, purpose, scope,  
service_count, state, updated_at, virtual_host, vuln_count, tags 

La importación...