Get Root

Aufgabenstellung
Die Aufgabenstellung war, dass man auf einem gegebenen System, eingeloggt mit einem niedrig privilegierten user, root Rechte erlangen musste.
Das System war von den Wargame initianten mit einer Fehlkonfiguration aus Praxiserfahrungen bei Kunden präpariert worden.
Lösungsweg
Um root rechte auf einem System zu erlangen ist der einfachste Weg, wenn man sich mal Gedanken macht welche accounts die Berechtigung haben um sachen mit höherprivilegierten rechten auf dem System auszuführen.
Darunter fallen häufig systemservices wie cron jobs, die zu unserem glück regelmässig ausgeführt werden.
Wir durchsuchten die cron jobs danach, ob irgend ein script ausgeführt wird, auf das wir schreib zugriff hatten.
Ein bash script, dass durch ein anderes script ausgeführt wird das im cron.minutly ausgeführt wird ist World Writable.
Wir kopierten /bin/bash in unser home Verzeichniss, liessen durch das beschreibbare script den Befehl
-
chown root.root /home/hacker/bash
-
chmod 4755 /home/hacker/bash
ausführen und warteten eine Minute.
Die Befehle wurden zwar Ausgeführt, jedoch ist es anscheinend auf einem Ubuntu system nicht möglich das binary nun under root laufen zu lassen obwohl das SUID Bit gesetzt ist und das File root gehört.
Wir entschieden uns dan für die billige Variante (fliegt sehr schnell auf) und führten im script nun den Befehl
-
adduser hacker admin
aus und konnten danach einen sudo bash machen um die root privilegien zu erhalten.
Lesson learned
Ein script, das von cron Ausgeführt wird, sollte nie World Writable sein.

Post new comment