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
pkwned — Prova di concetto per CVE-2021-4034 (con sfruttamento sperimentale senza tracce) | Kitploit
Strumenti/GitHubGitHub/dosamp/pkwned
Escalation di PrivilegiFramework di ExploitExploitSviluppo PayloadBinary Exploitation
GitHubdosamp/pkwned

pkwned

Prova di concetto per CVE-2021-4034 (con sfruttamento sperimentale senza tracce)

Vedi Repository
4 anni 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

pkwned: Proof of Concept per CVE-2021-4034

Questo PoC eseguirà PAYLOAD_PATH (come definito in constants.h) con privilegi di root da una versione vulnerabile di pkexec in esecuzione su glibc. La directory "GCONV_PATH=." deve contenere un file eseguibile che prende il nome dalla directory che contiene il modulo gconv.

Come indicato nell'advisory di Qualys [1], questo produrrà un messaggio syslog. Finora ho trovato due approcci per prevenirlo:

  • Usando g_find_program_in_path, pkexec esegue un controllo access() tramite g_file_test e un altro esplicito successivamente, il che consente una race condition (eliminando "GCONV_PATH=./gconv" nel mezzo) per chiamare g_printerr senza log_message:

641 if (access (path, F_OK) != 0) 642 { 643 g_printerr ("Error accessing %s: %s\n", path, g_strerror (errno)); 644 goto out; 645 }

Questo repository contiene l'utility gconv-fuse che monta un filesystem FUSE su "GCONV_PATH=.", che appare vuoto dopo una chiamata di access("gconv", X_OK). Funziona solo se l'opzione di configurazione FUSE user_allow_other è abilitata.

  • Se si può impedire a pkexec di leggere /etc/shells, anche questo genererà un errore senza registrare nulla:

356 if (!g_file_get_contents ("/etc/shells", 357 &contents, 358 NULL, /* gsize *length */ 359 &error)) 360 { 361 g_printerr ("Error getting contents of /etc/shells: %s\n", error->message); 362 g_error_free (error); 363 goto out; 364 }

I mount namespace possono essere usati per montare un file illeggibile sopra di esso, ma ciò richiede anche un user namespace, mappando un utente non privilegiato a root e rendendo inefficace il bit setuid di pkexec (ad es. "unshare -r -u -m").

Nota che GLib ha integrato una correzione per g_find_program_in_path (probabilmente per le prossime versioni stabili dopo v2.70.3 e v2.71.0) che renderà questo exploit impraticabile restituendo sempre percorsi completi reali. [2]

[1] https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt [2] https://gitlab.gnome.org/GNOME/glib/-/commit/13ee46538f901a8eca8e7a4c167a8838ed0858d4

Scarica lo strumento