Interesting Groups - Linux Privesc
Last updated
Last updated
Lernen Sie und üben Sie AWS-Hacking: HackTricks Training AWS Red Team Expert (ARTE) Lernen Sie und üben Sie GCP-Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Manchmal finden Sie standardmäßig (oder weil einige Software dies benötigt) in der Datei /etc/sudoers einige dieser Zeilen:
Dies bedeutet, dass jeder Benutzer, der zur Gruppe sudo oder admin gehört, alles als sudo ausführen kann.
Wenn dies der Fall ist, können Sie einfach Folgendes ausführen, um Root zu werden:
Finde alle suid-Binärdateien und überprüfe, ob die Binärdatei Pkexec vorhanden ist:
Wenn Sie feststellen, dass das Binärprogramm pkexec ein SUID-Binärprogramm ist und Sie zur Gruppe sudo oder admin gehören, könnten Sie wahrscheinlich Binärdateien als sudo mit pkexec
ausführen. Dies liegt daran, dass dies in der Regel die Gruppen innerhalb der polkit-Richtlinie sind. Diese Richtlinie identifiziert im Grunde genommen, welche Gruppen pkexec
verwenden können. Überprüfen Sie dies mit:
Dort finden Sie, welche Gruppen berechtigt sind, pkexec auszuführen, und standardmäßig erscheinen in einigen Linux-Distributionen die Gruppen sudo und admin.
Um Root zu werden, können Sie ausführen:
Wenn Sie versuchen, pkexec auszuführen und diesen Fehler erhalten:
Es liegt nicht daran, dass Sie keine Berechtigungen haben, sondern dass Sie ohne eine grafische Benutzeroberfläche nicht verbunden sind. Und es gibt hier eine Lösung für dieses Problem: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Sie benötigen 2 verschiedene SSH-Sitzungen:
Manchmal finden Sie standardmäßig in der Datei /etc/sudoers diese Zeile:
Das bedeutet, dass jeder Benutzer, der zur Gruppe wheel gehört, alles als sudo ausführen kann.
Wenn dies der Fall ist, können Sie einfach root werden, indem Sie Folgendes ausführen:
Benutzer der Gruppe shadow können die Datei /etc/shadow lesen:
So, lesen Sie die Datei und versuchen Sie, einige Hashes zu knacken.
staff: Ermöglicht Benutzern, lokale Änderungen am System (/usr/local
) ohne Root-Rechte hinzuzufügen (beachten Sie, dass ausführbare Dateien in /usr/local/bin
im PATH-Variable jedes Benutzers enthalten sind und sie die ausführbaren Dateien in /bin
und /usr/bin
mit demselben Namen "überschreiben" können). Vergleichen Sie mit der Gruppe "adm", die mehr mit Überwachung/Sicherheit zu tun hat. [Quelle]
In Debian-Distributionen zeigt die $PATH
-Variable an, dass /usr/local/
mit höchster Priorität ausgeführt wird, unabhängig davon, ob Sie ein privilegierter Benutzer sind oder nicht.
Wenn wir einige Programme in /usr/local
übernehmen können, können wir leicht Root-Zugriff erhalten.
Das Übernehmen des Programms run-parts
ist ein einfacher Weg, um Root-Zugriff zu erhalten, da die meisten Programme ein run-parts
ähnliches Programm ausführen werden (z. B. Crontab, wenn eine SSH-Anmeldung erfolgt).
oder wenn eine neue SSH-Sitzung angemeldet wird.
Ausnutzen
Dieses Privileg ist fast äquivalent zu Root-Zugriff, da Sie auf alle Daten innerhalb der Maschine zugreifen können.
Dateien: /dev/sd[a-z][1-9]
Beachten Sie, dass Sie mit debugfs auch Dateien schreiben können. Zum Beispiel können Sie /tmp/asd1.txt
nach /tmp/asd2.txt
kopieren:
Jedoch, wenn Sie versuchen, Dateien zu schreiben, die root gehören (wie /etc/shadow
oder /etc/passwd
), erhalten Sie einen "Permission denied" Fehler.
Mit dem Befehl w
können Sie herausfinden, wer im System angemeldet ist und es wird eine Ausgabe wie die folgende angezeigt:
Die tty1 bedeutet, dass der Benutzer yossi physisch an einem Terminal auf dem Rechner angemeldet ist.
Die Video-Gruppe hat Zugriff, um die Bildschirmausgabe anzuzeigen. Grundsätzlich kannst du die Bildschirme beobachten. Um das zu tun, musst du das aktuelle Bild auf dem Bildschirm erfassen und die Auflösung, die der Bildschirm verwendet, erhalten. Die Bilddaten des Bildschirms können in /dev/fb0
gespeichert werden und du könntest die Auflösung dieses Bildschirms in /sys/class/graphics/fb0/virtual_size
finden.
Um das Rohbild zu öffnen, können Sie GIMP verwenden, wählen Sie die Datei **screen.raw
** und wählen Sie als Dateityp Rohbilddaten aus:
Ändern Sie dann die Breite und Höhe auf die auf dem Bildschirm verwendeten und überprüfen Sie verschiedene Bildtypen (und wählen Sie denjenigen aus, der den Bildschirm am besten darstellt):
Es scheint, dass standardmäßig Mitglieder der Root-Gruppe auf einige Dienstkonfigurationsdateien oder einige Bibliotheksdateien oder andere interessante Dinge zugreifen können, die zur Eskalation von Berechtigungen verwendet werden könnten...
Überprüfen Sie, welche Dateien Root-Mitglieder ändern können:
Sie können das Wurzeldateisystem des Hostcomputers an das Volume einer Instanz anhängen, sodass beim Start der Instanz sofort ein chroot
in dieses Volume geladen wird. Dies gibt Ihnen effektiv Root-Zugriff auf den Computer.
Normalerweise haben Mitglieder der Gruppe adm
Berechtigungen, um Protokolldateien im Verzeichnis /var/log/ zu lesen.
Daher sollten Sie, wenn Sie einen Benutzer in dieser Gruppe kompromittiert haben, definitiv einen Blick auf die Protokolle werfen.
Innerhalb von OpenBSD kann die auth Gruppe normalerweise in die Verzeichnisse /etc/skey und /var/db/yubikey schreiben, wenn sie verwendet werden. Diese Berechtigungen können mit dem folgenden Exploit zum Privilegieneskalation auf root missbraucht werden: https://raw.githubusercontent.com/bcoles/local-exploits/master/CVE-2019-19520/openbsd-authroot