Per un corso sulla sicurezza IT, voglio dimostrare agli studenti l'escalation dei privilegi. Per farlo, ho esaminato exploit/linux/local
list nel Metasploit Framework, trovando (tra gli altri) exploit/linux/local/sock_sendpage
da agosto 2009.
Ho configurato una macchina virtuale con Ubuntu Server 9.04 a 32 bit (http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso) da aprile 2009. uname -r
mi dà 2.6.28-11-generic
. Secondo la descrizione dell'exploit
Si ritiene che tutte le versioni di Linux 2.4/2.6 dal maggio 2001 siano interessate:dalla 2.4.4 alla 2.4.37.4 inclusa; 2.6.0 fino al 2.6.30.4 incluso
Quindi sembra che il server Ubuntu che ho impostato dovrebbe essere adatto per la dimostrazione. Tuttavia, non sono riuscito a farlo funzionare.
Ho aggiunto un utente (normale) sul server e l'accesso SSH funziona. Dall'interno di Metasploit Framework, posso creare una sessione SSH usando auxiliary/scanner/ssh/ssh_login
. Tuttavia, quando eseguo l'exploit, ottengo
[*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes)
[*] Exploit completed, but no session was created.
Non ottengo ulteriori informazioni, nemmeno durante l'impostazione di DEBUG_EXPLOIT
al vero. /tmp
è scrivibile, anche dall'interno della sessione SSH Metasploit:
$ sessions -c "touch /tmp/test.txt"
[*] Running 'touch /tmp/test.txt' on shell session 1 ([redacted])
$ sessions -c "ls -l /tmp"
[*] Running 'ls -l /tmp' on shell session 1 ([redacted])
total 0
-rw-r--r-- 1 [redacted] [redacted] 0 2016-03-28 09:44 test.txt
Ho anche provato a impostare WriteableDir
nella home directory dell'utente sul server, ma senza alcuna modifica. Cosa mi sto perdendo qui? Questa versione del server Ubuntu (che non ho aggiornato deliberatamente!) non è vulnerabile?
Risposta accettata:
La versione 9.04 è stata supportata fino al 23 ottobre 2010. La vulnerabilità che hai riscontrato è stata segnalata nell'agosto 2009. Sembra ragionevole che, poiché la versione era ancora attuale e supportata all'epoca, l'ISO fosse patchato e quella che hai scaricato fosse una versione che è non più vulnerabile.
Inoltre, sembra che tu abbia dimostrato abbastanza bene che non è vulnerabile. Dopotutto, hai provato l'exploit e sembra che non sia riuscito.
Perché non provi un exploit più recente? Qualcosa come CVE-2013-2094 che dovrebbe interessare anche Ubuntu, per esempio.