Libssh2-Exploit
目標
このプロジェクトでは、CVE-2019-13115 で説明されている libssh2 の領域外読み取り (out-of-bounds read) の脆弱性を利用するエクスプロイトを作成することを目的としています。悪意のある 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