web-dev-qa-db-ja.com

システムの実行中にWindows SAMファイルをダンプする方法

Metasploitを使用してテストマシンを悪用し、SAMファイルからハッシュを取得できました。コマンドをSYSTEMとして実行して取得しようとしましたが、実行できません。 SAMファイルからハッシュを抽出するよりポータブルな方法は何ですか?

14
user100059

編集:長年の放棄を経て編集することにしました。


Windows SAMファイルは、コピー/読み取りとは異なり、ロックされています/etc/shadow Linuxシステムでは。代わりに、このツールを回避するには、メモリからハッシュを抽出します。

これを回避する方法はいくつかありますが、以下で説明します。

ミミカッツ

sekurlsa::logonpasswordsでmimikatzを実行します。

fgdump

Mimikatzと同様の機能。それを実行すると、ハッシュがローカルファイルにダンプされます。

ハッシュダンプ

Meterpreterに組み込まれています。メモリからハッシュを抽出します。

レジストリ

レジストリから抽出することもできます(SYSTEMアクセス権がある場合):

  1. reg save hklm\sam %tmp%/sam.regおよびreg save hklm\system %tmp%/system.reg
  2. ファイルをコピーして実行します:samdump2 system sam

バックアップ

SAMファイルはバックアップ場所に保存することもできます:C:\Windows\Repair\SAM

また、ツールには最低でもAdministrator権限が必要であることにも触れておきます。 SYSTEMアクセスが得られない限り、ほとんどのハッシュが取得されません。

5
user100059

これは権限の問題ではありません。WindowsはSAMファイルの排他ロックを保持します(これは、私の知る限り、読み込まれたレジストリハイブの標準的な動作です)。そのため、他のプロセスで開くことはできません。

ただし、最近のWindowsバージョンには「ボリュームシャドウコピー」と呼ばれる機能があり、これは主にバックアップ用に、ボリューム全体の読み取り専用のスナップショットを作成するように設計されています。ファイルロックは、データの整合性を確保するために存在するため、ファイルシステム全体のスナップショットを作成する場合は不要です。つまり、C:のスナップショットを作成してマウントし、SAMファイルをコピーして、そのスナップショットを破棄することができます。

これを行う方法は、お使いのWindowsバージョンによって異なります。XP外部プログラムが必要、Vistaおよび7にはvssadmin create shadow、Server 2008にはdiskshadowコマンドがあります。ページLive Domain Controllersからハッシュを安全にダンプするこれに関する詳細プロセス、および手順とスクリプト。

または、samdumpなどのツールがあり、LSASSプロセスをさまざまな方向から悪用して、すべてのパスワードハッシュをメモリから直接抽出します。これらはVSSスナップショットよりもはるかに高速ですが、システムをクラッシュさせるリスクが高くなります。

最後に、Googleはこのスニペットを引き出します。メタスプロイトを自分で使用したことがないので、その有用性を評価することはできません。

meterpreter> use priv
meterpreter> hashdump
12
user1686

シャドウボリュームの管理や外部ツールの使用を必要としない、より簡単なソリューションがあります。 Microsoftが提供するregコマンドを使用して、SAMとSYSTEMをコピーするだけです(Windows 7およびWindows Server 2008でテスト済み)。

reg save hklm\sam c:\sam
reg save hklm\system c:\system

(最後のパラメーターは、ファイルをコピーする場所です)


その後、パッケージsamdump2を使用してLinuxシステムでハッシュを抽出できます(Debianで利用可能:apt-get install samdump2):

$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::
12
vmarquet

Red Teaming /ペネトレーションテストでは多くの時間が最も明白な方法にアクセスできず(拒否され、Blue Teamによって監視されているなど)、利用可能なすべてのテクニックを知っているので、ここで説明されていない追加のメソッドを指定します。

システムがハンドルを持っている(通常どおりにコピー/削除できない)ファイルへのアクセスの回避策の1つは、上記のvssshadow.exeです。

2番目-esentutil.exe

ハンドル付きのファイルのコピーを取る正確なコマンド:

esentutl.exe /y /vss c:\windows\ntds\ntds.dit /d c:\folder\ntds.dit

これは、SAM、SYSTEM、SECURITY、NTDS.DIT​​などに適用されます。

追伸impacketのパッケージにはesentutl.pyがあります: https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py

P.S.S. esentutl PoC画像

1
dtrizna

Obscuresecメソッドは、Windows Powershell 1.0対応マシンのローカルでの問題を克服します。私が知っているいくつかのターゲットを除外しますが、ねえ、いい仕事です! (ありがとうクリス)。

注:このような操作を実行するには、常に管理者権限が必要です

あなたは使うことができます

http://gallery.technet.Microsoft.com/scriptcenter/Get-PasswordFile-4bee091d

または別のソースから(最近追加した可能性があります)

https://github.com/obscuresec/PowerShell/blob/master/Get-PasswordFile

推奨読書:

リモートシステムを取得する場合は、SAMおよびSYSTEMハイブを上記と組み合わせて使用​​します。

1
Marco Vaz