前回に引き続きophcrackの話です、今日は防衛編です。
ophcrackの使い方については
を参照してください。
ophcrackはSAM(Security Account Manager)データベースのデータを読み取ってパスワードを解析します。つまりSAMにパスワードを保存しなければophcrackはパスワード解析が出来なくなるって事です。
Windows でパスワードの LAN Manager ハッシュが Active Directory とローカル SAM データベースに保存されないようにする方法
Microsoftのページを参照すると記載あるんですが、SAMにパスワードを記録させないようにする方法はいくつかあります。
SAMにパスワードを記録させないようにする方法
・グループ ポリシーを使用して NoLMHash ポリシーを実装する
・レジストリを編集して NoLMHash ポリシーを実装する
・15 文字以上の長さのパスワードを使用する
3つ目の”15 文字以上の長さのパスワードを使用する”というのは他の2つと比べてアプローチが違います。Microsoftサポートオンラインによると
Windows でパスワードの LM ハッシュが保存されないようにする最も簡単な方法は、15 文字以上の長さのパスワードを使用することです。この場合、ユーザーの認証に使用できない LM ハッシュ値が Windows により保存されます。
とあります。つまり15文字以上のパスワードを設定する事で有効でないLM ハッシュ値をSAMに保存して解析されても意味の無い値を表示させてしまおうという事です。
レジストリエディタを使ってNoLMHash ポリシーを実装するのが一番楽そうに思えますが、Windows XP および Windows Server 2003、Windows 2000 SP2 以降で変更する値が微妙に変わっているのでここではグループ ポリシーを使用して NoLMHash ポリシーを実装するというのを使って説明します。
グループ ポリシーを使用して NoLMHash ポリシーを実装する
グループポリシーで、[コンピュータの構成]、[Windowsの設定]、[セキュリティの設定]、[ローカルポリシー]を順に展開して、[セキュリティオプション]をクリックします。
グループポリシーはMMCから開きます。MMCからグループポリシーを開く方法はここを参照ください。
使用可能なポリシーの一覧で、[ネットワークセキュリティ:次のパスワードの変更でLANマネージャのハッシュの値を保存しない]をダブルクリックします。
[有効]をクリックし、[OK]をクリックします。このポリシーは”次のパスワードの変更”
ってのがポイントですね。つまり現時点ではパスワードはSAMに保存されたままって事になります。
再びophcrackに挑戦
さて、再びophcrackに挑戦してみたいと思います。事前準備としましてはアカウント”administrator”パスワードの変更を行ってみました。このポリシーは”コンピュータの構成”のポリシーなのでどのアカウントで設定を行ってもすべてのアカウントに反映されるはずですね。ちなみに”administrator”のパスワードは”administrator”にしてみました。実運用環境だとお察しなパスワードですが、SAMにパスワードハッシュが残っていなければ解析されないはずですね。
予想どおりの結果が出てくれました。”administrator”以外のパスワードは解析されてしまいましたが”administrator”は無事です。そもそもの発端は下位互換のためにLM認証をWindows2000以降がサポートしている事が問題だったわけですが、下位互換を考えなくて良いごく最近のWindowsOSのみで構築された環境であればLM認証は使用できなくした方が安全ですね。
なお、WindowsVistaにおいてはLM認証はデフォルトで無効になっているようです。
よくわかりました。
自分も気をつけたいと思います。