L’Ubuntu Security Notice 959-1 pubblicata il 7 Luglio rende nota l’esistenza di un bug che consente ad un utente normale di elevare i propri privilegi a livello di root, permettendogli di accedere a risorse altrimenti non accessibili.
Questo bug (scoperto da Denies Excoffier), di cui esiste già una patch e che appartiene alla categoria “local privilege escalation”, si annida nel modulo PAM MOTD di Ubuntu. I programmatori hanno commesso un errore nella gestione dei permessi durante la creazione di un file da parte dell’utente.
L’esistenza di un exploit (disponibile su SecurityFocus) in questa occasione non è fondamentale, anche se semplifica ulteriormente la procedura di sfruttamento di questa vulnerabilità. Infatti il cuore di questo exploit è la creazione di un link simbolico tra una directory nella home dell’utente e la risorsa proibita a cui si vuole accedere.
Per essere più chiari: con questo bug un qualsiasi “utente semplice” che abbia le credenziali di accesso al sistema, può scalare i privilegi e catturare il file contenente gli hash delle password (/etc/shadow), normalmente non accessibile.
Di seguito mostro passo-passo l’esecuzione di questa operazione che ho svolto sul mio Ubuntu Server 9.10:
Eccomi loggato in Ubuntu Server 9.10:
angelor@ubuntu:~$ uname -a Linux ubuntu 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux |
Intanto vetifico i permessi del file degli hash delle password:
angelor@ubuntu:~$ ls -l /etc/shadow -rw-r----- 1 root shadow 926 2010-05-02 21:19 /etc/shadow |
correttamente appartengono a root; quindi verifico se posso accedere al file /etc/shadow, il file degli hash delle password:
angelor@ubuntu:~$ cat /etc/shadow cat: /etc/shadow: Permission denied |
come previsto l’accesso è negato.
Ora eseguo l’exploit che ho scaricato da SecurityFocus:
angelor@ubuntu:~$ ./41465.sh /etc/shadow |
per verificare la riuscita dell’exploit chiudo la shell ed effettuo un nuovo login.
Una volta rientrato verifico di nuovo i pernessi del file /etc/shadow:
angelor@ubuntu:~$ ls -al /etc/shadow -rw-r----- 1 angelor angelor 926 2010-05-02 21:19 /etc/shadow |
Questa volta il file appartiene a me! Quindi posso visualizzarlo:
angelor@ubuntu:~$ cat /etc/shadow root:xxxxxxxxxxxxxxxxxxxxxxxxxxx:14731:0:99999:7::: daemon:*:14731:0:99999:7::: bin:*:14731:0:99999:7::: sys:*:14731:0:99999:7::: sync:*:14731:0:99999:7::: games:*:14731:0:99999:7::: man:*:14731:0:99999:7::: lp:*:14731:0:99999:7::: mail:*:14731:0:99999:7::: news:*:14731:0:99999:7::: uucp:*:14731:0:99999:7::: proxy:*:14731:0:99999:7::: www-data:*:14731:0:99999:7::: backup:*:14731:0:99999:7::: list:*:14731:0:99999:7::: irc:*:14731:0:99999:7::: gnats:*:14731:0:99999:7::: nobody:*:14731:0:99999:7::: libuuid:!:14731:0:99999:7::: syslog:*:14731:0:99999:7::: mysql:!:14731:0:99999:7::: landscape:*:14731:0:99999:7::: postfix:*:14731:0:99999:7::: dovecot:*:14731:0:99999:7::: sshd:*:14731:0:99999:7::: tomcat6:*:14731:0:99999:7::: angelor:xxxxxxxxxxxxxxxxxxxxxxxxxxx:14731:0:99999:7::: angelor@ubuntu:~$ |
Ho letto il file delle password senza essere root: questo è il significato di privilege escalation. A questo punto non mi resta che tentare di craccare le password. ma questa è un’altra storia e la racconterò un’altra volta.
Questa vulnerabilità colpisce tutte le piattaforme di Ubuntu 9.10 e Ubuntu 10.04. E’ già disponibile la patch, basta effettuare un aggiornamento dal menù di sistema.
Hey.. “progrmmatori” mica sei Dani sotto copertura? 😀
ehehehe 😉