Versione utilizzata
MacOS X 10.9.4
Xcode 5.1.1
MacPorts 2.3.1
Ruby 1.9.3
Postgresql 9.3.5
Metasploit 4.9.3
Metodo
Per evitare qualsiasi confusione tra i binari di sistema, MacPorts e Metasploit
è fondamentale iniziare a installare tutto in modo chiaramente separato
parte del filesystem.
Ecco le scelte che ho fatto:
/local/MacPorts initial install of MacPorts
/local/Metasploit install of Metasploit
/opt/local install of everything managed with MacPorts
Passi
I passaggi generali per installare completamente Metasploit sono:
- Xcode + strumenti da riga di comando
- MacPorts
- Rubino
- Postgresql
- Metasploit
1. Xcode + strumenti da riga di comando
2. MacPorts
-
Crea la struttura della directory iniziale (diciamo che il mio account è BOB ).
$ /usr/bin/sudo mkdir -p /local/MacPorts
$ /usr/bin/sudo chown BOB /local/MacPorts
-
Scarica l'ultimo tarball:
Da MacPorts :
MacPorts 2.3.1
per salvarlo sotto:
/local/MacPorts/MacPorts-2.3.1.tar.bz2
-
Estratto
$ cd /local/MacPorts
$ tar xvf MacPorts-2.3.1.tar.bz2
-
Configura, installa
$ /usr/bin/sudo mkdir -p /opt/local
$ cd MacPorts-2.3.1
$ ./configure --prefix=/opt/local
$ /usr/bin/sudo make install
port
non è nella mia PATH
, e questo è normale.
-
1st PATH
switch
(sto usando zsh
) inserisco all'interno di ${HOME}/.profile
, all'interno della sezione
che viene sempre eseguito e dopo ogni altra PATH
o MANPATH
definizione:
PATH=/opt/local/bin:/opt/local/sbin:${PATH}
export PATH
MANPATH=/opt/local/share/man:/usr/share/man
export MANPATH
PATH
opzione :
$ . ${HOME}/.profile
-
Aggiorna DB MacPorts
$ /usr/bin/sudo port -d selfupdate
port
nel mio PATH
, e questo è normale.
3. Rubino
-
Scarica, configura e installa ruby19
$ /usr/bin/sudo port install ruby19
$ /usr/bin/sudo port select ruby ruby19
controlla che tutto sia ok finora:
$ tipo rubino
/ Opt / local / bin / ruby
$ ruby --version
rubino 1.9.3p547 ...
-
Scarica, configura e installa bundler
$ gem install bundler
4. Postgresql
-
Scarica, configura e installa postgresql93
$ /usr/bin/sudo port install postgresql93-server
verrà visualizzata l'installazione corretta:
To create a database instance, after install do
sudo mkdir -p /opt/local/var/db/postgresql93/defaultdb
sudo chown postgres:postgres /opt/local/var/db/postgresql93/defaultdb
sudo su postgres -c '/opt/local/lib/postgresql93/bin/initdb -D /opt/local/var/db/postgresql93/defaultdb'
Semplicemente esegui questi 3 comandi e, all'avvio corretto del DB, postgresql
ti avviserà:
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
/opt/local/lib/postgresql93/bin/postgres -D /opt/local/var/db/postgresql93/defaultdb
or
/opt/local/lib/postgresql93/bin/pg_ctl -D /opt/local/var/db/postgresql93/defaultdb -l logfile start
-
Utilizza il launchd
plist installato da MacPorts
nel posto giusto:
$ /usr/bin/sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql93-server.plist
controlla che tutto sia ok finora:
$ telnet localhost 5432
Trying ::1...
Connected to localhost.
CTL + C
-
Proteggi postgresql
(un DB di vulnerabilità dovrebbe avere un accesso molto limitato)
$ cd /opt/local/var/db/postgresql93/defaultdb
modifica pg_hba.conf
per rimuovere le linee:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
e sostituiscili con:
local postgres postgres trust
local msf_db msf_user trust
Riavvia postgresql
in questa modalità limitata all'accesso tramite il socket del dominio UNIX.
$ /usr/bin/sudo launchctl stop org.macports.postgresql93-server
-
Seleziona la versione postgresql
corretta
$ /usr/bin/sudo port select postgresql postgresql93
-
Configura il DB Metasploit da utilizzare
Supponiamo che l'utente da utilizzare sarà msf_user
,
con password pass_pass
e il DB sarà msf_db
.
Passa all'utente postgres
:
$ /usr/bin/sudo /usr/bin/su postgres
$ createuser msf_user -p
Enter password for new role: pass_pass
Enter it again: pass_pass
$ createdb -O msf_user msf_db
Questi 2 comandi non mostreranno nulla, questo significa che tutto è OK.
5. Metasploit
-
Installa Metasploit
$ /usr/bin/sudo mkdir -p /local/Metasploit
$ /usr/bin/sudo chown BOB /local/Metasploit
$ cd /local/Metasploit
$ git clone --depth=1 git://github.com/rapid7/metasploit-framework .
-
2nd PATH
switch
Inserisci all'interno di ${HOME}/.profile
, all'interno della sezione
che viene sempre eseguito e dopo ogni altra PATH
o MANPATH
definizione:
PATH=/local/Metasploit:${PATH}
export PATH
PATH
opzione :
$ . ${HOME}/.profile
-
Aggiorna Metasploit
:
$ msfupdate
-
Configura l'accesso al DB:
$ cd /local/Metasploit/config
$ cp database.yml.example database.yml
$ vi database.yml
per includere questo blocco uniq:
production:
adapter: postgresql
database: msf_db
username: msf_user
password: pass_pass
port: 5432
pool: 75
timeout: 5
Per ottenere una connessione automatica ad ogni avvio, includi la seguente riga nello script di inizializzazione metasploit
:
$ cat >${HOME}/.msf4/msfconsole.rc <<eof
db_connect -y /local/Metasploit/config/database.yml
eof
-
Controlla che tutto funzioni:
$ msfconsole
msf > db_status
[*] postgresql connected to msf_db
msf >
-
Aiuta te stesso una tazza di champagne:).