Stealing Windows Credentials
資格情報 Mimikatz
このページ でMimikatzができる他のことを見つける。
Invoke-Mimikatz
こちらで可能な資格情報保護について学んでください。 これらの保護は、Mimikatzが一部の資格情報を抽出するのを防ぐ可能性があります。
Meterpreterを使用した資格情報
被害者の中でパスワードとハッシュを検索するために、私が作成したCredentials Plugin を使用してください。
AV回避
Procdump + Mimikatz
SysInternalsのProcdumpはSysInternalsからの合法的なMicrosoftツールなので、Defenderに検出されません。 このツールを使用してlsassプロセスをダンプし、ダンプをダウンロードして、ダンプからローカルで資格情報を抽出することができます。
このプロセスは、SprayKatzを使用して自動的に実行されます: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
注意: 一部の AV は procdump.exe で lsass.exe をダンプすることを 悪意のあるものとして 検出する場合があります。これは、"procdump.exe" と "lsass.exe" という文字列を 検出しているためです。そのため、lsass.exe の PID を procdump に 引数として 渡すことが lsass.exe の名前よりもステルスです。
comsvcs.dll を使用して lsass をダンプする
C:\Windows\System32
にある comsvcs.dll という名前の DLL は、クラッシュが発生した場合に プロセスメモリをダンプする責務を持っています。この DLL には、rundll32.exe
を使用して呼び出される MiniDumpW
という名前の 関数 が含まれています。
最初の2つの引数を使用する必要はありませんが、3番目の引数は3つのコンポーネントに分割されます。ダンプするプロセスの PID が最初のコンポーネントを構成し、ダンプファイルの場所が2番目を表し、3番目のコンポーネントは厳密に full という単語です。代替オプションは存在しません。
これらの3つのコンポーネントを解析すると、DLL はダンプファイルを作成し、指定されたプロセスのメモリをこのファイルに転送します。
comsvcs.dll の利用は、lsass プロセスをダンプするために procdump をアップロードして実行する必要がなくなります。この方法について詳しくは、https://en.hackndo.com/remote-lsass-dump-passwords/ で説明されています。
以下のコマンドが使用されます:
**lssasy**を使用して、このプロセスを自動化できます。
タスクマネージャーを使用してlsassをダンプする
タスクバーを右クリックし、タスクマネージャーをクリックします。
「詳細」をクリックします。
プロセスタブで「Local Security Authority Process」プロセスを検索します。
「Local Security Authority Process」プロセスを右クリックし、「ダンプファイルの作成」をクリックします。
procdumpを使用してlsassをダンプする
Procdumpは、sysinternalsスイートの一部であるMicrosoftによって署名されたバイナリです。
PPLBladeを使用してlsassをダンプする
PPLBladeは、保護されたプロセスダンパーツールであり、メモリダンプを難読化し、それをディスクにドロップせずにリモートワークステーションに転送する機能をサポートしています。
主な機能:
PPL保護のバイパス
Defenderのシグネチャベースの検出メカニズムを回避するためのメモリダンプファイルの難読化
ディスクにドロップせずにRAWおよびSMBアップロード方法でメモリダンプをアップロードする(ファイルレスダンプ)
CrackMapExec
SAMハッシュのダンプ
LSAシークレットのダンプ
ターゲットDCからNTDS.ditをダンプする
ターゲットDCからNTDS.ditのパスワード履歴をダンプします
各NTDS.ditアカウントのpwdLastSet属性を表示します
SAM & SYSTEMの盗み出し
これらのファイルは_C:\windows\system32\config\SAM_と_C:\windows\system32\config\SYSTEM_に配置されているはずです。しかし、それらは保護されているため、通常の方法で単純にコピーすることはできません。
レジストリから
これらのファイルを盗む最も簡単な方法は、レジストリからコピーすることです:
Kaliマシンにそれらのファイルをダウンロードし、次のコマンドを使用してハッシュを抽出します:
ボリューム シャドウ コピー
このサービスを使用して、保護されたファイルのコピーを作成できます。管理者である必要があります。
vssadmin を使用する
vssadmin バイナリは Windows Server バージョンのみで利用可能です。
しかし、同じことをPowershellからも行うことができます。これはSAMファイルをコピーする方法の例です(使用されるハードドライブは"C:"で、C:\users\Publicに保存されます)。保護されたファイルをコピーするためにこれを使用できます。
コードはこちらから: https://0xword.com/es/libros/99-hacking-windows-ataques-a-sistemas-y-redes-microsoft.html
Invoke-NinjaCopy
最後に、PSスクリプトInvoke-NinjaCopyを使用して、SAM、SYSTEM、およびntds.ditのコピーを作成することもできます。
Active Directory Credentials - NTDS.dit
NTDS.ditファイルはActive Directoryの中心部として知られており、ユーザーオブジェクト、グループ、およびそれらのメンバーシップに関する重要なデータを保持しています。ドメインユーザーのパスワードハッシュが格納されている場所です。このファイルは**Extensible Storage Engine (ESE)データベースであり、_%SystemRoom%/NTDS/ntds.dit_に存在します。
このデータベース内では、3つの主要なテーブルが管理されています:
Data Table: このテーブルは、ユーザーやグループなどのオブジェクトの詳細を格納する役割を担っています。
Link Table: グループメンバーシップなどの関係を追跡します。
SD Table: 各オブジェクトのセキュリティ記述子がここに保持され、格納されたオブジェクトのセキュリティとアクセス制御を確保します。
これに関する詳細情報: http://blogs.chrisse.se/2012/02/11/how-the-active-directory-data-store-really-works-inside-ntds-dit-part-1/
Windowsは_Ntdsa.dll_を使用してそのファイルとやり取りし、_lsass.exe_によって使用されます。その後、NTDS.ditファイルの一部は**lsass
メモリ内に位置している可能性があります(おそらくキャッシュ**を使用してパフォーマンスが向上しているため、最新にアクセスされたデータを見つけることができます)。
NTDS.dit内のハッシュの復号化
ハッシュは3回暗号化されます:
BOOTKEYとRC4を使用して**パスワード暗号化キー(PEK)**を復号化します。
PEKとRC4を使用してハッシュを復号化します。
DESを使用してハッシュを復号化します。
PEKはすべてのドメインコントローラーで同じ値を持っていますが、NTDS.ditファイル内でドメインコントローラーのSYSTEMファイルのBOOTKEYを使用して暗号化されています(ドメインコントローラー間で異なります)。これは、NTDS.ditファイルから資格情報を取得するためには、NTDS.ditファイルとSYSTEMファイル(C:\Windows\System32\config\SYSTEM)が必要な理由です。
Ntdsutilを使用してNTDS.ditをコピー
Windows Server 2008以降で利用可能です。
また、ボリュームシャドウコピートリックを使用してntds.ditファイルをコピーすることもできます。SYSTEMファイルのコピーも必要です(再び、レジストリからダンプするか、ボリュームシャドウコピートリックを使用してください)。
NTDS.ditからハッシュを抽出する
NTDS.ditとSYSTEMファイルを入手したら、_secretsdump.py_などのツールを使用してハッシュを抽出できます。
あなたはまた、有効なドメイン管理者ユーザーを使用して、それらを自動的に抽出することもできます:
大きなNTDS.ditファイルの場合は、gosecretsdumpを使用して抽出することをお勧めします。
最後に、metasploitモジュールを使用することもできます: _post/windows/gather/credentials/domain_hashdump_またはmimikatz lsadump::lsa /inject
NTDS.ditからドメインオブジェクトをSQLiteデータベースに抽出する
NTDSオブジェクトは、ntdsdotsqliteを使用してSQLiteデータベースに抽出できます。秘密情報だけでなく、生のNTDS.ditファイルがすでに取得されている場合に、さらなる情報抽出のためにオブジェクト全体とその属性も抽出されます。
SYSTEM
ハイブはオプションですが、シークレットの復号化(NTおよびLMハッシュ、クリアテキストパスワード、Kerberosまたは信頼キー、NTおよびLMパスワード履歴などの補足資格情報)を可能にします。他の情報と共に、次のデータが抽出されます:ユーザーとマシンアカウントとそれらのハッシュ、UACフラグ、最終ログオンおよびパスワード変更のタイムスタンプ、アカウントの説明、名前、UPN、SPN、グループと再帰的メンバーシップ、組織単位ツリーとメンバーシップ、信頼されたドメインと信頼のタイプ、方向、属性...
Lazagne
ここからバイナリをダウンロードしてください。このバイナリを使用して、複数のソフトウェアから資格情報を抽出できます。
SAM と LSASS から資格情報を抽出するためのその他のツール
Windows Credentials Editor (WCE)
このツールはメモリから資格情報を抽出するために使用できます。こちらからダウンロードしてください。
fgdump
SAM ファイルから資格情報を抽出します。
PwDump
SAMファイルから資格情報を抽出します
PwDump7
ここからダウンロードして、単に実行するだけでパスワードが抽出されます。
防御策
Last updated