
analisi del buffer overflow di sudo che colpisce le versioni di sudo <1.8.26 e come usare GCC per compilare exploit disponibili pubblicamente
Analisi della CVE-2019-18634 (https://www.exploit-db.com/exploits/47995)
Sudo 1.8.25p - 'pwfeedback' Buffer Overflow (PoC)
L'opzione pwfeedback di Sudo può essere utilizzata per fornire un feedback visivo quando l'utente inserisce la propria password. Ad ogni pressione di un tasto, viene stampato un asterisco. Questa opzione è stata aggiunta in risposta alla confusione degli utenti su come il prompt standard Password: disabiliti l'eco della pressione dei tasti. Sebbene pwfeedback non sia abilitato per impostazione predefinita nella versione upstream di sudo, alcuni sistemi, come Linux Mint e Elementary OS, lo abilitano nei loro file sudoers predefiniti.
Analisi
Sudo buffer overflow tryhackme writeup
Analisi della CVE-2019-18634
Prima accediamo all'istanza tryhackme tramite SSH
La vulnerabilità si verifica perché la funzione pwfeedback è vulnerabile a un heap buffer overflow; per sfruttare questa vulnerabilità, verifichiamo prima che la macchina abbia la versione vulnerabile di sudo (sudo <1.8.26) eseguendo il comando sudo –version
Analisi della CVE-2019-18634
Prima accediamo all'istanza tryhackme tramite SSH
La vulnerabilità si verifica perché la funzione pwfeedback è vulnerabile a un heap buffer overflow; per sfruttare questa vulnerabilità, verifichiamo prima che la macchina abbia la versione vulnerabile di sudo (sudo <1.8.26) eseguendo il comando sudo –version

dopo aver confermato che la macchina ha una versione vulnerabile di sudo, verifichiamo ora che la funzione pwfeedback sia presente; questo può essere fatto in 2 modi: invocando sudo e digitando qualsiasi cosa nel prompt della password, che dovrebbe mostrare "*" mentre si digitano i caratteri per la password, e il secondo modo, più tecnico, è usare il comando sudo -l, ma questo richiederà anche che l'utente abbia i permessi appropriati che gli consentano di visualizzare le informazioni relative a sudo o di poter concatenare il file sudoers

Ora confermeremo che un buffer overflow è possibile utilizzando il caso di test presente su exploit-db https://www.exploit-db.com/exploits/47995
perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id ^^La riga di codice sopra funziona come segue:
Aggiunge 100 caratteri A e li convoglia nel comando sudo, che finiranno poi nell'heap buffer di pwfeedback.

Sudo emetterà quindi un segmentation fault poiché non sa come continuare il processo sudo
Questo accade perché una volta che un heap buffer statico viene inondato, inizierà a inondare i registri della CPU e il puntatore alle istruzioni, che mantiene il flusso dell'istruzione successiva.
Possiamo eseguire l'exploit, che causerà un buffer overflow e ci darà accesso root al sistema https://www.exploit-db.com/exploits/47995
