MS-CHAPV2プロトコルでの認証プロセスのダイナミクスを理解しようとしています。特に、 Evil Twin攻撃 を実装した場合、NTLM v1パスワードを取得する方法がわかりません。 MS-CHAPV2の実装からは不可能のようです。
これがコンテキストです。ハッカーがノートブックを設定して、WPA2エンタープライズネットワークでEvil Twin攻撃を実行します。彼は正しいアクセスポイントと正しい認証サーバーになりすまし、一部のクライアントが自分のノートブックに接続して資格情報を盗み、企業ネットワークでそれらを偽装するのを待ちます。
ネットワークは、MS-CHAPV2を内部認証プロトコルとして使用します。
クライアントがEAPOLプロセスを開始してこの偽のネットワークにアクセスすると、(サーバーのクライアントの)内部認証プロセスに到達します。
このプロセスは次の手順に従います。
攻撃者として、クライアントが受信したすべての情報とサーバーが送信したすべての情報を見ることができます。ただし、クライアントが「MD4(UserPassword)」文字列をキーとして使用してチャレンジレスポンスの3つの異なる部分を暗号化する場合(ポイント5を参照)、このMD4パスワードを取得できる可能性はありますか?
テストプロセスで、なぜこのようなもの(NTLMV1ハッシュ)を取得できるのですか? (hostapd-wpe
を使用しています)
TL; DR-チャレンジ/レスポンスメカニズムで使用されるDESキーを簡単にブルートフォースできます。チャレンジ/レスポンスメカニズムを逆にするには、56ビットキーを持つ2つのDES反復をブルートフォースするだけです。
NTハッシュを取得するには、チャレンジと応答の最初の3分の2を連結し、K3をBase64として連結する必要があります。
NTLMは challenge-response authentication protocol 本質的にこれが意味することです。一方の当事者はチャレンジを提示し、もう一方の当事者は有効な応答を提供する必要があります。これが発生しない場合、認証は行われません。
これを説明する良い方法はセキュリティの質問です。アカウントのロックを解除する場合、次のセキュリティの質問に正しい答えを提供する必要があると想像してください。 あなたの子供時代のペットの名前は何でしたか?これは、これを正確に描写しているように見えるものとは正確には同じではありませんが。
高レベルの概要
NTLMには、クライアントを認証するための3つのメッセージがあります。これらのメッセージは、次のMicrosoftドキュメントで定義されています NTLMメッセージ
NEGOTIATE_MESSAGE
CHALLENGE_MESSAGE
AUTHENTICATE_MESSAGE
これらのメッセージはリストされている順序で送信されます。これらのメッセージの表記をNM
、CM
およびAM
に変更します。
最初に、クライアントはNM
をサーバーに送信します。これにより、クライアントはサーバーがサポートするNTLMオプションをネゴシエーションすると、サーバーに送信します。 CM
をクライアントに送信します。 CM
の背後にある考え方は、クライアントが自分の身元をサーバーに証明できるようにすることです。最後に、クライアントはAM
をサーバーに送信します後CM
はクライアントによって処理されます。
ハッシュ
NTLMは、サーバーに保存されている2つのハッシュされたパスワードを使用します。これらのパスワードは、ネットワーク経由で送信される前にソルトされますが、マシンのメモリにはソルトされません。これは、サーバーからハッシュ値を取得すると使用できるため、問題になります。パスワードを必要とせずに認証します。
最初のハッシュはLM
と呼ばれ、もう1つはNT
と呼ばれます。 LMはDESベースの関数を使用し、NT
はMD4を使用します。
[〜#〜] lm [〜#〜]
リンクされた図 は、「ネイピア」の例を使用してLM
ハッシュがどのように計算されるかを示します。あるいは、以下の手順は同じ前提に従います。
KGS!+#$%
を暗号化するために使用されます。なぜ「KGS!+#$%」が選択されるかは定かではありませんが、以下の LAN Manager Wikipediaページのように、理由は RFC 2443の作者に関連しているようです 。
文字列“ KGS!+#$%”は、キーのグレンとスティーブを意味し、Shift + 12345の組み合わせを意味する可能性があります。グレンゾーンとスティーブコブは、RFC 2433(Microsoft PPP CHAP拡張機能)- LAN Manager Note 2。
[〜#〜] nt [〜#〜]
NTハッシュでは、各文字がUTF-16に変換され、 リトルエンディアン 形式を使用します。ここではエンディアンについて詳しく説明しませんので、不確かな場合は調査が必要になりますそれが何を意味するのか。
次の「napier」の例を使用して別の図をもう一度見てみましょう diagram Wordのnapierを取得し、すべての文字の後にnullバイトがある例を示します。たとえば、「napier」は'n' 0 'a' 0 'p' 0 'i' 0 'e' 0 'r' 0
になります。リンクされた図では、これはUTF-16-LEで「napier」をエンコードした結果です。次に、128ビットコードを返す文字列から取得したMD4署名を使用します。この例では、307E40814E7D4E103F6A69B04EA78F3D
となります MD2/MD4暗号化サイト を使用して、これを自分で試すことができます。基本的に、関数はNTハッシュを取得するために次のようになります。MD4(UTF-16-LE(password))
低レベルの概要
これでハッシュとチャレンジ/レスポンス認証方式の高レベルの概要について説明したので、これがどのように機能するかの低レベルの概要を見ていきます。
上記のハッシュはどちらも16バイトの値を生成し、5バイトの0が追加されて21バイトに到達します。これらの21バイトは、3つの7バイト値に分かれています。各7バイトの値は、DESクライアントに送信する8バイトのチャレンジを暗号化するためのキーとして使用されます。次に、3つの暗号化を使用して24バイトの応答が形成されます。
基本的に、以下のコードブロックは、実行されたステップが数学表記でどのように見えるかを示しています。
C = 8-byte server challenge, random
K1 | K2 | K3 = NTLM-Hash | 5-bytes-0
Response = DES(K1,C) | DES(K2,C) | DES(K3,C)
ハッシュ/暗号化の弱点
NTLMは非常に古いプロトコルです。通常、古いプロトコルは存続しません(問題がある場合)。 NTLMは、時間のテストに耐えられなかった古いプロトコルの1つです。第一に、使用される機能は、現代のハードウェアには弱すぎる/安すぎる。
DESを見てみましょう、DESは1975年に最初に公開されました。これは非常に古いプロトコルです。DESの主な問題の1つは、ブルートに対する弱点です。 -特に現代での強制攻撃実際には DESの強みと弱み によると、十分な資金があれば1977年でさえDESをブルートフォースすることが可能であるように思われます。
1977年に、DiffieとHellmanは、1日でDES=キーを見つけることができると推定される2000万ドルのコストがかかるマシンを提案しました。
したがって、DESがブルートフォース攻撃に強くなることは決してありませんでした(とにかく、標準化されたNSA後のコンサルテーションバージョン-元々、設計者は「実際の」鍵サイズを提案していました)。
AESキーと比較してDESキーを見つけるのにかかる時間の背後にある数学について疑問に思っている場合は、以下を参照してください。 クラックにかかる時間DESとAES? 、一番上の答えは、かかる時間の長さを明確に示しています。投稿が'11からのものであることに注意してください。物事は変化し、計算能力も変化するので、それを考慮に入れてください。 、その回答を正確な図ではなくガイドラインとして参照してください。
要するに、DESキー(特に今日のコンピューティングの場合))を総当たりにするのにかかる時間は非常に短すぎて、現代の基準に達していると見なされず、時代遅れになっています。
MD4はどうですか?メッセージダイジェスト4を見てみましょう。ご存知のように、MD4のようなMD5は、その速度が原因で、パスワードハッシュなどにはまだかなり弱いものです。
MD4は比較的「新しい」ハッシュ関数ですが、まだ弱いです。それは1990年に Ronald Rivest によって最初に公開されました。彼は暗号法に非常に精通しており、暗号学者によく知られています。
MD4の問題(およびMD5の実際)は、衝突の計算がいかに安価であるかです。つまり、衝突とは、関数が2つのdistinct入力を同じ出力にマップする場所であり、衝突攻撃は、同じ出力を生成する2つの入力を見つけようとするプロセスを表します。 MD4での衝突の計算は非常に高速で、非常に安価です。実際、2回未満のハッシュ演算で衝突を発見できる 2007年に公開された衝突攻撃 がありました。
その他の弱点
明確な問題の1つは、リレー攻撃を実行する機能です。以下を参照してください。 NTLMリレーの実用ガイド
投稿の長さのためにここでは説明しませんが、上記のリンクには十分な詳細が必要です。
MSCHAPV2の弱点
MS-CHAPV2の弱点については、プロセスのステップ4でNTハッシュが攻撃者としてソルトされないため、再利用できます。これは、NTHashがパスワードとして使用されることを意味し、ユーザーとして認証するために使用できることを意味します;さらに、ASを偽装してユーザーを認証することもできます。塩が使用されていないため、これによりRainbowテーブルを使用できます。
別の露骨な問題はステップ6にあり、各キーに対してブルートフォース攻撃を簡単に簡単に実行できます。以下を参照してください。 Wi-Fiネットワークにおける悪質なツインの脆弱性
さらに読む