僕の世界観を変えてみる

文系男子が趣味でプログラミングを勉強していくブログです。他にも日常で起きたどうでもいいことや愚痴を書いていきたいです。座右の銘は和を以て貴しとなすです。仲良くやろうよ。

windowsのログインパスワードを解析&リセットする方法

f:id:htmllifehack:20170223201856j:plain


ログインパスワードがわからなくなってしまった。どうにか解除してほしいと依頼があったので試しに色々なツールを試してみました。

解除するのは意外と簡単で、utilmanをcmdに書き換えてコマンドプロンプトから解除する方法と、kon-bootでバイパスする方法と、Trinity Rescue Kitを使って解除する方法と、ophcrackを使ってパスワードを解析する方法があります。

今回はとりあえず全部試してみたんですが主にophcrackでつまずいたところをメモしていきます。


今回の状況説明

今回依頼があったpcはWindows7です。
上記のどの方法もWindows8.1までは試してあり、どれも成功してます。
Windows10はまだやってないです、ごめんね。
マイクロソフトアカウントではなくローカルユーザーのパスワードを解除しました。
ちゃんと本人確認もしたので盗難品でないですよ。

ophcrackとは

まずophcrackはログインパスワードを解析するソフトです。
ログインパスワードはLMハッシュNTLMハッシュという謎の文字列に変換された状態でHDD内に保存されています。
ハッシュは暗号化とは違って元の文字列に復号化することができません。
なのでハッシュ化された文字と元の文字をあらかじめデータベース化しておくことで、検索するだけでパスワードが表示されるような仕組みを作りました。

このデータベースのことをRainbow Tableと呼び、テーブルを使ってパスワードを解析するソフトがophcrackになります。

例えば123abcという文字をmd5という計算方法でハッシュ化するとa906449d5769fa7361d7ecc6aa3f6d28という文字列になります。
じゃハッシュがa906449d5769fa7361d7ecc6aa3f6d28だったらパスワードは123abcだなってふうにわかるようにデータベースに登録するんですね。
こういう組み合わせを先人が苦労して登録したのがRainbow Tableです。
有難や先人
ちなみにハッシュ化で調べるとブラウザでハッシュ値に変換してくれるサービスがあります。


kali linuxにもophcrackは入っているんですがレインボーテーブルがないのでophcrackのliveCDを作って行いました。

準備

公式サイトからLiveCD版をダウンロードします。
Ophcrack

f:id:htmllifehack:20170223210816j:plain

2つ目のVista/Windows7のものでいいかと。
これはレインボーテーブルが最初からついてくるタイプですね。
3つ目はテーブルなしのものです。

f:id:htmllifehack:20170223211620j:plain

650MBほどなのでCDでいいんじゃないでしょうか。
ライティングソフトは適当にダウンロードしてくだされ。
おすすめのライティング ソフト - k本的に無料ソフト・フリーソフト
Windows7はソフトなくても書けたんですよ。

クラック開始

ブートすると自動的にophcracが起動してパスワードの解析が始まります。
ただし、最初は必ずnot foundと表示されて解析は失敗となります。

f:id:htmllifehack:20170223215344j:plain

なぜかというとテーブルがないからなんですね。
ではTableと書かれたボタンをクリックしてテーブルをダウンロードしましょう。

f:id:htmllifehack:20170223215607j:plain

全部赤くなってるってことはインストールされていない状態なんで、インストールして緑にせなパスワードを解析してくれないわけです。
レインボーテーブルでググると色々出てきますが有料のものもあるのでここではvista freeというものをインストールします。

ここで少しつまずいたんですが、vista freeというテーブルを選択してインストールのボタンを押すとフォルダ選択画面が出てきます。
どこにテーブルを保存しますかって意味だと思ってhomeとか適当に指定していたんですが、Your requested the table(s) /home/tux, but some or all tables could not be found or loaded.
とエラーが出ます。

見つかりませんでしたって表示が出たので、なんで?テーブル付きなんじゃなかったの?って困惑したんですが前の文を読むとhomeにはテーブルはありませんよって文になるので、あ、テーブルが保存されているフォルダを指定しろってことだったのかとやっと理解しました。
英語が読めないと大変なんだわ本当。

でもテーブルってどこにあるん?ってことでまたググります。
/media/sda1/table/vista_freeとか出てくるんですけど、ないですね。
ありました?ないですよね?
おそらくテーブルが保存されているフォルダはsda1と決まってるわけではなさそうです。
僕の場合は /media/sr0/tables/vista_proba_freeにありました。
もし見つからなかった場合はmediaの中のどこかにtableというフォルダがあるはずなので一つ一つ探してみてください。

テーブルのインストールが完了したらcrackと書かれたアイコンをクリックしてクラッキングスタートです。

f:id:htmllifehack:20170223221414j:plain

下のウィンドウのstatusの数値が100%になったら解析完了です。
4つあるバーが全て緑色になるんですけど、100%になる前にパスワードの解析は終了してるみたいですね。

f:id:htmllifehack:20170223221643j:plain

解析が終わるとピンクの枠にパスワードが表示されます。
今回は僕のじゃないのでパスワードにモザイクを入れてあります。
5桁の数字と3桁のアルファベットの8桁で構成されたパスワードでしたが、5分かからないで解析が終わりました。
簡単ですね。

注意書き

はい、ここで注意点が1つ。
レインボーテーブルというデータベースから同一のハッシュ値を検索して、合うものがあればパスワードが表示される仕組みです。
つまりデータベースに同一のハッシュ値がなければ解析はできないということなんです。
大文字小文字のアルファベットと数字を組み合わせた13桁以上のパスワードは多分解析できません。
だってとてつもない数になるから。
ブルートフォースのやり方もありますが時間もかかるのでophcrackで解析できなければ諦めて、解析ではなく解除する方法に移行しましょう。

ユーザーアカウントが表示されないときの対処法を書きました。
www.htmllifehack.xyz

ログインパスワードを解除する方法

解除というかリセットする方法ですね。
冒頭で話したutilmanをcmdに変換する方法はめんどくさいので書きません。
代わりにTrinity Rescue Kit を使った方法を書きますね。
ただね、申し訳ないんですけど、液晶がグレアだったから写真撮ると僕が映り込んじゃうんで、画像なしで手順を書くことになりました。
ごめんね。

Trinity Rescue Kitとは

これはパスワードをリセットするLiveCDなんですけど、ウイルスチェックだとかipアドレス設定だとかジャンクファイルクリーニングだとか色々できるようなんですけど、ググっても基本的にログインパスワードのリセット方法しか出てきません。

壊れてもいいパソコンがあれば他の項目も試してみたいですね。

trinity rescue kit は下記サイトからダウンロードできます。
Trinity Rescue Kit ダウンロード

f:id:htmllifehack:20170223224645j:plain

いくつかバージョンがあったんですがとりあえずピンクの枠のものをダウンロードして使いました。
これも数百MBしかないのでCDで平気です。

Run trinity rescue kit 3.4...

とりあえずブートするとRun trinity rescue kit 3.4...とその下に1〜17ほど起動する項目が出てきます。
ほっとくと1番上のものが起動しますので分からなければそのままでOK。

windows password resetting -->

起動するとTrinity rescue kit easy menu という画面が出ます。

welcome
TRK Help -->
keybord layout selection -->
Windows password resetting -->

と結構な数の項目が出てきますが上から4番目のWindows password resettingを選択してください。

winpass with prompt for username first

<-- go back to main menu
reset password on built-in Admini ...
interctive winpass
winpass with prompt for username first

5つくらいの項目が出てくるのでここはwinpass with prompt for username firstを選択。

するとUsername to reset password of :_というふうにパスワードリセットしたいユーザー名を入力しろと表示されます。
Ownerだとかuserだとかadminだとか入力してください。
今回はownerというユーザーのパスワードをリセットするためここではownerと入力しました。

そうするとファーっと何かが始まります。
make your choice or 'q' to quit [1] : _
と出るので1を入力してください。
1: /sda4/windows って表示が出るんですがこれは4つ目のパーティションのwindowsってフォルダを検索しますってっことだと思います。

そしてまたファーっと動き出して最終的に
user edit menu :
1 - clear (blank) user password
2 - edit (set new) user password ...
3 - promote user ...
などなどと表示されるので Select : [q] >_で1を入力します。
password cleared!と表示されたら完了です。
press any key to continue_ と言ってくるので何かキーを押してメインメニューへ戻り再起動します。
あとはbiosを元に戻してHDDからwindowsを起動するとログインパスワードを入力しなくてもログインできるようになっているはずです。

リセットしていいならこれが一番簡単じゃないですか?

まとめ

いかがだったでしょうか。
本人に気付かれずにPCの中身をみたい!って時はophcrackで解析するしかないんですけど、そうでなければリセットが楽です。
人のPCをクラックしちゃダメですよ。
ちなみに冒頭で話した残りのkon-bootというのはパスワードを解析するでもなくリセットするでもなく、パスワードが設定されている状態でログインするバイパスと呼ばれる方法のツールです。
実は有料なんですが古いツールなのでこれから通用することは少なくなるので購入する必要なしとフォーラムで見かけました。
調べるとフリー版もあるにはあるんですが、フリー版を試しましたがバイパスはできず。

kali linuxの本が出てるんですけど、そこにkon-bootおすすめって書かれてたんですよ。
まあきっと翻訳されたものなので発行は結構前なんでしょうね。