Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-4034 — Ho analizzato la vulnerabilità comunemente nota come Pwnkit a scopo didattico e ho scritto un PoC per essa. Da utilizzare rigorosamente a scopo didattico | Kitploit
Strumenti/GitHubGitHub/eshkoreee/cve-2021-4034
Escalation di PrivilegiExploitApprendimento e FormazioneSviluppo PayloadBinary Exploitation
GitHubeshkoreee/cve-2021-4034

CVE-2021-4034

Ho analizzato la vulnerabilità comunemente nota come Pwnkit a scopo didattico e ho scritto un PoC per essa. Da utilizzare rigorosamente a scopo didattico

Vedi Repository
12 giorni faNon ancora revisionato

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

CVE-2021-4034 (PwnKit) PoC

DISCLAIMER: Questo materiale è fornito esclusivamente a scopo educativo. L'utilizzo dell'exploit senza il consenso scritto del proprietario del sistema di destinazione è non etico e può essere perseguito per legge.

Installazione e avvio

  1. Clonare il repository sulla macchina di destinazione.
  2. Concedere i permessi di esecuzione allo script di build: chmod +x build.sh.
  3. Avviare la build: ./build.sh.
  4. Eseguire l'exploit: ./mls_envp. Si otterrà l'accesso root.

Natura della vulnerabilità

Nella versione vulnerabile di polkit (0.105), l'autore, David Zeuthen, presumeva che pkexec venisse sempre invocato dalla console. Partiva dal presupposto che argc (il numero di argomenti) fosse sempre maggiore di 1, poiché argv[0] è il nome del programma stesso. Tuttavia, pkexec può essere invocato tramite la chiamata di sistema execve, passando un array di argomenti vuoto. A causa di ciò, la logica del programma si rompe.

1. Accesso fuori dai limiti dell'array

Nel codice di pkexec è rigidamente codificata l'aspettativa che argv contenga almeno un elemento. Quando argc è uguale a 0, il programma tenta comunque di accedere a argv[1]. Ciò provoca un accesso fuori dai limiti dell'array argv e la lettura del primo elemento dell'array envp (le variabili d'ambiente). Nel nostro caso, lì si trova la stringa "exp_exe".

2. Aggiramento del controllo PATH

pkexec tenta di trovare il programma exp_exe tramite la funzione g_find_program_in_path. Per la ricerca utilizza la variabile PATH. Sostituiamo PATH con GCONV_PATH=.. Di conseguenza, pkexec trova il file fittizio exp_exe nella nostra cartella locale e restituisce il percorso GCONV_PATH=./exp_exe. A causa del bug con argc, questo percorso viene riscritto in envp[0], "legalizzando" la variabile GCONV_PATH.

3. Caricamento di una libreria malevola

Prima di avviare il programma, pkexec controlla le variabili d'ambiente (inclusa SHELL). Passiamo una shell inesistente (SHELL=xyz) per provocare un errore. Durante la visualizzazione dell'errore viene chiamata log_message, che utilizza i meccanismi di glibc. Glibc esamina la variabile CHARSET=bohemcavanna e, non trovando un convertitore standard, accede alla directory indicata in GCONV_PATH (quella che abbiamo inserito). Lì legge il file gconv-modules, carica la nostra libreria exploit.so ed esegue il codice al suo interno con privilegi root.

Scarica lo strumento