Libssh2-Exploit
Цели
В этом проекте мы стремимся создать эксплойт для уязвимости чтения за пределами границ в libssh2, описанной в CVE-2019-13115. Создать вредоносный ssh-сервер, чтобы вызвать сбой клиента, подключающегося к нему, и выяснить, можно ли использовать это для кражи данных с клиента.
Запуск OpenSSH-сервера
- Скачайте и распакуйте openssh-8.1p1.tar.gz (для неизменённого OpenSSH-сервера) или openssh-malicious.zip (для вредоносного сервера).
- Перейдите в папку и выполните следующие команды:
- ./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
Настройка libssh2 и проверка сбоя
- Скачайте и распакуйте libssh2-1.8.2.tar.gz в любую папку, например /usr/src/libssh2-1.8.2
- Выполните следующие команды:
- ./configure
- make
- make install
- ./ssh2 127.0.0.1 <username> <password> Это вызовет сбой
- Для компиляции любой C-программы, использующей библиотеки libssh2, выполните следующие команды:
- 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
- Если во время выполнения возникают проблемы с динамически подключаемыми библиотеками:
a) убедитесь, что библиотеки находятся в /usr/local/lib
b) LD_LIBRARY_PATH=/usr/local/lib
c) export LD_LIBRARY_PATH