Metasploit Framework

In keeping with the Kali Linux Network Services Policy, no network services, including database services, run on boot as a default, so there are a couple of steps that need to be taken in order to get Metasploit up and running with database support.

Quick way

You an have everything up and running, by starting the PostgreSQL service and set it up just by doing:

:~$ sudo msfdb init
[+] Starting database
[+] 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
:~$

You can even take it one step further by doing sudo msfdb run and it will do the same as the above, as well as start msfconsole afterwards

MSFDB

To help interactive with various parts of the Metasploit configuration there is msfdb:

:~$ sudo msfdb

Manage the metasploit framework database

  msfdb init     # start and initialize the database
  msfdb reinit   # delete and reinitialize the database
  msfdb delete   # delete database and stop using it
  msfdb start    # start the database
  msfdb stop     # stop the database
  msfdb status   # check service status
  msfdb run      # start the database and run msfconsole

:~$

Please note: this is a different version of msfdb that is shipped with the default project

Start the Kali PostgreSQL Service

Start the Kali PostgreSQL Service

Metasploit uses PostgreSQL as its database so it needs to be launched first:

You can verify that PostgreSQL is running by checking the output of ss -ant and making sure that port 5432 is listening, or using sudo msfdb status:

Initialize the Metasploit PostgreSQL Database

With PostgreSQL up and running, we next need to create and initialize the msf database:

Launch msfconsole in Kali

Now that the PostgreSQL service is up and running and the database is initialized, you can launch msfconsole and verify database connectivity with the db_status command as shown below:

Last updated

Was this helpful?