Versión utilizada
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
Método
Para evitar cualquier confusión entre los binarios del sistema, MacPorts y Metasploit
Es fundamental comenzar a instalar todo en forma claramente separada.
parte del sistema de archivos.
Estas son las opciones que tomé:
/local/MacPorts initial install of MacPorts
/local/Metasploit install of Metasploit
/opt/local install of everything managed with MacPorts
Pasos
Los pasos generales para instalar Metasploit completamente son:
- Xcode + herramientas de línea de comando
- MacPorts
- Ruby
- Postgresql
- Metasploit
1. Xcode + herramientas de línea de comando
2. MacPorts
-
Cree la estructura de directorio inicial (digamos que mi cuenta es BOB ).
$ /usr/bin/sudo mkdir -p /local/MacPorts
$ /usr/bin/sudo chown BOB /local/MacPorts
-
Descarga el último archivo tar:
De MacPorts :
MacPorts 2.3.1
para guardarlo en:
/local/MacPorts/MacPorts-2.3.1.tar.bz2
-
Extraer
$ cd /local/MacPorts
$ tar xvf MacPorts-2.3.1.tar.bz2
-
Configurar, instalar
$ /usr/bin/sudo mkdir -p /opt/local
$ cd MacPorts-2.3.1
$ ./configure --prefix=/opt/local
$ /usr/bin/sudo make install
port
no está en mi PATH
, y esto es normal.
-
1st PATH
switch
(Estoy usando zsh
) Insertar dentro de ${HOME}/.profile
, dentro de la sección
que siempre se ejecuta y después de cualquier otra definición PATH
o MANPATH
:
PATH=/opt/local/bin:/opt/local/sbin:${PATH}
export PATH
MANPATH=/opt/local/share/man:/usr/share/man
export MANPATH
PATH
switch :
$ . ${HOME}/.profile
-
Actualizar MacPorts DB
$ /usr/bin/sudo port -d selfupdate
port
en mi PATH
, y esto es normal.
3. Ruby
-
Descargue, configure e instale ruby19
$ /usr/bin/sudo port install ruby19
$ /usr/bin/sudo port select ruby ruby19
comprueba que todo está bien hasta el momento:
$ type ruby
/ opt / local / bin / ruby
$ ruby --version
ruby 1.9.3p547 ...
-
Descargue, configure e instale bundler
$ gem install bundler
4. Postgresql
-
Descargue, configure e instale postgresql93
$ /usr/bin/sudo port install postgresql93-server
se mostrará la instalación correcta:
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'
Simplemente ejecute estos 3 comandos, y en la inicialización correcta de la base de datos, postgresql
le avisará:
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
-
Use el launchd
plist instalado por MacPorts
en el lugar correcto:
$ /usr/bin/sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql93-server.plist
comprueba que todo está bien hasta ahora:
$ telnet localhost 5432
Trying ::1...
Connected to localhost.
ctl+C
-
Secure postgresql
(una base de datos de vulnerabilidades debe ser de acceso muy restringido)
$ cd /opt/local/var/db/postgresql93/defaultdb
edite pg_hba.conf
para eliminar las líneas:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
y reemplázalos con:
local postgres postgres trust
local msf_db msf_user trust
Reinicie postgresql
en este modo con acceso limitado a través del socket de dominio UNIX.
$ /usr/bin/sudo launchctl stop org.macports.postgresql93-server
-
Seleccione la versión postgresql
correcta
$ /usr/bin/sudo port select postgresql postgresql93
-
Configure la base de datos Metasploit para utilizar
Digamos que el usuario que usará será msf_user
,
con la contraseña pass_pass
y el DB será msf_db
.
Cambia al usuario 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
Estos 2 comandos no mostrarán nada, esto significa que todo está bien.
5. Metasploit
-
Instalar 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
Insertar dentro de ${HOME}/.profile
, dentro de la sección
que siempre se ejecuta y después de cualquier otra definición PATH
o MANPATH
:
PATH=/local/Metasploit:${PATH}
export PATH
PATH
switch :
$ . ${HOME}/.profile
-
Actualizar Metasploit
:
$ msfupdate
-
Configure el acceso a la base de datos:
$ cd /local/Metasploit/config
$ cp database.yml.example database.yml
$ vi database.yml
para incluir allí este bloque uniq:
production:
adapter: postgresql
database: msf_db
username: msf_user
password: pass_pass
port: 5432
pool: 75
timeout: 5
Para obtener una conexión automática en cada inicio, incluya la siguiente línea en el script de inicialización metasploit
:
$ cat >${HOME}/.msf4/msfconsole.rc <<eof
db_connect -y /local/Metasploit/config/database.yml
eof
-
Comprueba que todo funciona:
$ msfconsole
msf > db_status
[*] postgresql connected to msf_db
msf >
-
Sírvete una taza de champaign :).