
Rimuove temporaneamente la password di root utilizzando CVE-2026-31431
[!WARNING] Usalo solo su sistemi di cui sei proprietario o su cui hai l'autorizzazione a testare.
Rimuove temporaneamente la password di root, usando CVE-2026-31431 per consentire l'escalation a root indipendente dall'architettura senza conoscere la password dell'utente corrente.
Per favore, usalo responsabilmente, solo su sistemi su cui sei autorizzato a testare. Il supporto di questo metodo sul tuo sistema può variare, ma ha funzionato su ogni derivato Debian che ho testato.
Il PoC su cui si basa sostituiva essenzialmente il tuo UID con tutti 0 in /etc/passwd, dandoti di fatto root. Questo approccio rimuove invece la password di root, così quando esegui su ottieni subito root. Questo mantiene intatto il tuo utente per stabilità, con l'avvertenza che qualsiasi utente sulla macchina può elevare i privilegi fino alla pulizia. Non essendo una modifica binaria, dovrebbe funzionare su tutte le architetture (testato su Aarch64 e x64).
python exploit.py [ --shell | --clean | --noclean ]
Senza argomenti, il programma viene eseguito, apporta le modifiche a /etc/passwd e poi le annulla.
--noclean impedisce che le modifiche vengano annullate dopo il termine.--clean pulisce solo da un'esecuzione precedente, non esegue l'exploit.--shell non pulisce, ma apre una shell di root con su dopo l'esecuzione dell'exploit.
To
La rimozione della 'x' che indica che la password è memorizzata in /etc/shadow farà sì che l'utente venga trattato come se non avesse alcuna password, consentendo un accesso facile.
Nel momento in cui ho scritto questo, c'erano solo PoC noti per CopyFail, uno che sovrascriveva un eseguibile SUID e uno che sostituiva l'UID del tuo utente con zeri. Entrambi hanno casi d'uso ragionevolmente diversi se stai eseguendo un test contro un sistema. Le sovrascritture SUID richiedono shellcode adattati all'architettura del sistema, e modificare il tuo UID richiede di riautenticarti con la password dell'utente corrente, che potresti non conoscere. RootRemover può spesso essere usato se questi requisiti intralciano.
È progettato per quando ottieni una shell con un utente nologin come www-data, non per una macchina di cui conosci la password o di cui conosci abbastanza l'architettura da preparare shellcode.
*LK*' o '*NP*' nel campo password (potrebbe essere risolto con scritture concatenate, semplicemente non ho avuto tempo di implementarlo)su (nessun argomento significa sempre root, il PoC della patch UID sembra semplicemente un passaggio al proprio utente nei log)Il codice exploit vero e proprio proviene dal repo di rootsecdev, per lo più sto cambiando i byte che vengono scritti per i motivi che ho descritto sopra.