読者です 読者をやめる 読者になる 読者になる

yyy

CTFつよくなりたい

実家に帰ってきたと思ったら、ノートPC(Win7)をクラックすることになった話

はじめに

帰ってきたばかりで疲れてる時に朝4時まで作業していたからくそ眠い.

無駄に消耗した気がするので,その記録.

経緯

実家のノートPCがネットに接続できない云々で頼まれたから,とりあえずPC開いてみたら管理者のパスワードがわからない

少し酔ってそうな親父に聞いてもわからんと言われたので,クラックするしか無いやん!っていう.

アカウントはもう一個あって,そっち使ってたのかな・・?(そもそもPCを使うことがほぼ無いと言ってた)

やったこと

Ophcrackっていう便利ツールがあるのは知ってて,簡単に言うとWindowsのパスワードを簡単にクラックできるぜっていうツール.

使ってみたこと無いなって思って,ちょうど良い機会だしやってみることにした.

OphcrackはUSBやCDなどからブートできるので,手元にあったUSBに入れてやってみたけど・・・・

SYSLINUX 3.80 2009-05-04 CBIOS Copyright © 1994-2009 H.Peter Anvin et al で止まる

嘘やん・・・って思いつついろいろ調べると,こういうことらしい↓

springpaduser.blogspot.jp

USBブート無理な感じなのか・・・?とか思いつつ,ココらへんで消耗するのも嫌だなぁと思って,自分のPCのWindows(Ubuntuとのデュアルブートにしてある)側に,exeを落としてきて(iso以外にもexeがあった)そこで解析しようと考えた.

そこで必要になるのは,

  1. C:\Windows\System32\config\SYSTEM
  2. C:\Windows\System32\config\SAM

の2つのファイル.

特にSAMファイルには,ユーザがログオンするときに使うパスワードのハッシュが格納されている.

パスワードハッシュにも LM Hash(LAN Manager Hash)NT Hash(Windows NT Hash)があるらしく,文字数や暗号化手法にも違いがある. 詳しくは↓

Windowsのパスワードハッシュについてsec401mentor.wordpress.com

まずは,2つのファイルを取ってくることから始める.

パスワードハッシュファイルの取得

手元にあったKali Linux 64bit LightをUSBブートさせて,ファイルの取得を試みた.

パーティションテーブルを確認

sudo fdisk -l

Windowsパーティションを選択して,ntfsで/mntにマウント

mount -t ntfs /dev/sda3 /mnt

SAMデータベースがある場所へ移動

cd /mnt/Windows/System32/config

syskeyとbootkeyをダンプするツール(コマンド?)であるbkhiveがない・・・

入れるぞ!

curlがない -> apt-get

curl http://http.us.debian.org/debian/pool/main/s/samdump2/samdump2_1.1.1-1.1_amd64.deb > samdump2_1.1.1-1.1_amd64.deb

dpkg -i samdump2_1.1.1-1.1_amd64.deb

libssl1.0.0がない

他のパッケージがない

Kali「おいおいこのパッケージもねえよ」

「」

みたいな感じで,全く入る気配がないので諦めた

Light版だからか,Liveモードだからか?よくわからない.

なので,Ubuntubkhiveともう一つ,パスワードハッシュをダンプするのに必要なツールsamdump2を入れることにした.

さ〜てやるぞ〜と思っていた1時半頃・・・

親父が起きてきて一言.

親父「パスワードがわからんのか?」

自分「おう」

親父「あ〜これだよこれ」(受話器の横に置いてあったメモを取り出す)

親父「〜のパスワードは◯◯◯◯◯で〜のパスワードは◯◯◯◯◯だな」

自分「」

(わからんって言ったやんけ!!!!!!!!!!!!!!!)

パスワードを聞いてしまったのだが,ここまで来て辞めるなんてことは絶対にしたくなかったので続ける・・・

Ubuntu(15.04)へbkhiveとsamdump2を入れる

  1. curl http://http.us.debian.org/debian/pool/main/s/samdump2/samdump2_1.1.1-1.1_i386.deb > samdump2_1.1.1-1.1_i386.deb

  2. dpkg -i samdump2_1.1.1-1.1_i386.deb

  3. curl http://http.us.debian.org/debian/pool/main/b/bkhive/bkhive_1.1.1-1_i386.deb > bkhive_1.1.1-1_i386.deb

  4. dpkg -i bkhive_1.1.1-1_i386.deb

bkhivesamdump2が入った.これらのコマンドを使って,

bkhive(tmp/hoge.txtは出力するファイル)

bkhive SYSTEM tmp/hoge.txt

samdump2(bkhiveで作ったファイルとSAMファイルを渡して,tmp/hash.txtは出力するファイル)

samdump2 SAM tmp/hoge.txt > tmp/hash.txt

すると,

Administrator:xxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:::

このような形式のものが何行かにわたって記載されたhashファイルが完成する.

あとはOphcrackの出番!!

解析結果

f:id:ywkw1717:20170313054027j:plain

AdministratorとGuestはempty(解析可能ではないということ)になり,$というユーザ(なんだこのユーザ・・?)はパスワードが見つからない,つまりある程度は堅牢なパスワードだということ.

逆に,数字のみのものに関しては全て破られている.(数字4桁なので当たり前だろうと思うけど,数字10桁とかでも危なそう)

OphcrackはRainbow Tableを使って解析するため,他のテーブルをダウンロードしてきて使うこともできる.デフォルトで入っている以外のもので,数字のみに特化したものを使うことなども可能.

まとめ

消耗した記録として残すものなので,やってみたい人は他の人の使ってみた系のブログを参考にすることを強くオススメ致します・・・

脆弱なパスワード,ダメ.

おまけ

親父から聞いたパスワードのうち,管理者のほうは間違っていたので,

解析した甲斐があった!!!!!!!!

(聞いたのは昔のもので,親が全く覚える気配がなくてわかりやすいようにしてくれと頼まれて変更したことを忘れてた)



おわり

参考