ptrace-Suid-Binärdateien, nachdem die Berechtigung gelöscht wurde

ptrace-Suid-Binärdateien, nachdem die Berechtigung gelöscht wurde

Mir ist klar, dass wir Ptrace wahrscheinlich nicht auf Suid-Binärdateien ausführen können. Ich frage mich jedoch, warum wir Ptrace nicht ausführen können, nachdem die Binärdatei ihr Vorrecht auf UID statt auf EUID verloren hat.

Beispielsweise verliert die Binärdatei „SUID“ nach einigen Schritten die Berechtigungen.

 seteuid (euid);
 ret_chdir = chdir (path);
 seteuid (ruid);

 system("whoami");
 printf("Enter any char");
 scanf("%c", &junk);

In meinem Fall ist „whoami“ der Benutzername des Prozesses, aber nicht der Eigentümer des Prozesses, wenn es ausgegeben wird. Als das Programm auf eine Junk-Eingabe wartete, versuchte ich, mich mit der UID als Benutzernamen an den laufenden Prozess anzuschließen, aber das schlug fehl, obwohl die Binärdatei die Berechtigung gelöscht hatte. Ist es möglich, dass ptrace attach den Status der gespeicherten UID verwendet, um zu entscheiden, dass ich nicht der Eigentümer bin?

Antwort1

Ihr Beispielcode gibt keine Privilegien ab! Er kann Privilegien durch Aufrufen wieder frei erhöhen seteuid(euid). Wenn Sie ptrace ausführen können, können Sie es aufrufen seteuid(euid)und so privilegierten Code ausführen lassen.

Stellen Sie diese Frage, weil Sie dachten, ptracees sei schreibgeschützt? Nein, das ist es nicht: straceEs ist nur eine Sache, die Sie damit tun können; ptracees ermöglicht dem Tracer, beliebigen Code im Tracee auszuführen, nicht nur zu beobachten. Es gibt keine feinkörnige Zugriffskontrolle, die „schreibgeschützten“ Ptrace-Zugriff gewährt.

Aber selbst ein schreibgeschützter Ptrace ist gefährlich. Eine Anwendung mit erhöhten Berechtigungen könnte vertrauliche Daten manipulieren. Sie können also keinen Prozess mit Ptrace verfolgen, der über Berechtigungen verfügt, selbst wenn die Berechtigungen gelöscht wurden. Der Prozess muss aufgerufen werden, um execvealle Spuren der Berechtigung zu löschen.

Antwort2

Das scheint eine gute Vermutung zu sein, denn die Möglichkeit des Wechselszurück, ein bekannter Bereich, in dem ein Sicherheitsproblem auftreten würde.

Weiterführende Literatur:

verwandte Informationen