Re: Unberechtigte Root-Berechtigungen erkennen und entfernen
Wolfgang Hinsch
Mittwoch, 27. April 2005 13:07:32 >>>
Files, die SUID oder SGID gesetzt haben und für andere beschreibbar sind:
-rwsrwxrwx admin other 555 1.1.1979 meinps
mit Inhalt ps -ef
Später macht $user einfach cp /bin/bash /hier/meinps.
HTH, Wolfgang
Hallo Wolfgang, vielen Dank für die schnelle und sehr hilfreiche Antwort... Also wenn ich das richtig verstanden habe kann dann der User die Bash und somit alle aus ihr gestarteten Programme mit root-Rechten ausführen, da nach dem cp weder der Besitzer/Gruppe noch die Attribute von der originalen /bin/bash auf /hier/meinps angewendet werden...!?!? Oje... Da steht mir glaub ich 'ne Menge Arbeit ins Haus... Gruß, Oliver Meißner
On Wed, Apr 27, 2005 at 02:53:55PM +0200, Oliver Meißner wrote:
Wolfgang Hinsch
Mittwoch, 27. April 2005 13:07:32 >>> Files, die SUID oder SGID gesetzt haben und für andere beschreibbar sind:
-rwsrwxrwx admin other 555 1.1.1979 meinps mit Inhalt ps -ef
Später macht $user einfach cp /bin/bash /hier/meinps.
Oje... Da steht mir glaub ich 'ne Menge Arbeit ins Haus...
Probiere es selbst mal aus. Ich jedenfalls kann Wolfgangs Befuerchtungen im Selbstversuch nicht nachvollziehen. Sobald der User das File neuschreibt, geht das suid-Bit floeten. Wenn auf der anderen Seite ein /etc/permissions* Eintrag existiert, wird der beim SuSEconfig Lauf aktiv. Nach suid Befehlen sollte man so wie so immer Ausschau halten, besonders, wenn der Besitzer root heisst. -- Peter
Hallo, Am Mittwoch, 27. April 2005 15:34 schrieb Peter Wiersig:
Probiere es selbst mal aus. Ich jedenfalls kann Wolfgangs Befuerchtungen im Selbstversuch nicht nachvollziehen. Sobald der User das File neuschreibt, geht das suid-Bit floeten.
Stimmt. Ging aber früher mal. So verschwindet ein feature nach dem anderen...
Wenn auf der anderen Seite ein /etc/permissions* Eintrag existiert, wird der beim SuSEconfig Lauf aktiv.
Bei uns läuft über cron ein Proggi, das anhand einer Liste Benutzer und Permissions setzt, auch rekursiv konfigurierbar. Sowas kann man auch z.B. auf Heiligabend 18:30 setzen. Auch at kann sowas. Und in etc kann man auch viel verstecken, insbesondere unter init.d in einem der regulären Scripte. Oder in /etc/sysconfig in eines der Files eine Mine legen und warten, bis ein ahnungloser Admin SuSEconfig aufruft.
Nach suid Befehlen sollte man so wie so immer Ausschau halten, besonders, wenn der Besitzer root heisst.
Richtig. Aber wenn jemand wirklich böswillig ist und vorher root-Rechte hatte, nützt das gar nichts. Im Extremfall hat er sogar irgendwo ein root-kit oder sonst eine Hintertür in einem regulären Programm installiert. Da er root-Rechte hat, kann er auch alle Sicherheitseinrichtungen wie checklisten etc kontrollieren. Z.B. ganz einfach: # mv /bin/bash /bin/bash.SuSE # echo \ "if $zeit = $reif -a $user = root then chown root $mine chmod 4555 $mine rm /bin/bash mv /bin/bash.SuSE /bin/bash exec /bin/bash fi exec /bin/bash.SuSE" > /bin/bash # chmod 755 /bin/bash Relativ primitives Beispiel (ungetestet und nicht empfehlenswert!), kann aber so oder ähnlich mit nahezu jedem Programm ausgeführt und noch eleganter versteckt werden. Eleganter ist natürlich, in der C-Source so eine Schweinerei einzubauen, zu übersetzen, die Uhrzeit zu verstellen, dann Permission und Uhrzeit des binaries zu setzen, danach Uhrzeit wieder aktuell und source löschen. Gefährlich ist jedes Programm und Script, das root oder ein anderer der üblichen Verdächtigen (admin, bin, daemon...) irgendwann aus irgendeinem Grund ausführen wird. Das muss nicht im System stehen. Wenn man eigene Konfigurationsscripte hat, kann es auch da irgendwo zwischen den Daten drinstehen. Viel Spaß beim Suchen! Gruß, Wolfgang
participants (3)
-
Oliver Meißner
-
Peter Wiersig
-
Wolfgang Hinsch