Windows のパスワードを解析するツール(取扱注意)

※ 注意。このツールを使用して他人のPC のパスワードを解析する行為は不正アクセス禁止法、あるいはその他の法律(コメント欄参照) で処罰の対象となると思われますので、絶対にそのような用途に使用してはいけません。この記事はそのような行為から自分のPC を守る事を目的としています。

Ophcrack 2.1 - LiveCD    - にわか鯖管の苦悩日記 _| ̄|● (2006-02-14)」 より。
Windows のパスワードを解析するというOphcrack のLiveCD を試してみた。iso イメージをダウンロードしてそれをCD-R に焼き、空いてるPC にセット、Ubuntu Linux のブートプロセスが始まり、そしてX Window が起動、ものの数秒でAdministrator のパスワードが表示されたよママン…。なんてこったい。
攻撃者がローカルマシンの前に数分滞在することが出来たならもうそこで試合終了ですカ? 詳しい手法はさておき、どうやらレジストリ内のSAM(Security Account Manager) ってのを総当たりで解析するみたい。
こういうツールが現に存在するわけで、重要機密が入ったノートPC が丸ごと盗難に遭うなんてことになると…。というところで参考資料。

さて、具体的にはどういう対策を取ると良いのだろう。できればお金のかからない方法だとなお良し。というわけでささっと調べてみた。

以下の3点のうちいずれかの対策を実行し、「LM ハッシュ」 というものを保存しないようにすると良さそうです。

  1. グループ ポリシーを使用してNoLMHash ポリシーを実装する
  2. レジストリを編集してNoLMHash ポリシーを実装する
  3. 15文字以上の長さのパスワードを使用する

で、検証環境はWindows 2000 Professional SP4 だったので、2番目の「レジストリを編集してNoLMHash ポリシーを実装する」 を手順通りに行ってみた。レジストリを編集し、再起動後パスワードを変更。この状態でシャットダウンし、Ophcrack LiveCD を起動。おぉ、Administrator アカウントそのものが表示されなくなった。これで対策完了、という理解でいいのかな。
LM ハッシュを無効にすると一部互換性に影響が発生するようですが、それが特に問題にならない環境ならコレやっといたほうがいいかも。レジストリいじったりとかが出来ない場合は15文字以上のパスワードを設定するしか方法がないわけだけど、結構これはキツいよ。さすがに忘れる…。
(2006/02/16 01:01 追記)
Windows XP Professional SP2 で1番目の「グループ ポリシーを使用してNoLMHash ポリシーを実装する」 の対策をしてみた。同じく、再起動後パスワード変更。何故かLiveCD ではツールが起動しない(ウィンドウがすぐ閉じてしまう) ので、Windows インストーラ版を入れてみた。こっちだとちゃんと? 起動できた。
パスワードは見えないものの、アカウントそのものは見えてしまっているので、Windows XP でもWindows 2000 と同様、2番目の方法で対策した方がより安全かもしれない。また後日追試予定。
(2006/02/20 13:51 追記)
御指摘のコメントも頂き、ありがとうございました。精進します。

(2006/02/24 11:48 追記)
Windows XP 限定ですが、マイクロソフトが無償で提供している「Microsoft Shared Computer Toolkit for Windows XP」 でも上記の件に対する対策をとることができます。

インストールすると自動的に表示される「[はじめに] ツール」 の中の該当部分のチェックを入れるだけで簡単に設定することが出来ます。ネットには日本語での資料が上がっていないようなので、一緒にインストールされるPDF から該当部分を引用。

Windows に (LMHash を使用せずに) セキュリテイ保護された形式でパスワードを格納するよう強制する。この設定では、各パスワードの LanMan ハッシュ形式を無効にして、パスワードがセキュリテイ保護された形式で格納されるようにします。LanMan ハッシュ (LMHash)とは、簡単に解読できる暗号化メカニズムで、古いオペレーティングシステムとの下位互換性のために使用されます。

再起動後、パスワードを変更すれば対応完了です。
「Microsoft Shared Computer Toolkit for Windows XP」 は公共の場で使うPC 用のツールなのですが、個人で使う場合にも色々便利な点があります。ただ、アンインストールしても完全には元の状態に戻らないなど、使いこなすのは色々大変そうです。まだ色々調べ中なので、また時を改めて。
Ophcrack Live CD 以外にもヤバいツールはいくらでもありますよ、というお話。どの程度まで手間隙かけて対策するか、てのは難しいです。

ディスク丸ごと暗号化できるという、「TrueCrypt」 勉強中です。
(2006/02/26 21:42 追記)
Windows 2000 の場合は、意を決してレジストリをいじるか、15文字以上のパスワードを設定の方向なのですが、そのレジストリいじりが少しだけラクになるように、Windows 2000 の.reg ファイルを作ってみました。手元にWindows 2000 Professional SP4 なPC を2台用意し、1台は手動で設定、もう1台はこの.reg ファイルで設定、結果が一致することを確認しています。以下のテキストをメモ帳などにコピー、"add_nolmhash.reg" 等の名前で保存後、ファイルをダブルクリックすると追加されます。
add_nolmhash.reg (Windows 2000 専用)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\NoLMHash]

また、同じレジストリ値を削除するための.reg ファイルも作りました(というほど大したものでもないですが…)。この.reg ファイルを実行し、上記レジストリ値が削除されることを確認しています。以下のテキストをメモ帳などにコピー、"remove_nolmhash.reg" 等の名前で保存後、ファイルをダブルクリックすると削除されます。
remove_nolmhash.reg (Windows 2000 専用)

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\NoLMHash]

一応テスト済みではありますが、実行は自己責任と言うことでお願いします。
なお、Windows XP の場合はレジストリの構成が少し異なっているので、このファイルを流用することは出来ません。
※ この手法は以下の記事を参考にさせて頂きました。ありがとうございます。

(2006/03/03 13:06 追記)
CD-ROM ブートつながりでここにぶら下げ。
CD-ROM からのブートだけでなく、ネットワークブートも禁止しておいたほうがよさそう、というお話。固定PC であれば、物理的な盗難や工作は難度が上がりますし、BIOS でブート順序をHDD 最優先に設定し、パスワードを掛けておけばかなり安心になりそう。
ノートPC は盗難にあう可能性を考えると、HDD 暗号化とかもっと根本的な対策が必要になると思います。

(2006/03/28 11:02 追記)
LiveCD ではなく、Windows にインストールするタイプのophcrack 2.2 がリリースされました。こちらはインストールするのに管理者権限が必要です。

v 2.2
- (feature) support of the new table set (alphanum + 33 special chars - WS-20k)
- (feature) easier configuration for the table set (tables.cfg)
- (feature) automatic definition of the number of tables to use
at the same time (batch_tables) by queriying the system for the size of the memory
- (feature) speed-up in tables reading
- (feature) cleaning of the memory to make place for table readahead (linux version only)
- (feature) improved installer for windows version
- (fix) change of the default share for pwdump4 (ADMIN$)

SourceForge.net: Files

そういえば、2.1 では、リモートPC のSAM も読めるっぽいようなメニューがあったのだけど、上手く動かず。
(2006/03/29 15:03 追記)
LiveCD 版も0.9a → 1.0 になってたのに、何故かスルーしてしまっていたので再度追記。検索までにかかる時間が短くなっている模様。

(2006/05/05 23:23 追記)
コメント欄で教えて頂きました。ありがとうございます。こんな記事が3年も前にあったのですね…。

(2006/05/16 15:09 追記)
パスワードの重要性について。どちらかというと管理者側の話。

 また,「パスワードは8文字以上にすべき」というガイドラインをよく見かける。環境によっては,この「8文字」に特別な意味がある。例えばWindowsシステムでは,パスワード7文字ごとにハッシュ・データを作成する。このため,8文字のパスワードを破るには,攻撃者は8~14文字のパスワードについて試行しなければならない。7文字のパスワードと比較すると,攻撃者の手間は1文字分以上のものとなる。

 「パスワードは15文字が望ましい」とも言われるが,これにも環境によっては特別な意味がある。Windowsシステムでは,14文字以下のパスワードについてはWindows 95/98/Meとの互換性を維持するため,大文字と小文字を区別しない。このためWindowsシステムにおいては,15文字以上のパスワードが推奨されることが多い。

パスワードの重要性を再認識せよ~“破り方”を知り,対策に役立てる~:ITpro

とのころなので、Windows システムにおいて8文字、あるいは15文字というのは意味があるようです。
パスワード自体をどうやって覚えておくか、というのは結構難しい問題で、理想を言えば頭の仲で記憶しておく。でもなかなか難しいので、じゃあどうするかというと、実は、しっかりと管理できるのであれば紙に書いておくのも別に悪くはなかったりする。ID マネージャ的なソフトを使うことに抵抗のある方はこの方法で。もしくはきちんとロックがかけられる携帯電話のメモ帳に書いておくのも有効と思う(実際、そうしてるヒトを見る)。
XP だと、現在のパスワードと対になった「パスワードリセット ディスク」 を作成しておくことができるようです。長めのパスワードを設定しておいて、万が一忘れたらこのディスクでリセット→新たに長いパスワードを設定→「パスワードリセット ディスク」 を作成と。もちろん、このディスクは厳重に管理する必要があります。

(2006/05/29 11:32 追記)
空のパスワードになっているアカウントが有効になってないかどうか調べることは大変重要です。

(2006/07/09 13:39 追記)
マイクロソフト謹製のオンラインパスワードチェッカ。

こういうのって、セキュリティ的にどうなん? と思うわけですがそこはさすがマイクロソフト。

パスワード チェッカーの概要
パスワード チェッカーにより、パスワード チェッカーにアクセスするために使用したコンピュータ以外の場所に情報が収集、保存、または転送されることはありません。 イメージはお使いのコンピュータ上で、このページから他のページに移動するまでの間だけ動作します。

パスワード チェッカーに入力したパスワードのセキュリティは、Windows にログインする場合に入力するパスワードのセキュリティと同程度です。 パスワードはコンピュータ上でチェック、検証されますが、インターネットに転送されることはありません。

パスワード チェッカー

とのことなので、一応、大丈夫と判断してよさそう、ってことかと。