M@C schrieb:
Schön, das du gleich noch Argumente dafür bringst.
A = dein gerade genutzer Account auf dem lokalen Rechner vor deiner Nase
B = Rootaccount auf einem Zielserver mit sshd
Aufgabe ist, von A aus B zu erreichen, um auf dem Server als root irgendwas zu erledigen.
Um von A nach B zu gelangen, hast du die Wahl zwischen dem direkten Weg A-->B und verschiedenen, denkbaren Umwegen der Form A-->Zwischenschritt(e)-->B. Jetzt summierst du für alle Varianten alle Möglicheiten der Kompromittierung und vergleichst die ermittelten Summen. Die kleinste Summe gewinnt. Welche ist das?
Denke insb. an die Möglichkeit, dass der unprivilegierte Zwischenaccount auf dem Zielrechner, den du so gern als Umweg zum sudo'n nutzen möchtest, schon übernommen sein könnte, was beim direkten A-->B vollkommen egal ist. Dabei gibts 2 Untervarianten: Useraccount gefallen + Angreifer kennt User-PW (damit ist dank üblicher sudo-Konfig sowieso alles vorbei) und Useraccount gefallen + Angreifer kennt User-PW nicht. Im zweiten Fall ist _noch_ nicht alles vorbei, aber du wirst dem Angreifer wenige Sekunden später das User-PW schenken, indem du es an ein Programm verfütterst, was du für sudo hältst, was aber nur ein lokal nachinstallierter Fake ist, der dem Angreifer das User-PW liefert, womit wir sofort bei der ersten Untervariante sind, also dem Totalverlust des Servers.
Der Umweg über den unprilegierten Zwischenaccount vergrößert schlicht die Angriffsfläche. Damit kann nichts besser werden. Jeder zusätzliche Umweg macht es schwerer, einen sicheren Kanal von A nach B aufzubauen. Du schießt dir damit selbst ins Knie und bekommst was dafür? Dass dein Server ggf. gefallen ist, ohne dass jemand dazu das Root-PW herausbekommen musste. Gratulation dazu!
Also lieber direkt nach root@server via ssh verbinden und via public key authentifizieren. Via Passwort statt key _wäre_ nicht schlechter, _wenn_ man ein dem Key entsprechend komplexes Passwort wählen und nirgends wiederverwenden würde, was in der Praxis ziemlich schwer ist. Deshalb ist die neue Openssh-Voreinstellung 'PermitRootLogin=without-password' in der Regel genau das richtige.
Nichts gegen sudo. Sudo ist sinnvoll. Sudo ist genau dann sinnvoll, wenn man auf dem unprivilegierten Account, von dem aus man es nutzt, sowieso schon drauf hockt, z.B. weil man lokal damit am Rechner arbeitet. Aber sudo ist nicht sinnvoll, um darüber remote via ssh von einem unprivilegierten Zwischenaccount aus Root-Arbeit zu erledigen.
... aber wir kommen vom Thema ab. Was ich in #8 schrieb, sollte "The Ripper" mal testen, also ob der Ssh-Server vielleicht doch läuft.