
OpenSSH ユーザー名列挙 - CVE-2016-6210
CVE-2016-6210 の「武器化」されたエクスプロイトの最初のバージョンですFull Disclosure に Eddie Harari が投稿したもの http://seclists.org/fulldisclosure/2016/Jul/51
大きなパスワードを送信することで、リモートユーザーは SSHD を実行しているシステム上のユーザーを列挙できます。この問題は、SHA256/SHA512 ハッシュの計算に BLOWFISH ハッシュよりもはるかに時間がかかるため、ほとんどの最新の構成に存在します。
SSHD が存在しないユーザーを認証しようとするとき、SSHD ソースコードにハードコードされた偽のパスワード構造を選択します。このハードコードされたパスワード構造では、パスワードハッシュは BLOWFISH ($2) アルゴリズムに基づいています。 実際のユーザーのパスワードが SHA256/SHA512 を使用してハッシュ化されている場合、大きなパスワード (10KB) を送信すると、存在しないユーザーに対してサーバーからの応答時間が短くなります。
注: Harari 氏はこれを opensshd-7.2p2 でテストしましたが、私のテストは OpenSSH_6.9p1 で行いました。
このスクリプトは現在、有効なユーザー名と無効なユーザー名のタイミングの偏差が 10~30% の範囲に基づいています。現在、20% を超えるものだけが有効なユーザー名として受け入れられ、それに応じて出力リストに追加されます(スクリプト内で自由に調整してください)。これは私にとって有効であることが証明されています。
このプロジェクトを Bitbucket から Github に移行しています