top of page

Hashcat (Advanced Password Recovery Tool)

Hashcat (Advanced Password Recovery Tool) | Black Hat HQ

Hashcat (Password Hacking / Recovery Tool)


Hashcat is the world's fastest password recovery tool and the de facto standard for password security auditing. It's an open-source, GPU-accelerated cracker that supports over 350 hash algorithms across five attack modes. During authorized pentests, it's used to audit password strength — you extract hashes from a target system (SAM dump, /etc/shadow, database dump) and crack them offline to demonstrate weak credential policies.


Architecture - Why Hashcat Is So Fast


Hashcat doesn't just "use the GPU." It's built from the ground up for parallel hash computation.


GPU Acceleration


A modern GPU has thousands of cores. An NVIDIA RTX 4090 has 16,384 CUDA cores. Hashcat distributes hash computation across all of them simultaneously. For a simple hash like NTLM, a single 4090 can attempt over 300 billion guesses per second. Compare that to CPU-based cracking at maybe 2-3 million per second on a 32-core server. That's a 100,000x speed difference.


Hashcat achieves this through:


  • Kernel fusion: Multiple hash computation steps are fused into single GPU kernel operations, reducing memory round-trips

  • Wordlist caching in GPU VRAM: The wordlist is loaded into GPU memory once, then processed in parallel without touching system RAM

  • Rule engine on GPU: Rules are applied directly on the GPU, not pre-processed on the CPU

  • Vectorized operations: Single instructions process multiple data elements (SIMD at GPU scale)


Backend Options


Backend

API

Supported Hardware

CUDA

NVIDIA's CUDA API

NVIDIA GPUs only

OpenCL

OpenCL framework

AMD GPUs, Intel GPUs, CPUs

Metal

Apple Metal API

Apple Silicon (M1/M2/M3/M4), AMD GPUs on macOS

HIP/ROCm

AMD ROCm platform

AMD GPUs on Linux

CPU

Fallback

Any x86/ARM CPU (slow, for testing only)


On a system with multiple GPUs, hashcat uses all of them simultaneously with near-linear scaling. Four RTX 4090s produce roughly 4x the throughput of one.


Installation


Kali Linux (Pre-installed)


bash

hashcat --version
# Already there. Update with:
sudo apt update && sudo apt install hashcat

Building from Source (for latest GitHub version)


bash

git clone https://github.com/hashcat/hashcat.git
cd hashcat
make
sudo make install

Windows


Download the binaries from hashcat.net. Install the latest NVIDIA CUDA or AMD ROCm drivers. Extract the hashcat archive. Run hashcat.exe from the extracted folder.


Verify GPU Access


bash

hashcat -I
# Shows all detected devices, VRAM, driver versions

hashcat -b
# Built-in benchmark — runs all hash modes against your hardware
# Useful for performance estimation before an engagement

Attack Modes


Hashcat has five attack modes, each with a distinct use case. Understanding when to use each is what separates effective password auditing from wasted GPU time.


Mode 0: Straight / Dictionary Attack (-a 0)


Feeds a wordlist line-by-line against the target hashes. Each line of the wordlist is one password candidate.


bash

hashcat -a 0 -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt

This is the starting point for every audit. crackstation-human-only.txt, rockyou.txt, SecLists, and Hashes.org's found lists are the standards. If a password exists in a known breach, straight mode catches it in seconds.


Mode 1: Combinator Attack (-a 1)


Combines two wordlists — every word from list A appended to every word from list B.


bash

hashcat -a 1 -m 0 hashes.txt words1.txt words2.txt

If words1.txt contains Summer and words2.txt contains 2024!, the candidate Summer2024! is generated. This catches the "word + number/symbol" pattern that dominates corporate password policies.


The candidate count is len(list1) × len(list2). With two 10,000-word lists, that's 100 million candidates. Manageable. With two 1-million-word lists, that's 1 trillion — only viable for fast hashes with serious hardware.


Mode 3: Mask Attack / Brute-Force (-a 3)


Systematically tries every combination within a character set pattern. The pattern is defined by masks.


bash

hashcat -a 3 -m 1000 hashes.txt ?l?l?l?l?d?d?d?d
# Tries: aaaa0000 through zzzz9999

Mask syntax:


Placeholder

Character Set

?l

abcdefghijklmnopqrstuvwxyz

?u

ABCDEFGHIJKLMNOPQRSTUVWXYZ

?d

0123456789

?s

!"#$%&'()*+,-./:;<=>?@[]^_`{|}~

?a

?l + ?u + ?d + ?s (all 95 printable ASCII)

?b

0x00 - 0xff (all 256 byte values)

?h

0123456789abcdef (lowercase hex)

?H

0123456789ABCDEF (uppercase hex)


Custom character sets:


-1 ?l?d          → Set #1 = lowercase + digits
-2 ?u?s          → Set #2 = uppercase + specials

hashcat -a 3 -m 0 --custom-charset1=?l?d --custom-charset2=?u?s hashes.txt ?1?1?1?1?2?2
# Uses custom set 1 for four characters, then custom set 2 for two

Keyspace estimation:


?l?l?l?l?l?l?l?l       = 26^8   = 208 billion candidates
?l?l?l?l?l?l?d?d       = 26^6 × 10^2 = 30.8 billion
?a?a?a?a?a?a?a?a        = 95^8   = 6.6 quadrillion (intractable)

8-character full ASCII brute-force is not practical on any hardware. This is why mask attacks require intelligence — you use the target's password policy to narrow the keyspace.


Mode 6: Hybrid Wordlist + Mask (-a 6)


Appends mask-generated suffixes to each wordlist entry.


bash

hashcat -a 6 -m 0 hashes.txt wordlist.txt ?d?d?d?d
# Tries: password0000, password0001, ... password9999

This catches the pattern where users take a dictionary word and append numbers (the most common password creation strategy when a policy says "must contain numbers").


Mode 7: Hybrid Mask + Wordlist (-a 7)


Prepends mask-generated prefixes to each wordlist entry.


bash

hashcat -a 7 -m 0 hashes.txt ?d?d?d?d wordlist.txt
# Tries: 0000password, 0001password, ... 9999password

Common Hash Modes


Hashcat identifies hash algorithms by numeric mode. You specify the mode with -m. Using the wrong mode produces no results — hashcat looks for a specific format and length.


Mode

Hash Type

Where You'll Find It

0

MD5

Legacy web apps, old CMS passwords

100

SHA1

Old databases, Git commits

1000

NTLM

Windows local accounts, LSASS dumps, SAM dumps

1400

SHA2-256

/etc/shadow on modern Linux ($5$)

1700

SHA2-512 (SHA512crypt)

Overloaded — used for many things

1800

SHA512crypt ($6$)

/etc/shadow on Linux

2100

Domain Cached Credentials (DCC/DCC2)

Windows domain cached logins (mscache2)

2200

NetNTLMv1

Challenge-response captured via Responder or Inveigh

3000

LM

Legacy Windows LAN Manager (pre-Vista)

3200

bcrypt ($2a$, $2b$, $2y$)

Modern web apps (WordPress, Laravel, Django)

5500

NetNTLMv1 + ESS

NetNTLMv1 with Extended Session Security

5600

NetNTLMv2

Challenge-response, Responder captures (most common)

6800

LastPass (SN), SHA-256

LastPass vault password

7300

IPMI2 RAKP HMAC-SHA1

Server BMC / IPMI interfaces

7500

Kerberos 5 AS-REQ Pre-Auth etype 23

AS-REP roasting (accounts without pre-auth)

8200

1Password Cloud Keychains

1Password vault master password

9200

Cisco IOS $8$

Cisco device passwords

9600

MS Office 2013

Word/Excel/PowerPoint passwords

9700

MS Office 2010/2013 (SHA-512)

Older Office documents

11600

7-Zip

Encrypted 7z archives

13100

Kerberos 5 TGS-REP etype 23

Kerberoasting (service account hashes)

13400

KeePass 1/2 KDBX

KeePass database master password

13600

WinZip

Encrypted ZIP archives

13711

VeraCrypt SHA256 + XTS 512

VeraCrypt volume password

16700

FileVault 2

macOS FileVault encrypted drives

18200

Kerberos 5 AS-REP etype 23

AS-REP roasting (Kerberos accounts with pre-auth disabled)

18400

Open Document Format (ODF)

LibreOffice/OpenOffice passwords

22000

WPA-PBKDF2-PMKID+EAPOL

WiFi WPA/WPA2 handshake captures

22001

WPA-PMK-PMKID

WiFi PMKID attack (no clients needed)


Hash Extraction - Getting Hashes Into Hashcat


Windows SAM + SYSTEM Dump


bash

# On target (needs admin/root):
# Method 1: reg save
reg save HKLM\SAM sam.hiv
reg save HKLM\SYSTEM sys.hiv

# Method 2: secretsdump (Impacket) — remote, needs credentials
secretsdump.py DOMAIN/user:pass@10.10.10.10

# Extract for hashcat:
secretsdump.py -sam sam.hiv -system sys.hiv LOCAL > hashes.txt
# Format: username:rid:LM:NT::::
# Hashcat wants the NTLM portion (the 4th field)

# Clean for hashcat:
cat hashes.txt | cut -d: -f4 | grep -v '^\$' | grep -v 'aad3b' > ntlm_hashes.txt
# Or just use the full secretsdump output — hashcat auto-detects the NTLM hash

Linux /etc/shadow


bash

# Combine passwd and shadow:
unshadow /etc/passwd /etc/shadow > unshadowed.txt

# Hash mode depends on the prefix:
# $1$  → MD5crypt       → mode 500
# $5$  → SHA256crypt    → mode 7400
# $6$  → SHA512crypt    → mode 1800
# $y$  → yescrypt       → mode (use -m 16900 for some; check hashcat --help)

Kerberoasting


bash

# Impacket GetUserSPNs:
GetUserSPNs.py DOMAIN/user:pass -request -outputfile kerberoast.txt

# The output format includes $krb5tgs$23$* — hashcat mode:
hashcat -m 13100 kerberoast.txt wordlist.txt

AS-REP Roasting


bash

GetNPUsers.py DOMAIN/ -usersfile users.txt -format hashcat -outputfile asrep.txt

hashcat -m 18200 asrep.txt wordlist.txt

WiFi WPA2 Handshake


bash

# Capture:
hcxdumptool -i wlan0 -o capture.pcap --enable_status=1
# Or: airodump-ng + aircrack-ng suite

# Convert to hashcat format:
hcxpcapngtool -o wpa.22000 capture.pcap

# Crack:
hashcat -m 22000 wpa.22000 wordlist.txt

Responder Captures (NetNTLMv2)


bash

# Responder logs go to /usr/share/responder/logs/
# The format in the log files is already hashcat-compatible:
# user::domain:challenge:HMAC-MD5:blob

hashcat -m 5600 responder_hashes.txt wordlist.txt

Rules - The Real Power Of Dictionary Attacks


Rules transform dictionary words into candidates. Instead of just trying password, a rule can generate Password1!p@ssw0rdPASSWORDpassword2024, and hundreds of other variants per word — all on the GPU.


A rule file is a text file where each line is a transformation instruction:


bash

hashcat -a 0 -m 1000 hashes.txt wordlist.txt -r /usr/share/hashcat/rules/best64.rule

Rule Syntax Quick Reference


Rule

Action

Example

:

Do nothing (try word as-is)

password → password

l

Lowercase all

PassWord → password

u

Uppercase all

PassWord → PASSWORD

c

Capitalize first letter, lowercase rest

passWORD → Password

C

Capitalize first letter, leave rest

passWORD → PassWORD

t

Toggle case (invert)

PassWord → pASSwORD

r

Reverse string

drowssap → password

d

Duplicate word

pass → passpass

f

Reflect (append reversed)

pass → passssap

$X

Append character X

pass$1 → pass1

^X

Prepend character X

^1pass → 1pass

[

Delete first character

password → assword

]

Delete last character

password → passwor

Dn

Delete character at position n

D3 → pasword (from password)

sXY

Substitute X with Y

sso$$ → pa$$word

@X

Purge all instances of X

@a → pssword (from password)

Tn

Toggle case at position n

T0 → Password

pN

Repeats character N times

p2 → tries pp

ON

Omit(delete) N chars starting from position 0

O12 → delete first 12 chars

iNX

Insert X at position N

i4! → pass!word

oNX

Overwrite position N with X

o4! → pass!ord

'N

Truncate at length N

'4 → pass


Multi-Rule Lines


Rules execute left to right:


$1$2$3          → Append 1, then 2, then 3 → password123
so0 so1 so2     → Substitutions: o→0, o→1, o→2 → passw0rd passw1rd passw2rd
c$!             → Capitalize, then append ! → Password!

Shipping Rule Sets


Hashcat ships with quality rule files. Here's what they do and when to use them:


Rule File

Candidates Generated Per Word

Use Case

best64.rule

Up to 64

First pass — highest hit rate per GPU cycle. Most efficient.

d3ad0ne.rule

~34,000

Aggressive mutation — leetspeak, years, common append. Good second pass.

dive.rule

~100,000

Very aggressive — includes keyboard walks and complex mutations.

OneRuleToRuleThemAll.rule

~55,000

Community gold standard — highest unique crack rate in benchmarks. Download separately.

rockyou-30000.rule

~30,000

Generated from statistical analysis of the rockyou breach — rules that humans actually use.

T0XlC.rule

~26,000

Focused on complexity requirements — uppercase + digit + special at same time.

generated2.rule

~65,000

Randomly generated rules — catches unpredictable mutations.


Rule Stacking Strategy


Pass 1: best64.rule         → Catch the low-hanging fruit (seconds)
Pass 2: rockyou-30000.rule   → Catch human-realistic mutations (minutes)
Pass 3: OneRuleToRuleThemAll → Comprehensive sweep (hours)
Pass 4: generated2.rule       → Random coverage (hours)

Most passwords crack in passes 1–2. By pass 3, you're scraping the bottom.


Mask Attack Strategy - Intelligent Brute-Force


Blind brute-force is wasteful. The mask attack shines when you know the target's password policy.


Policy-Driven Mask Attack


If the policy is "8+ characters, must have uppercase + lowercase + digit":


# The most common pattern for this policy: Capital letter, 5-6 lowercase, 2-3 digits
hashcat -a 3 -m 1000 hashes.txt ?u?l?l?l?l?l?d?d
hashcat -a 3 -m 1000 hashes.txt ?u?l?l?l?l?l?l?d
hashcat -a 3 -m 1000 hashes.txt ?u?l?l?l?l?l?d?d?d
hashcat -a 3 -m 1000 hashes.txt ?u?l?l?l?l?l?l?d?d

PACK (Password Analysis and Cracking Kit)


PACK analyzes cracked passwords to generate optimal masks for the remaining uncracked ones:


bash

# Generate statistics from already-cracked passwords:
python2 statsgen.py cracked_passwords.txt

# Generate optimized masks:
python2 maskgen.py --optindex cracked_stats.txt

The output ranks masks by probability. Feed the top masks to hashcat:


bash

hashcat -a 3 -m 1000 --increment --increment-min=6 --increment-max=12 hashes.txt masks.hcmask

Optimizations - Getting Maximum Speed


Hashcat Workload Profiles


-w 1  → Low (usable while doing other work on the machine)
-w 2  → Default
-w 3  → High (dedicated cracking machine)
-w 4  → Insane (maximum power, possible thermal throttling, display may freeze)

Kernel Tuning


bash

# -O flag: Optimized kernel — 2-10x faster but limits password length to 31 chars
hashcat -O -a 0 -m 1000 hashes.txt wordlist.txt

# -w 3 combined with -O:
hashcat -O -w 3 -a 0 -m 1000 hashes.txt wordlist.txt -r best64.rule

The -O flag is almost always worth it. Very few real-world passwords exceed 31 characters.


Temperature Management


bash

# Monitor GPU temperature and fan speed
nvidia-smi -l 1
watch -n 1 nvidia-smi

# Set fan speed manually (NVIDIA):
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUTargetFanSpeed=80"

# If temperatures exceed 85°C, reduce workload or add cooling

Pause and Resume


bash

# Graceful pause — saves state and exits:
# Press 'p' during cracking, then wait for "Checkpoint" message

# Resume from checkpoint:
hashcat --restore

# Or specify session name for multiple jobs:
hashcat --session audit1 -a 0 -m 1000 hashes.txt wordlist.txt
hashcat --restore --session audit1

Potfile Management


The potfile stores cracked passwords. Hashcat checks it before processing — if a hash is already cracked, it's skipped:


bash

# Show currently cracked passwords:
hashcat --show -m 1000 hashes.txt

# Remove a cracked hash from the potfile (to re-crack it):
# Edit ~/.local/share/hashcat/hashcat.potfile

# Use a custom potfile for different engagements:
hashcat --potfile-path engagement1.pot -a 0 -m 1000 hashes.txt wordlist.txt

Practical Engagement Workflow


Phase 1: Pre-Cracking — Hash Extraction and Normalization


bash

# 1. Extract hashes from target
secretsdump.py DOMAIN/admin:pass@dc01.domain.local > all_hashes.txt

# 2. Parse and normalize
cat all_hashes.txt | grep ':::' | cut -d: -f1,4 > ntlm_hashes.txt
# Format: username:NTHASH

# 3. Count and catalog
wc -l ntlm_hashes.txt
# "847 user accounts with NTLM hashes"

# 4. Check for empty/well-known hashes (disabled accounts, machine accounts ending in $)
grep '31d6cfe0d16ae931b73c59d7e0c089c0' ntlm_hashes.txt    # Empty password
grep 'aad3b435b51404eeaad3b435b51404ee' ntlm_hashes.txt   # LM empty (often = blank)

Phase 2: Target Analysis


Before firing hashcat, look at what you've got:


  • How many hashes? 50 is a quick job. 5000 is a multi-day affair.

  • What hash type? NTLM (mode 1000) is fast. bcrypt (mode 3200) is slow. You'll crack 90% of NTLM hashes in hours; you'll crack 15% of bcrypt hashes in days.

  • Is there a password complexity policy? If so, mask attacks become viable. If not, dictionary attacks dominate.

  • Are there service accounts? Their passwords are often longer but use predictable patterns (company name + year + symbol).


Phase 3: Cracking Sequence


bash

# ---- Pass 1: RockYou straight (30 seconds) ----
hashcat -O -w 3 -a 0 -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt

# ---- Pass 2: RockYou + best64 rules (2 minutes) ----
hashcat -O -w 3 -a 0 -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt -r best64.rule

# ---- Pass 3: Large wordlist + best64 (30-60 minutes) ----
hashcat -O -w 3 -a 0 -m 1000 hashes.txt /path/to/hashesorg2019.txt -r best64.rule

# ---- Pass 4: Large wordlist + OneRuleToRuleThemAll (4-8 hours) ----
hashcat -O -w 3 -a 0 -m 1000 hashes.txt /path/to/hashesorg2019.txt -r OneRuleToRuleThemAll.rule

# ---- Pass 5: NetNTLMv2 (Kerberoasted) with targeted wordlist ----
hashcat -O -w 3 -a 0 -m 13100 kerberoast.txt company_wordlist.txt -r best64.rule

# ---- Pass 6: Mask attack for remaining (run overnight) ----
# If 50% remain and policy is 8+ chars with complexity:
hashcat -O -w 3 -a 3 -m 1000 hashes.txt -i --increment-min=8 --increment-max=10 ?u?l?l?l?l?l?d?d
hashcat -O -w 3 -a 3 -m 1000 hashes.txt -i --increment-min=8 --increment-max=10 ?u?l?l?l?l?l?l?d

Phase 4: Result Analysis


bash

# Show all cracked passwords with usernames:
hashcat --show -m 1000 --username hashes.txt

# Output to file:
hashcat --show -m 1000 --username -o cracked.txt hashes.txt

# Analyze patterns:
cat cracked.txt | cut -d: -f2 | sort | uniq -c | sort -rn | head -20
# Shows the 20 most common passwords

# Check length distribution:
cat cracked.txt | cut -d: -f2 | awk '{print length}' | sort -n | uniq -c

# Check character composition:
cat cracked.txt | cut -d: -f2 | grep -c '[A-Z]'   # How many contain uppercase
cat cracked.txt | cut -d: -f2 | grep -c '[0-9]'   # How many contain digits
cat cracked.txt | cut -d: -f2 | grep -c '[!@#$%]' # How many contain specials

# Identify service accounts with weak passwords:
cat cracked.txt | grep '\$'

Phase 5: Reporting


For the pentest report:


  • Raw numbers: "Cracked 412 of 847 (48.6%) NTLM hashes in 6.3 GPU-hours on a single RTX 4090."

  • Policy analysis: "The password policy requires 8+ characters with 3 of 4 character classes, yet 67% of cracked passwords were exactly 8 characters ending in ! or 1."

  • Top patterns: The 20 most common passwords, frequency distribution, character composition stats.

  • Service accounts: Any service accounts with crackable passwords are HIGH findings.

  • Credential reuse: If the same password appears across multiple accounts, note the lateral movement risk.

  • Remediation: Recommend increasing minimum length to 12+, implementing banned-password lists, deploying MFA for service accounts, and auditing against HaveIBeenPwned's NTLM corpus.


Hardware Reference - What To Expect


GPU

NTLM (mode 1000)

NetNTLMv2 (mode 5600)

WPA2 (mode 22000)

bcrypt (mode 3200)

RTX 4090

~320 GH/s

~75 GH/s

~2,800 kH/s

~220 kH/s

RTX 4080

~240 GH/s

~55 GH/s

~2,100 kH/s

~165 kH/s

RTX 3090

~150 GH/s

~35 GH/s

~1,100 kH/s

~110 kH/s

RTX 3080

~100 GH/s

~23 GH/s

~820 kH/s

~75 kH/s

RX 7900 XTX

~130 GH/s

~28 GH/s

~950 kH/s

~90 kH/s

Apple M2 Ultra

~24 GH/s

~5 GH/s

~210 kH/s

~18 kH/s

CPU (32-core EPYC)

~2.5 GH/s

~600 MH/s

~25 kH/s

~2 kH/s


GH/s = billions of hashes per second. kH/s = thousands. For NTLM, a single 4090 tries 320 billion passwords per second. For bcrypt (deliberately slow by design, with an adjustable work factor), that drops to 220 thousand per second — over a million times slower. This is why bcrypt is recommended for web applications and why cracking bcrypt at scale requires either massive hardware or exceptional wordlist quality.


Advanced Techniques


Slow Hash Strategy (bcrypt, WPA2, VeraCrypt)


For slow hashes where brute-force is infeasible:


  1. Perfect your wordlist. Use target-specific words: company name, local sports teams, internal project names, usernames themselves as passwords

  2. Aggressive rule chaining: best64.rule first, then walk away for days with a massive rule set

  3. Celebrity breaches: If the target's users have been in known breaches, their old passwords are the highest-probability candidates for their current hash

  4. Use PrinceProcessor (PP) for combinatorially generated candidates with probability sorting


PrinceProcessor (PRobability INfinite Chained Elements)


PrinceProcessor generates candidates by chaining together fragments from a wordlist, sorted by probability. It's more efficient than combinator attacks because candidates are ordered by likelihood:


bash

# Generate Prince candidates, pipe to hashcat:
pp64 wordlist.txt | hashcat -a 0 -m 3200 bcrypt_hashes.txt

# Or with rules:
pp64 wordlist.txt | hashcat -a 0 -m 3200 bcrypt_hashes.txt -r best64.rule

Combinator with Rules


Stack combinator attack output through rules:


bash

# Generate combinator, apply rules:
hashcat -a 1 --stdout words1.txt words2.txt | hashcat -a 0 -m 1000 hashes.txt -r best64.rule

Toggle-Case Precomputed Candidates


For passwords known to be all-uppercase or mixed-case, pre-generate case variations:


bash

# mp64 generates mask-based candidates to stdout:
mp64 ?l?l?l?l?l?l?l?l | hashcat -a 0 -m 0 hashes.txt

Custom Charset from Cracked Passwords


Analyze already-cracked passwords to derive the actual character set in use:


bash

cat cracked.txt | cut -d: -f2 | grep -o . | sort -u | tr -d '\n'
# Output: !$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_acdefhijklmnoprstuvwxy
# Use this as --custom-charset for mask attacks — it's much narrower than full ?a

Legal & Operational Boundaries


During authorized pentesting, hashcat is used to demonstrate password policy weaknesses. The ROE should explicitly authorize password cracking. Hash extraction from live systems requires caution — extracting LSASS memory on a production domain controller can cause stability issues. Always coordinate.


What you should demonstrate:


  • "Your password policy requires 8+ characters with 3/4 complexity, yet I cracked 48% of hashes in under 7 GPU-hours."

  • "Sixteen domain admin accounts use the same password pattern: SeasonYear!."


What you should never do:


  • Crack hashes from out-of-scope systems

  • Exfiltrate the full hash file off the client's network (crack on a machine they provide, or seek explicit permission to take hashes off-site)

  • Store cracked passwords beyond the engagement window

  • Use cracked passwords to access systems outside scope


Please Donate | Black Hat HQ
Check Out Our Elite Cyber Store | Black Hat HQ
Enroll In Online Cybersecurity & Hacking Courses | Black Hat HQ

Comments


bottom of page