Interesting Groups - Linux Privesc
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Manchmal, standardmäßig (oder weil einige Software es benötigt) finden Sie in der /etc/sudoers Datei einige dieser Zeilen:
Das bedeutet, dass jeder Benutzer, der zur Gruppe sudo oder admin gehört, alles als sudo ausführen kann.
Wenn dies der Fall ist, um root zu werden, können Sie einfach ausführen:
Finde alle SUID-Binärdateien und überprüfe, ob die Binärdatei Pkexec vorhanden ist:
Wenn Sie feststellen, dass die Binärdatei pkexec eine SUID-Binärdatei ist und Sie zu sudo oder admin gehören, könnten Sie wahrscheinlich Binärdateien als sudo mit pkexec
ausführen.
Das liegt daran, dass dies typischerweise die Gruppen innerhalb der polkit-Richtlinie sind. Diese Richtlinie identifiziert im Grunde, welche Gruppen pkexec
verwenden können. Überprüfen Sie es 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 Sie diese Fehlermeldung erhalten:
Es liegt nicht daran, dass Sie keine Berechtigungen haben, sondern daran, dass Sie ohne eine GUI nicht verbunden sind. Und es gibt eine Lösung für dieses Problem hier: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Sie benötigen 2 verschiedene ssh-Sitzungen:
Manchmal findet man standardmäßig in der /etc/sudoers-Datei 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 um root zu werden einfach ausführen:
Benutzer der Gruppe shadow können die /etc/shadow-Datei lesen:
So, lesen Sie die Datei und versuchen Sie, einige Hashes zu knacken.
staff: Ermöglicht Benutzern, lokale Änderungen am System (/usr/local
) vorzunehmen, ohne Root-Rechte zu benötigen (beachten Sie, dass ausführbare Dateien in /usr/local/bin
in der 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. [source]
In Debian-Distributionen zeigt die $PATH
-Variable, dass /usr/local/
mit der höchsten 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-Rechte erlangen.
Die Übernahme des run-parts
-Programms ist ein einfacher Weg, um Root-Rechte zu erlangen, da die meisten Programme run-parts
wie (crontab, bei SSH-Login) ausführen werden.
oder Wenn eine neue SSH-Sitzung angemeldet wird.
Exploit
Dieses Privileg ist fast äquivalent zu Root-Zugriff, da Sie auf alle Daten innerhalb der Maschine zugreifen können.
Files:/dev/sd[a-z][1-9]
Beachten Sie, dass Sie mit debugfs auch Dateien schreiben können. Um beispielsweise /tmp/asd1.txt
nach /tmp/asd2.txt
zu kopieren, können Sie Folgendes tun:
Allerdings, wenn Sie versuchen, Dateien, die root gehören (wie /etc/shadow
oder /etc/passwd
) zu schreiben, erhalten Sie einen "Zugriff verweigert" 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 der Maschine angemeldet ist.
Die Video-Gruppe hat Zugriff auf die Anzeige der Bildschirmausgabe. Grundsätzlich können Sie die Bildschirme beobachten. Um dies zu tun, müssen Sie das aktuelle Bild auf dem Bildschirm in Rohdaten erfassen und die Auflösung ermitteln, die der Bildschirm verwendet. Die Bildschirmdaten können in /dev/fb0
gespeichert werden, und Sie können die Auflösung dieses Bildschirms unter /sys/class/graphics/fb0/virtual_size
finden.
Um das raw image zu öffnen, können Sie GIMP verwenden, die **screen.raw
** Datei auswählen und als Dateityp Raw image data auswählen:
Ändern Sie dann die Breite und Höhe auf die Werte, die auf dem Bildschirm verwendet werden, und überprüfen Sie verschiedene Bildtypen (und wählen Sie den aus, der den Bildschirm am besten darstellt):
Es scheint, dass standardmäßig Mitglieder der Root-Gruppe Zugriff auf Änderungen an einigen Service-Konfigurationsdateien oder einigen Bibliotheks-Dateien oder anderen interessanten Dingen haben, die zur Eskalation von Rechten verwendet werden könnten...
Überprüfen Sie, welche Dateien Mitglieder der Root-Gruppe ändern können:
Sie können das Root-Dateisystem des Host-Systems in das Volume einer Instanz einbinden, sodass beim Start der Instanz sofort ein chroot
in dieses Volume geladen wird. Dies gibt Ihnen effektiv Root-Zugriff auf die Maschine.
Finally, if you don't like any of the suggestions of before, or they aren't working for some reason (docker api firewall?) you could always try to run a privileged container and escape from it as explained here:
Docker SecurityIf you have write permissions over the docker socket read this post about how to escalate privileges abusing the docker socket.
Normalerweise haben Mitglieder der Gruppe adm
Berechtigungen, um Protokoll dateien im Verzeichnis /var/log/ zu lesen.
Daher sollten Sie, wenn Sie einen Benutzer in dieser Gruppe kompromittiert haben, auf jeden Fall einen Blick auf die Protokolle werfen.
Innerhalb von OpenBSD kann die auth Gruppe normalerweise in die Ordner /etc/skey und /var/db/yubikey schreiben, wenn sie verwendet werden. Diese Berechtigungen können mit dem folgenden Exploit missbraucht werden, um Privilegien auf root zu eskalieren: https://raw.githubusercontent.com/bcoles/local-exploits/master/CVE-2019-19520/openbsd-authroot
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)