Libssh2-Exploit
목표
이 프로젝트에서는 CVE-2019-13115로 설명된 libssh2의 out-of-bounds 읽기 취약점에 대한 익스플로잇을 생성하는 것을 목표로 합니다. 악성 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> 이 명령은 충돌을 발생시킵니다
- libssh2 라이브러리를 사용하는 C 프로그램을 컴파일하려면 다음 명령어를 사용합니다.
- 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