
CVE-2016-6210(OpenSSH 7.2-p2 以前)に基づいてユーザー名を列挙するために作成されたカスタムエクスプロイト(python 2.7)
正規に許可されたシステムに対してのみ使用すべきです
このプログラムは、OpenSSH(バージョン 7.3 より前)における脆弱性である CVE-2016-6210 を悪用するためのツールとして作成しました。Eddie Harari 氏によって公開されました
私の理解では、問題はこれらのバージョンの OpenSSH の動作方法にあり、大きなパスワード(この場合は 25kb)が与えられたとき、 ハッシュ処理にかかる時間によってユーザー名が存在するかどうかを判別できるというものです。有効なユーザーの場合、処理時間が長くなります。
このプログラムは、ユーザーが(ワードリストから)多数のユーザー名を送信し、その処理にかかった時間を計算できるようにすることで、 この脆弱性の悪用を支援します。ユーザーは自分に合った時間でアラートを設定でき、処理時間がこれを超えた場合に、 その時間とユーザー名が表示されます。
また、IP またはメールを追加することで、リスト内の項目を、メールアドレスを末尾に付けた場合と付けない場合の両方でテストできます。 デフォルトでは(追加文字が指定されていない場合)、プログラムはワードリスト内の各単語を word および word@IP の形式でテストします。 追加文字が指定された場合は、word@IP を word@appendage に置き換えて同じことを行います。
各単語が送信され応答時間が計測される回数はカスタマイズでき、プログラムは信頼性向上のため、個々の時間の代わりに使用される平均 処理時間を自動的に生成します。
遅延も指定でき、プログラムがあまりにも短い間隔でリクエストを送信しすぎるのを防ぎます。
ssh リクエストコード自体に関しては、cveCode.py 内のコードの大半は Eddie Harari 氏の功績です。送信とタイミング計算には、
Harari 氏のコードを修正したバージョンを使用しています。彼のアドバイザリとサンプルコードはこちらにあります。
注: 私のコードは OpenSSH-7.2p2(クライアントは kali linux)でのみブラックボックステストされており、さらなるテストが必要です。 結果とパラメータはユーザーが管理および解釈します
python exploit_6210.py IP_ADDRESS [-h] [-a ALERT] [-w WORDLIST] [-e EMAIL] [-av ITERATE_AMOUNT] [-d DELAY]
ここで:
IP_ADDRESS は、プログラムをテストする対象ホストです
-a ALERT(オプション、デフォルトは 0.1)は、処理時間がこれを超えた場合にアラートを発生させたい時間(秒単位)です
-w WORDLIST(オプション、デフォルトは usernamelist)は、ホストに対してテストしたいユーザー名のリストへのファイルパスです
-e EMAIL(オプション)は、ワードリスト内の各要素の末尾に試したい IP またはメール(例: @IP_ADDRESS や @email.com のような形式)の追加文字です(項目自体と、項目 + メールの両方が試されることに注意してください)
-av ITERATE_AMOUNT(オプション、デフォルトは 1)は、各ユーザー名について ssh サーバーに問い合わせる回数です。これにより、より信頼性の高い平均タイミングを使用できます(数値が大きいほど、時間が大幅に長くなります)
-d DELAY(オプション、デフォルトは 0.5)は、各リクエスト間のおおよその遅延(秒単位)です(数値が大きいほど、時間が大幅に長くなります)