Libssh2-Exploit
Obiettivi
In questo progetto, miriamo a creare un exploit per una vulnerabilità di lettura fuori dai limiti in libssh2 descritta in CVE-2019-13115. Creare un server ssh malintenzionato per causare il crash di un client che si connette ad esso e vedere se questo può essere sfruttato ulteriormente per rubare dati dal client.
Avviare il server OpenSSH
- Scarica ed estrai openssh-8.1p1.tar.gz (per il server OpenSSH non modificato) o openssh-malicious.zip (per il server malintenzionato).
- Vai nella cartella ed esegui i seguenti comandi
- ./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh --with-audit=debug --disable-strip
- make
- sudo make install
- sudo /usr/local/sbin/sshd
Configurare libssh2 e verificare il crash
- Scarica ed estrai libssh2-1.8.2.tar.gz in una cartella qualsiasi, ad esempio /usr/src/libssh2-1.8.2
- Esegui i seguenti comandi
- ./configure
- make
- make install
- ./ssh2 127.0.0.1 <username> <password> Questo causerà un crash
- per compilare qualsiasi programma C che utilizza le librerie libssh2, usa i seguenti comandi
- gcc -g -I /usr/src/libssh2-1.8.2/include -I /usr/src/libssh2-1.8.2/src -L /usr/local/lib ssh2.c -o ssh222 -lssh2
- Se durante l'esecuzione si verificano problemi con le librerie collegate dinamicamente
a) assicurati che le librerie siano presenti in /usr/local/lib
b) LD_LIBRARY_PATH=/usr/local/lib
c) export LD_LIBRARY_PATH