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-Polkit-Privilege-Esclation — PoC automatizzato in Bash per l'escalation dei privilegi polkit CVE-2021-3560. Sfrutta un attacco di temporizzazione su dbus per iniettare un utente sudo e ottenere una shell di root su distribuzioni Linux vulnerabili. | Kitploit
Strumenti/GitHubGitHub/secnigma/cve-2021-3560-polkit-privilege-esclation
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingAutenticazione
GitHubsecnigma/cve-2021-3560-polkit-privilege-esclation

CVE-2021-3560-Polkit-Privilege-Esclation

PoC automatizzato in Bash per l'escalation dei privilegi polkit CVE-2021-3560. Sfrutta un attacco di temporizzazione su dbus per iniettare un utente sudo e ottenere una shell di root su 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
124513 anni faRevisionato da Kitploit

CVE-2021-3560-Polkit-Escalation-dei-Privilegi-PoC

Ricerca originale di Kevin Backhouse

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

Usage

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 saltare tutti i controlli e forzare l'exploit.
  • Le distribuzioni come RHEL 8, Fedora 21, Debian testing ("bullseye") e Ubuntu 20.04 risultano vulnerabili.

Come funziona l'exploit?

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

Di seguito il TL;DR di questo exploit:

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

Cosa fa effettivamente 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 ottenere il tempismo giusto, scansionare la vulnerabilità, inserimento di credenziali personalizzate, stampa di bei colori, ecc.).

Se questo script viene eseguito senza parametri, il comportamento predefinito è il seguente:

  • Controlla il tipo di distribuzione. [Utilizzando il file /etc/os-release.]
  • Controlla l'installazione di accountservice e gnome-control-center. [In rhel/centos/fedora, usa rpm -qa e nelle distribuzioni debian/ubuntu usa dpkg -l.].
  • Se le installazioni vengono trovate, 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 avvia lo sfruttamento
  • Prima, lo script trova il tempo necessario per inviare la richiesta usando dbus-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
root@kitploit:~
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`)
- Quindi 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 $! ```
Scarica lo strumento
  • Un elenco di compatibilità delle distribuzioni si trova nel blog di Kevin.
  • Questo script inserisce un nuovo utente nel gruppo sudo. Se l'exploit ha funzionato, possiamo accedere all'account usando su - <nome_utente> con la password fornita allo script, e poi digitare sudo bash per ottenere una shell root!
  • Poiché questo attacco si basa su un tempismo preciso, DI SOLITO SONO NECESSARI 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 la finestra di 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.
  • Poi, il tempo per terminare la richiesta ($t) viene calcolato dividendo il tempo necessario per la richiesta per 2. ($t=time-required-to-request/2) [Calcolato usando awk]
  • Dopo che il tempo ($t) è stato calcolato, la richiesta di inserire $username secnigma nel target viene ripetuta 20 volte.