制作 : YOSHI-SystemServiceパスワードを解除したい
パスワードを忘れた
わからなくなったWindowsのパスワードをophcrackで解析して突破する手法については、Part1(Windows XP)、Part2(Vista)、Part3(Windows 7)
で検証したが、Windows 7ではパスワードの桁数が多かったり辞書に無いような語が含まれていると、解析できないことが多かった。
そこで、今回はシステムファイルを差し替える方式で管理者権限を奪取して、パスワードを解除する手法について実験してみる。
仮想環境のWindows 7 Pro を使用
実験ではVMwareによる仮想環境で行っているが、実機でも可能である。OSは32bit、64bitを問わない。
起動中に無理やり電源を切る
システムファイルの書き換えは、Part1 で行ったようにWindows 10のインストールメディアでも可能だが、
今回は、OSの起動中に無理やり電源を切って、意図的にスタートアップ修復を起動させ、
スタートアップ修復のプログラムが持つ脆弱性から、管理者権限でメモ帳を起動して、
メモ帳のメニューバー<ファイル<開く で起動したエクスプローラーに似た画面で、無理やりファイルを差し替える。
なお、この手法はWindows 8/8.1/10では、対策がなされているため実行できない。
脆弱性を利用する
スタートアップ修復
その後の起動で「Windowsエラー回復処理」が出たら、スタートアップ修復の起動(推奨)を選ぶ。
問題の詳細の表示
「問題の詳細の表示」を押す。
erofflps.txtのリンクを押す
「オンラインのプライバシーに関する声明が利用できない場合は」の下にある
X:\Windows\system32\ja-JP\erofflps.txt のリンクを押す。
メモ帳が管理者権限で起動した
erofflps.txtが管理者権限を持つメモ帳で開かれた
メニューバーのファイルから「開く」を選ぶ。
C:¥Windows¥System32にアクセスできた
erofflps.txt を開く権限だけで良いはずなのに、C:¥Windows¥System32にあるファイルを削除したり、リネームする権限も持ったメモ帳が起動してしまう。
ファイルを差し替える
ファイルの種類
ファイルの種類より「すべてのファイル」を表示させるを選ぶ。
cmd.exeをコピーして貼り付け
C:¥Windows¥System32¥cmd.exeを右クリックでコピーして、同じC:¥Windows¥System32のフォルダ内に2回貼り付ける。
C:¥Windows¥System32のファルダ内に cmd - コピー.exe や cmd - コピー (2).exe のようなファイルが出来上がれば成功
ユーザー補助の実行プログラムのうち sethc.exe と utilman.exe をリネームする
C:¥Windows¥System32¥sethc.exe のファイル名を sethc_bak.exe に、
C:¥Windows¥System32¥utilman.exe のファイル名を utilman_bak.exe に変えてバックアップしておく。
変更後の名前
ファイル名は普通に右クリックの「名前の変更」やF2キーから変更する。
変更後の sethc.exe や utilman.exe のファイル名は何でもよいが、後で戻すときのために控えておくこと。
スタートアップ修復を終了する
メモ帳とスタートアップ修復を終了する。
通常起動させる
ユーザーの情報を操作する
ログイン画面でコマンドプロンプトが起動する
ユーザー補助を起動しようとすると、代わりにログイン画面でコマンドプロンプトが管理者権限で立ち上がる。
utilman.exe や sethc.exe はユーザー補助の実行ファイルで、これをコマンドプロンプト cmd.exeに差し替えていることからこのような動作となる。
このコマンドプロンプト上で
Part1と同様にユーザーの情報を操作する。
ユーザー名の一覧を取得する。
ローカルアカウントのユーザー名 test-user のパスワードを uso800 に置き変える。C:¥Windows¥System32>net user
C:¥Windows¥System32>net user test-user uso800
改変した部分を元に戻す
正しいsethc.exeに戻す
書き換えられた sethc.exe は削除し、
C:¥Windows¥System32¥sethc_bak.exe のファイル名を sethc.exe に戻す。
正しい utilman.exe に戻す
書き換えられた utilman.exe は削除し、
C:¥Windows¥System32¥utilman_bak.exe のファイル名を utilman.exe に戻す。
通常起動させる
この手法への対策について
- システムファイルの書き換えのために、Windows7/8/8.1/10 のインストールメディアを使用していないので、
BIOSにパスワードをかけて別のOSでの起動を制限しても防ぐことはできない。
この手法でのパスワード解除を防ぐには、ハードディスク上のファイルにアクセスさせないことが必要で、
HDDパスワードをかけたり、BitLockerで起動ドライブ全体を暗号化し、電源投入時に必ずパスワードが要求されるように設定する必要があるだろう。
関連サイト