Was hat der Output von Sudo -l zu bedeuten?

2 Antworten

Simpel gesagt kannst du damit selber entscheiden, welche Libraries (als root) geladen werden, indem du die beiden Variablen setzt. Das ermöglicht dir, so ziemlich alles als root auszuführen, obwohl du nur die dort aufgelisteten Commands ausführen dürftest.

Hier wird dies ein wenig genauer erklärt: https://whitecr0wz.github.io/posts/LD_PRELOAD/

Woher ich das weiß:eigene Erfahrung – Nutze Linux täglich, sowohl auf Server als auch Desktop

Sudo übernimmt die Umgebungsvariablen nicht einfach so, normalerweise werden die bereinigt (env_reset option) aber es gibt eben eine Liste an Variablen die erlaubt sind und übernommen werden (env_keep).

LD_LIBRARY_PATH und LD_PRELOAD sind Umgebungsvariablen die steuern welche Bibliotheken (englisch libraries) geladen werden. Das sind quasi Programme die selber für den Nutzer keine eigene Funktion bereitstellen aber von anderen Programmen genutzt werden können um bestimmte Aufgaben zu erfüllen. Und damit nicht jedes Programm seine eigene Version von so was braucht können die eben geteilt und dynamisch nachgeladen werden.

Du sprichst privilege escalation an, wenn du ein Programm ausführst welches solche Libraries nachlädt und du kontrollieren kannst welche das sind, dann kannst du natürlich dafür sorgen, dass eine manipulierte Library geladen wird deren Code dann mit erweiterten rechten läuft. Mit sudo kann man ja auch Leuten nur für bestimmte Programme Adminrechte geben und das könnte man so eben umgehen und beliebig Code ausführen. Bin aber spontan nicht sicher ob die Variablen überhaupt so übernommen werden.

Und dieser markierte Teil heißt eben einfach nur das diese bestimmten Variablen bei diesem Nutzer von dem Nutzer übernommen werden sollen und nicht mit bereinigt werden.

Mehr findest du einfach über die man pages sudo und ld.so raus oder hier

Woher ich das weiß:Berufserfahrung – Privat und beruflich damit zu tun
verreisterNutzer  28.03.2022, 13:34

Ich danke dir sehr für die ausführliche Antwort🙏🏽

0