
Supprime temporairement le mot de passe root en utilisant CVE-2026-31431
[!WARNING] Utilisez ceci uniquement sur des systèmes que vous possédez ou pour lesquels vous avez l'autorisation de tester.
Supprime temporairement le mot de passe root, utilise CVE-2026-31431 pour permettre une élévation de privilèges indépendante de l'architecture sans connaître le mot de passe de l'utilisateur actuel.
Veuillez l'utiliser de manière responsable, uniquement sur des systèmes que vous êtes autorisé à tester. La prise en charge de cette méthode sur votre système peut varier, mais elle a fonctionné sur tous les dérivés Debian que j'ai testés.
Le PoC sur lequel cela est basé remplaçait essentiellement votre UID par des 0 dans /etc/passwd, vous donnant ainsi les droits root. Cette approche supprime plutôt le mot de passe root, de sorte que lorsque vous exécutez su, vous obtenez instantanément root. Cela préserve votre utilisateur pour la stabilité, avec la mise en garde que tout utilisateur sur la machine peut élever ses privilèges jusqu'au nettoyage. N'étant pas une modification binaire, cela devrait également fonctionner sur toutes les architectures (Aarch64 et x64 testés).
python exploit.py [ --shell | --clean | --noclean ]
Sans argument, le programme s'exécute, applique les modifications à /etc/passwd puis les annule.
--noclean empêche l'annulation des modifications après la fin.--clean nettoie uniquement une exécution précédente, sans exécuter l'exploit.--shell n'efface pas, mais ouvre un shell root avec su après avoir exécuté l'exploit.
En
Supprimer le 'x' qui indique que le mot de passe est stocké dans /etc/shadow sera traité comme si l'utilisateur n'avait aucun mot de passe, permettant une connexion facile.
Au moment où j'ai écrit cela, il n'y avait que des PoCs bien connus pour CopyFail, l'un qui écrasait un exécutable SUID et un autre qui remplaçait l'UID de votre utilisateur par des zéros. Ces deux approches ont des cas d'utilisation assez différents si vous effectuez un test sur un système. Les écrasements SUID nécessitent du shellcode adapté à l'architecture du système, et la modification de votre UID vous oblige à vous réauthentifier avec le mot de passe de votre utilisateur actuel, que vous ne connaissez peut-être pas. RootRemover peut souvent être utilisé si ces exigences font obstacle.
Ceci est conçu pour le cas où vous obtenez un shell avec un utilisateur nologin comme www-data, pas pour une machine où vous avez un mot de passe connu ou connaissez suffisamment l'architecture pour préparer du shellcode.
*LK*' ou '*NP*' dans le champ mot de passe (pourrait être corrigé avec des écritures chaînées, je n'ai tout simplement pas eu le temps de l'implémenter)su (pas d'arguments signifie toujours root, le PoC de correctif UID ressemble simplement à un changement vers votre propre utilisateur dans les journaux)Le code d'exploit réel provient du dépôt de rootsecdev, je modifie principalement les octets qui sont écrits pour les raisons que j'ai exposées ci-dessus.