「Windowsアカウントのパスワードをクラッキングする方法」の版間の差分
提供: セキュリティ
(同じ利用者による、間の5版が非表示) | |||
行1: | 行1: | ||
− | + | [[Windows]]から[[パスワードハッシュ]]を抜き出し、[[パスワードクラック]]する手法を説明します。 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
__TOC__ | __TOC__ | ||
== 概要 == | == 概要 == | ||
− | |||
[[Windows]] の [[パスワード]] については、 [[Windowsのパスワード]] をご参照ください。 | [[Windows]] の [[パスワード]] については、 [[Windowsのパスワード]] をご参照ください。 | ||
行20: | 行15: | ||
** [[PwDump]] | ** [[PwDump]] | ||
*** [[DLLインジェクション]] 技法により、パスワードハッシュをダンプさせる。 | *** [[DLLインジェクション]] 技法により、パスワードハッシュをダンプさせる。 | ||
− | * [[ | + | ** [[gsecdump]] |
+ | * レジストリ からキャッシュされた[[ハッシュ化されたパスワード]]を復元する。[[Pass the Hash]]攻撃に利用する。 | ||
** [[lslsass]] | ** [[lslsass]] | ||
* [[Windows]] のプロセスからアクティブなログインセッションの[[ハッシュ化されたパスワード]] を取得する。[[Pass the Hash]] 攻撃に利用する。 | * [[Windows]] のプロセスからアクティブなログインセッションの[[ハッシュ化されたパスワード]] を取得する。[[Pass the Hash]] 攻撃に利用する。 | ||
行26: | 行22: | ||
* [[キーロガー]] や[[トロイの木馬]]を用いる。 | * [[キーロガー]] や[[トロイの木馬]]を用いる。 | ||
* [[ソーシャル・エンジニアリング]] | * [[ソーシャル・エンジニアリング]] | ||
− | |||
− | |||
[[パスワードクラック]]以外の方法は、以下の方法があります。 | [[パスワードクラック]]以外の方法は、以下の方法があります。 | ||
行33: | 行27: | ||
メモリの中の[[NTLMハッシュ]]/[[LMハッシュ]]を入手する方法には、以下の方法があります。 | メモリの中の[[NTLMハッシュ]]/[[LMハッシュ]]を入手する方法には、以下の方法があります。 | ||
− | * [[Windows Credentials Editor]] ( WCE ) | + | * [[Windows Credentials Editor]] ( WCE ) |
+ | * [[Windows]]のメモリのダンプの[[SAMデータベース]]と[[SysKey]]から[[NTLMハッシュ]]を取得する。 | ||
+ | ** [[The Volatility Framework]] | ||
== SAMデータベースのクラッキング == | == SAMデータベースのクラッキング == | ||
− | |||
=== Windows で SAMデータベースを抜き出す === | === Windows で SAMデータベースを抜き出す === | ||
− | |||
以下のツールを用いて、パスワードハッシュを入手できます。 | 以下のツールを用いて、パスワードハッシュを入手できます。 | ||
行44: | 行38: | ||
=== LinuxでSAMデータベースを抜き出す === | === LinuxでSAMデータベースを抜き出す === | ||
− | |||
以下は、[[bkhive]] と [[samdump2]] を用いて、パスワードハッシュを取得する方法です。 | 以下は、[[bkhive]] と [[samdump2]] を用いて、パスワードハッシュを取得する方法です。 | ||
行59: | 行52: | ||
== パスワードハッシュのクラッキング == | == パスワードハッシュのクラッキング == | ||
− | |||
* [[Ophcrack]] | * [[Ophcrack]] | ||
* [[RainbowCrack]] | * [[RainbowCrack]] | ||
行65: | 行57: | ||
=== John the Ripper === | === John the Ripper === | ||
− | |||
[[LMハッシュ]]と[[NTLMハッシュ]]のどちらのモードで動かすか、指定しないと警告が出て、自動的に選択されます。 | [[LMハッシュ]]と[[NTLMハッシュ]]のどちらのモードで動かすか、指定しないと警告が出て、自動的に選択されます。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行89: | 行80: | ||
Remaining 2 password hashes with no different salts | Remaining 2 password hashes with no different salts | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
== パスワードリセットを用いる == | == パスワードリセットを用いる == | ||
− | |||
[[Windows]] の [[SAMデータベース]] を削除した場合、パスワードが空の [[SAMデータベース]] が自動的に作成されます。 | [[Windows]] の [[SAMデータベース]] を削除した場合、パスワードが空の [[SAMデータベース]] が自動的に作成されます。 | ||
− | ただし、自動的に作成されるのは | + | ただし、自動的に作成されるのは '''デフォルトアカウント'''の Administrator と Guest だけです。 |
− | + | ||
− | + | ||
+ | '''ntpasswd''' を用いることで、既存のアカウントのパスワードをリセットや再設定が可能です。 | ||
== 関連項目 == | == 関連項目 == | ||
− | |||
* [[Windowsのパスワード]] | * [[Windowsのパスワード]] | ||
* [[PwDump]] | * [[PwDump]] | ||
行107: | 行94: | ||
* [[Windows Credentials Editor]] ( WCE ) | * [[Windows Credentials Editor]] ( WCE ) | ||
* [[CacheDump]] | * [[CacheDump]] | ||
+ | {{crack windows password}} | ||
+ | <!-- vim: filetype=mediawiki | ||
+ | --> |
2015年9月22日 (火) 15:44時点における最新版
Windowsからパスワードハッシュを抜き出し、パスワードクラックする手法を説明します。
目次
概要
Windows の パスワード については、 Windowsのパスワード をご参照ください。
Active Directoryを使用していない場合、Windows アカウントのパスワードは、 SAMデータベース と呼ばれる C:\Windows\System32\config\SAM ファイルに暗号化されて格納されています。
Windows アカウントのパスワードをクラッキングする方法は、いくつか存在します。
- SAMデータベース のファイルを入っているシステムドライブを他のOSからマウントし、 SAMデータベース を読み取る。
- ほかのパソコンに HDD をつないで、マウントする。
- CD や UDB, FD などのメディアで Linux などを起動する。
- SAMデータベースをダンプする特殊なツールを利用する。
- PwDump
- DLLインジェクション 技法により、パスワードハッシュをダンプさせる。
- gsecdump
- PwDump
- レジストリ からキャッシュされたハッシュ化されたパスワードを復元する。Pass the Hash攻撃に利用する。
- Windows のプロセスからアクティブなログインセッションのハッシュ化されたパスワード を取得する。Pass the Hash 攻撃に利用する。
- キーロガー やトロイの木馬を用いる。
- ソーシャル・エンジニアリング
パスワードクラック以外の方法は、以下の方法があります。
- パスワードリセット
メモリの中のNTLMハッシュ/LMハッシュを入手する方法には、以下の方法があります。
- Windows Credentials Editor ( WCE )
- WindowsのメモリのダンプのSAMデータベースとSysKeyからNTLMハッシュを取得する。
SAMデータベースのクラッキング
Windows で SAMデータベースを抜き出す
以下のツールを用いて、パスワードハッシュを入手できます。
LinuxでSAMデータベースを抜き出す
以下は、bkhive と samdump2 を用いて、パスワードハッシュを取得する方法です。
mkdir /mnt/windows mount /dev/hda1 /mnt/windows cd /mnt/windows/WINDOWS/system32/config cp SAM ~/ cp system ~/ cd ~/ bkhive system key samdump2 ./system ./SAM > hashes.txt
パスワードハッシュのクラッキング
John the Ripper
LMハッシュとNTLMハッシュのどちらのモードで動かすか、指定しないと警告が出て、自動的に選択されます。
$ john hashes.txt Warning: detected hash type "lm", but the string is also recognized as "nt" Use the "--format=nt" option to force loading these as that type instead Warning: detected hash type "lm", but the string is also recognized as "nt2" Use the "--format=nt2" option to force loading these as that type instead Loaded 7 password hashes with no different salts (LM DES [128/128 BS SSE2-16])
NTLMハッシュを指定する場合。
$ john --format=nt hashes.txt Loaded 6 password hashes with no different salts (NT MD4 [128/128 X2 SSE2-16]) XXXX (Administrator)
LMハッシュを指定する場合。
$ john --format=nt2 hashes.txt Loaded 6 password hashes with no different salts (NT v2 [SSE2i 12x]) Remaining 2 password hashes with no different salts
パスワードリセットを用いる
Windows の SAMデータベース を削除した場合、パスワードが空の SAMデータベース が自動的に作成されます。 ただし、自動的に作成されるのは デフォルトアカウントの Administrator と Guest だけです。
ntpasswd を用いることで、既存のアカウントのパスワードをリセットや再設定が可能です。
関連項目
- Windowsのパスワード
- PwDump
- パスワードクラック
- bkhive
- samdump2
- KVMのディスクイメージをマウントする
- Windows Credentials Editor ( WCE )
- CacheDump
- Windowsアカウントのパスワードをクラッキングする方法
- Windowsのパスワード
- LMハッシュ
- NTLMハッシュ
- SAMデータベース