Libssh2-Exploit
Objetivos
Neste projeto, pretendemos criar um exploit para uma vulnerabilidade de leitura fora dos limites no libssh2 descrita em CVE-2019-13115. Crie um servidor ssh malicioso para fazer com que um cliente que se conecte a ele trave e veja se isso pode ser explorado ainda mais para roubar dados do cliente.
Colocando o Servidor OpenSSH em Execução
- Baixe e extraia o openssh-8.1p1.tar.gz (para o servidor OpenSSH não editado) ou openssh-malicious.zip (para o servidor malicioso).
- Vá para a pasta e execute os comandos abaixo
- ./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
Configurando o libssh2 e verificando o crash
- Baixe e extraia o libssh2-1.8.2.tar.gz para qualquer pasta, por exemplo /usr/src/libssh2-1.8.2
- Execute os seguintes comandos
- ./configure
- make
- make install
- ./ssh2 127.0.0.1 <username> <password> Isso vai causar um crash
- para compilar qualquer programa C que tenha bibliotecas libssh2, use os seguintes comandos
- 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 a execução houver problemas com bibliotecas dinamicamente vinculadas
a) garanta que as bibliotecas estejam presentes em /usr/local/lib
b) LD_LIBRARY_PATH=/usr/local/lib
c) export LD_LIBRARY_PATH