Windowsは、ローカルユーザーのパスワードの(NTLM)ハッシュをSAM
ハイブに格納します。 (たとえば)ライブシステムから起動することで、オフラインでのクラックのためにそれらのハッシュを抽出できるだけでなく、ハッシュを既知のパスワードのハッシュに置き換えることもできます(たとえば、Kali Linuxのchntpw
はツールです)これはこのタスクに優れています)。同様に、通常のユーザーを管理ユーザーにして、ユーザーを有効/無効にすることができます。ここまでは順調ですね。
同様に異なる方法で、以前にコンピューターにログインしたユーザーのドメインアカウントのパスワードハッシュはSECURITY
ハイブに保存されるため、ユーザーはネットワークに接続していなくても再ログインできます。 cachedump
のようなツールは、オフラインクラッキングのためにこれらのハッシュを抽出できます。ただし、使用されるハッシュアルゴリズムが異なるため、SAM
のハッシュを置き換えることができるほとんどの(すべての?)ツールは、SECURITY
では同じことができません。
今私の質問:ドメインユーザーのキャッシュされたパスワードハッシュを既知のパスワードのハッシュで置き換えることは可能ですか?その後、システムを再起動して既知のパスワードでログインします(回答のボーナスポイント)以前のバージョンとの違いがある場合に備えて、Windows 10に固有)?もちろん、これはデバイスがネットワークに接続されておらず、Windowsがドメインコントローラを使用してオンラインでパスワードを確認できないことを前提としています。
私の質問:ドメインのキャッシュされたパスワードハッシュをユーザー>既知のパスワードのハッシュに置き換えることは可能ですか?その後、システムを再起動して、既知のパスワードでログインします>
はい、これは最新バージョンのmimikatz(gentilkiwi/mimikatz githubアカウントのリリースページで入手可能)で可能です。
ただし、複数のドメインユーザーがいるシステムでこの機能を使用するには、実際には2つの引数(ユーザー名とkiwiフラグ)を指定する必要がある場合があります。
# lsadump::cache /user:<username> /kiwi
このコマンドを実行すると、キャッシュされたドメインの資格情報がデフォルトのmimikatzパスワード(「mimikatz」)に置き換えられます。 「mimikatz」以外のパスワードを設定する場合は、次のコマンドを使用します。
# lsadump::cache /user:<username> /password:<password-to-set> /kiwi
何らかのNTPASSWORDリセットツールを使用してローカル管理者のパスワードをリセットした方がはるかに簡単だと思います(もちろん、最初にUSBからwinpe環境に起動する必要があります)
Windowsはドメインログインのハッシュ全体をキャッシュしません。 Windows Internals、Part 1、6th Edition :
注MSV1_0はユーザーのパスワードハッシュ全体をレジストリにキャッシュしません。これにより、システムに物理的にアクセスできる誰かがユーザーのドメインアカウントを簡単に侵害し、暗号化されたファイルや、ユーザーがアクセスを許可されているネットワークリソースにアクセスできます。代わりに、ハッシュの半分をキャッシュします。キャッシュされたハーフハッシュは、ユーザーのパスワードが正しいことを確認するには十分ですが、EFSキーにアクセスし、ドメインのユーザーとして認証するには、これらのアクションには完全なハッシュが必要であるため、十分ではありません。 ref:559ページ