
Entfernt vorübergehend das Root-Passwort mithilfe von CVE-2026-31431
[!WARNING] Nur auf Systemen verwenden, die dir gehören oder für die du eine Testberechtigung hast.
Entfernt vorübergehend das Root-Passwort und nutzt CVE-2026-31431, um eine architekturunabhängige Eskalation zu Root zu ermöglichen, ohne das Passwort des aktuellen Benutzers zu kennen.
Bitte verwende es verantwortungsbewusst, nur auf Systemen, die du testen darfst. Ob diese Methode auf deinem System unterstützt wird, ist unterschiedlich, aber sie hat auf jedem von mir getesteten Debian-Derivat funktioniert.
Der PoC, auf dem dies basiert, hat im Wesentlichen deine UID in /etc/passwd durch lauter Nullen ersetzt, was dir effektiv Root-Rechte verschaffte. Dieser Ansatz entfernt stattdessen das Passwort von Root, sodass du bei der Ausführung von su sofort Root erhältst. Dadurch bleibt dein Benutzer für die Stabilität erhalten, mit dem Nachteil, dass bis zur Bereinigung jeder Benutzer auf dem System Rechte erweitern kann. Da es sich nicht um eine Änderung an Binärdateien handelt, sollte dies auch auf allen Architekturen funktionieren (Aarch64 und x64 getestet).
python exploit.py [ --shell | --clean | --noclean ]
Ohne Argumente führt das Programm den Exploit aus, nimmt die Änderungen an /etc/passwd vor und macht sie anschließend rückgängig.
--noclean verhindert, dass die Änderungen nach Abschluss zurückgesetzt werden.--clean räumt nur eine frühere Ausführung auf, führt den Exploit jedoch nicht aus.--shell räumt nicht auf, startet aber nach dem Ausführen des Exploits eine Root-Shell mit su.
Zu
Wenn das 'x' entfernt wird, das anzeigt, dass das Passwort in /etc/shadow gespeichert ist, wird dies so behandelt, als hätte der Benutzer überhaupt kein Passwort, was ein einfaches Login ermöglicht.
Zum Zeitpunkt, als ich das schrieb, gab es nur bekannte PoCs für CopyFail, eine, die eine SUID-Binärdatei überschrieb, und eine, die die UID deines Benutzers durch Nullen ersetzte. Beide haben grundlegend unterschiedliche Anwendungsfälle, wenn du einen Test gegen ein System durchführst. SUID-Überschreibungen erfordern Shellcode, der auf die Architektur des Systems zugeschnitten ist, und das Ändern deiner UID erfordert, dass du dich erneut mit dem Passwort deines aktuellen Benutzers authentifizierst, das du möglicherweise nicht kennst. RootRemover kann oft verwendet werden, wenn diese Anforderungen im Weg stehen.
Dies ist für den Fall gedacht, dass du eine Shell mit einem Nologin-Benutzer wie www-data erhältst, nicht für eine Maschine, auf der du ein bekanntes Passwort hast oder die Architektur gut genug kennst, um Shellcode vorzubereiten.
*LK*' oder '*NP*' verwenden (könnte mit verketteten Schreibvorgängen behoben werden, ich hatte nur noch keine Zeit, das zu implementieren)su zu erkennen (keine Argumente bedeutet immer Root, der UID-Patch-PoC sieht in den Logs nur wie ein Wechsel zu deinem eigenen Benutzer aus)Der eigentliche Exploit-Code stammt aus dem Repository von rootsecdev. Ich ändere hauptsächlich die Bytes, die geschrieben werden, aus den oben genannten Gründen.