「Windowsアカウントのパスワードをクラッキングする方法」の版間の差分

提供: セキュリティ
移動: 案内検索
 
(同じ利用者による、間の5版が非表示)
行1: 行1:
<!--
+
[[Windows]]から[[パスワードハッシュ]]を抜き出し、[[パスワードクラック]]する手法を説明します。
vim: filetype=mediawiki
+
-->
+
 
+
 
+
 
__TOC__
 
__TOC__
  
 
== 概要 ==
 
== 概要 ==
 
 
[[Windows]] の [[パスワード]] については、 [[Windowsのパスワード]] をご参照ください。
 
[[Windows]] の [[パスワード]] については、 [[Windowsのパスワード]] をご参照ください。
  
行20: 行15:
 
** [[PwDump]]
 
** [[PwDump]]
 
*** [[DLLインジェクション]] 技法により、パスワードハッシュをダンプさせる。
 
*** [[DLLインジェクション]] 技法により、パスワードハッシュをダンプさせる。
* [[レジストリ]] からキャッシュされた[[ハッシュ化されたパスワード]]を復元する。[[Pass the Hash]]攻撃に利用する。
+
** [[gsecdump]]
 +
* レジストリ からキャッシュされた[[ハッシュ化されたパスワード]]を復元する。[[Pass the Hash]]攻撃に利用する。
 
** [[lslsass]]
 
** [[lslsass]]
 
* [[Windows]] のプロセスからアクティブなログインセッションの[[ハッシュ化されたパスワード]] を取得する。[[Pass the Hash]] 攻撃に利用する。
 
* [[Windows]] のプロセスからアクティブなログインセッションの[[ハッシュ化されたパスワード]] を取得する。[[Pass the Hash]] 攻撃に利用する。
行26: 行22:
 
* [[キーロガー]] や[[トロイの木馬]]を用いる。
 
* [[キーロガー]] や[[トロイの木馬]]を用いる。
 
* [[ソーシャル・エンジニアリング]]
 
* [[ソーシャル・エンジニアリング]]
** [[lslsass]]
 
** [[CacheDump]]
 
  
 
[[パスワードクラック]]以外の方法は、以下の方法があります。
 
[[パスワードクラック]]以外の方法は、以下の方法があります。
行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 だけです。
+
ただし、自動的に作成されるのは '''デフォルトアカウント'''の Administrator と Guest だけです。
 
+
[[ntpasswd]] を用いることで、既存のアカウントのパスワードをリセットや再設定が可能です。
+
  
 +
'''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 アカウントのパスワードをクラッキングする方法は、いくつか存在します。

パスワードクラック以外の方法は、以下の方法があります。

  • パスワードリセット

メモリの中のNTLMハッシュ/LMハッシュを入手する方法には、以下の方法があります。

SAMデータベースのクラッキング

Windows で SAMデータベースを抜き出す

以下のツールを用いて、パスワードハッシュを入手できます。

LinuxでSAMデータベースを抜き出す

以下は、bkhivesamdump2 を用いて、パスワードハッシュを取得する方法です。

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

パスワードリセットを用いる

WindowsSAMデータベース を削除した場合、パスワードが空の SAMデータベース が自動的に作成されます。 ただし、自動的に作成されるのは デフォルトアカウントの Administrator と Guest だけです。

ntpasswd を用いることで、既存のアカウントのパスワードをリセットや再設定が可能です。

関連項目