Hash Types Reference¶
This document provides comprehensive information about the hash types supported by KrakenHashes for password cracking operations.
Overview¶
Hash types in KrakenHashes correspond to hashcat modes and define the algorithm and format used to hash passwords. Each hash type has a unique numerical identifier (mode number) that matches hashcat's mode system. KrakenHashes currently supports 504 different hash types covering a wide range of algorithms and applications.
Hash Type Categories¶
Fast Hash Types¶
Fast hash algorithms are computationally inexpensive and can be cracked at high speeds. These include basic cryptographic hashes and simple salted variants.
Examples: - MD5 (mode 0) - SHA1 (mode 100) - SHA2-256 (mode 1400) - SHA2-512 (mode 1700) - NTLM (mode 1000)
Slow Hash Types¶
Slow hash algorithms are intentionally computationally expensive to resist brute-force attacks. These require significantly more time and resources to crack but provide better security. KrakenHashes supports 132 slow hash types.
Examples: - bcrypt (mode 3200) - PBKDF2 variants (modes 10900, 12000, 12100) - scrypt (mode 8900) - Argon2 variants - TrueCrypt/VeraCrypt containers
Application-Specific Hashes¶
Many hash types are specific to particular applications, operating systems, or protocols.
Categories include: - Database Systems: MySQL, PostgreSQL, Oracle, MSSQL - Operating Systems: Windows (NTLM, NetNTLM), Unix/Linux (crypt variants), macOS - Web Applications: WordPress, Joomla, Django, Drupal - Network Protocols: WPA/WPA2, Kerberos, SNMP - Archive Formats: ZIP, RAR, 7-Zip - Cryptocurrency: Bitcoin wallets, Ethereum wallets
Hash Type Structure¶
Each hash type in KrakenHashes has the following properties:
- ID: Unique numerical identifier (hashcat mode number)
- Name: Descriptive name of the hash algorithm
- Example: Sample hash format showing the expected input structure
- Needs Processing: Flag indicating if special preprocessing is required
- Is Enabled: Whether the hash type is currently supported
- Slow: Flag indicating if this is a computationally expensive algorithm
- Is Salted: Flag indicating if this hash type uses per-hash salts (affects keyspace calculations)
Salted Hash Type Classification¶
KrakenHashes distinguishes between salted and non-salted hash types for accurate keyspace calculations and benchmark caching.
What is a Salted Hash Type?¶
A salted hash type uses a unique salt value for each hash. When cracking salted hashes, hashcat reports speed as hash_ops/sec, which equals candidate_rate × salt_count. This means the reported benchmark speed must be divided by the remaining hash count to determine the true candidate throughput.
Impact on Keyspace Calculations: - For salted hashes: candidate_speed = benchmark_speed / remaining_hashes - For non-salted hashes: candidate_speed = benchmark_speed (direct)
This distinction is critical for accurate chunk sizing and progress estimation. Without salt-aware calculations, chunks for salted hash jobs would be oversized, causing tasks to take much longer than expected.
Benchmark Caching¶
KrakenHashes maintains separate benchmark records for different salt counts:
- Non-salted hashes: Single benchmark per (agent, attack_mode, hash_type)
- Salted hashes: Benchmark per (agent, attack_mode, hash_type, salt_count)
This ensures accurate speed estimation as salt count changes during cracking (remaining hashes decrease).
Auto-Classified Salted Hash Types¶
The following categories are automatically classified as salted during database initialization:
Cryptographic Password Hashing: - All crypt variants: md5crypt (500), descrypt (1500), sha512crypt (1800), sha256crypt (7400), bcrypt (3200), scrypt (8900), BSDi Crypt (12400) - PBKDF2 variants - Argon2 variants
Network Authentication: - NetNTLMv1 (5500), NetNTLMv2 (5600) - Kerberos family (7500, 13100, 18200, 19600, 19700, 19800, 19900) - WPA/WPA2/WPA3
Full Disk Encryption: - VeraCrypt, TrueCrypt - LUKS, FileVault, eCryptfs
Password Managers: - KeePass, LastPass, 1Password, Bitwarden
Database Systems: - MS SQL Server, PostgreSQL, MySQL, Oracle
Application-Specific: - Django, JWT tokens - PDF, MS Office, OpenOffice documents - 7-Zip, WinZip, RAR, ZIP archives - GPG/PGP encrypted files - Bitcoin/Ethereum/Electrum wallets - iTunes backup, Ansible Vault - Cisco IOS passwords
Checking Salted Status¶
In the admin Hash Type Manager, salted hash types display a water drop icon in the "Salted" column. You can also filter or sort by this property when planning attack strategies.
Manual Override¶
Administrators can manually set the is_salted flag for any hash type via the Hash Type Manager. This may be necessary for:
- Custom or rare hash types not auto-classified
- Edge cases where the pattern matching doesn't apply
- Testing or development purposes
Common Hash Types by Use Case¶
Web Application Security Testing¶
| Mode | Algorithm | Common Applications |
|---|---|---|
| 400 | phpass | WordPress, phpBB |
| 500 | md5crypt | Traditional Unix systems |
| 1600 | Apache \(apr1\) | Apache htpasswd |
| 7900 | Drupal7 | Drupal CMS |
| 124 | Django (SHA-1) | Django framework |
| 10000 | Django (PBKDF2-SHA256) | Modern Django |
Enterprise/Active Directory¶
| Mode | Algorithm | Use Case |
|---|---|---|
| 1000 | NTLM | Windows password hashes |
| 3000 | LM | Legacy LAN Manager hashes (pre-Vista) |
| 5500 | NetNTLMv1 | Network authentication |
| 5600 | NetNTLMv2 | Network authentication |
| 7500 | Kerberos 5 AS-REQ | Domain authentication |
| 13100 | Kerberos 5 TGS-REP | Ticket Granting Service |
Database Security¶
| Mode | Algorithm | Database |
|---|---|---|
| 12 | PostgreSQL | PostgreSQL MD5 |
| 300 | MySQL4.1/MySQL5 | MySQL SHA1 |
| 200 | MySQL323 | Legacy MySQL |
| 131 | MSSQL (2000) | SQL Server |
| 132 | MSSQL (2005) | SQL Server |
| 1731 | MSSQL (2012, 2014) | SQL Server |
File/Archive Security¶
| Mode | Algorithm | Application |
|---|---|---|
| 13000 | RAR5 | WinRAR archives |
| 12500 | RAR3-hp | WinRAR archives |
| 11600 | 7-Zip | 7-Zip archives |
| 17200 | PKZIP (Compressed) | ZIP archives |
| 17210 | PKZIP (Uncompressed) | ZIP archives |
Performance Considerations¶
Speed Classifications¶
Ultra-Fast (>1 billion attempts/sec on modern GPUs): - MD4 (900), MD5 (0), SHA1 (100) - Simple salted variants
Fast (100M-1B attempts/sec): - SHA2 variants, NTLM - Basic application-specific hashes
Medium (1M-100M attempts/sec): - Multiple iteration hashes - Complex salted variants
Slow (<1M attempts/sec): - PBKDF2, bcrypt, scrypt - Full disk encryption - Cryptocurrency wallets
Resource Requirements¶
GPU Memory Considerations: - Large wordlists may require significant GPU memory - Rule-based attacks can multiply memory requirements - Some hash types have higher per-hash memory overhead
CPU vs GPU Performance: - Most hash types benefit significantly from GPU acceleration - Some algorithms may perform better on CPU for small datasets - Hybrid attacks may utilize both CPU and GPU resources
Hash Format Examples¶
Basic Formats¶
MD5: 8743b52063cd84097a65d1633f5c74f5
SHA1: b89eaac7e61417341b710b727768294d0e6a277b
SHA256: 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
NTLM: b4b9b02e6f09a9bd760f388b67351e2b
Salted Formats¶
md5($pass.$salt): 01dfae6e5d4d90d9892622325959afbe:7050461
sha1($salt.$pass): cac35ec206d868b7d7cb0b55f31d9425b075082b:5363620024
sha256($pass.$salt): c73d08de890479518ed60cf670d17faa26a4a71f995c1dcc978165399401a6c4:53743528
Application-Specific Formats¶
WordPress: $P$984478476IagS59wHZvyQMArzfx58u.
bcrypt: $2a$05$LhayLxezLhK1LhWvKxCyLOj0j1u.Kj0jZ0pEmm134uzrQlFvQJLF6
Django: pbkdf2_sha256$20000$H0dPx8NeajVu$GiC4k5kqbbR9qWBlsRgDywNqC2vd9kqfk7zdorEnNas=
NetNTLMv2: admin::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6
Username and Domain Extraction¶
KrakenHashes v1.1+ automatically extracts username and domain information from hash formats that contain identity data. This enables better client reporting, user tracking, and prioritization of high-value accounts.
Supported Hash Types¶
| Hash Type | Mode | Extraction Pattern | Example |
|---|---|---|---|
| NTLM | 1000 | DOMAIN\username:sid:LM:NT::: | CONTOSO\Administrator:500:... |
| NetNTLMv1 | 5500 | username::domain:challenge:response | alice::CORP:1122334455667788:... |
| NetNTLMv2 | 5600 | username::domain:challenge:response | bob::ENTERPRISE:abcdef01:... |
| Kerberos AS-REP | 18200 | $krb5asrep$23$user@domain:hash | $krb5asrep$23$john@CORP.COM:... |
| LastPass | 6800 | hash:iterations:email | a1b2c3...:500:user@example.com |
| DCC/MS Cache | 1100 | hash:username | a1b2c3...:jsmith |
Domain Formats¶
The system recognizes two standard domain notation formats:
Windows/NetBIOS Style:
DOMAIN\username → username: "username", domain: "DOMAIN"
CORP\alice → username: "alice", domain: "CORP"
Kerberos/Email Style:
user@domain.com → username: "user", domain: "domain.com"
john@CORP.LOCAL → username: "john", domain: "CORP.LOCAL"
admin@sales.corp.com → username: "admin", domain: "sales.corp.com"
Machine Account Support¶
Machine accounts (computer accounts) are identified by a trailing $ character. The extraction system preserves this indicator:
CONTOSO\COMPUTER01$ → username: "COMPUTER01$", domain: "CONTOSO"
WKS01$::DOMAIN:... → username: "WKS01$", domain: "DOMAIN"
SRV-WEB$@CORP.LOCAL → username: "SRV-WEB$", domain: "CORP.LOCAL"
Note: Machine accounts are important security indicators as they can provide lateral movement opportunities in domain environments.
Fallback Extraction¶
For hash types without custom extractors, a heuristic approach attempts extraction:
- Checks for common separators (
:,\,@) - Identifies potential username patterns
- Preserves special characters like
$for machine accounts - Stores
NULLfor domain when not detected
LM Hash Special Processing (v1.2.1+)¶
LM (LAN Manager) hashes have unique characteristics that require special handling in KrakenHashes. This section explains the structure, weaknesses, and processing approach.
Structure and Weaknesses¶
Hash Structure: - Full hash: 32 hexadecimal characters - Two halves: Each 16 characters (representing 7-character DES-encrypted password segments) - Maximum password length: 14 characters total (7 + 7)
Example:
Full LM Hash: 01FC5A6BE7BC6929AAD3B435B51404EE
First Half: 01FC5A6BE7BC6929 (represents chars 1-7: "PASSWOR")
Second Half: AAD3B435B51404EE (represents chars 8-14 or blank)
Critical Weaknesses: 1. Uppercase Conversion: Passwords are converted to uppercase before hashing, eliminating case complexity 2. Split Processing: Each 7-character half is encrypted independently using DES 3. No Salting: All identical password halves produce identical hashes 4. Weak Encryption: DES encryption is cryptographically weak and fast to brute-force
Security Impact: - Keyspace Reduction: Uppercase-only dramatically reduces combinations (26 vs 52 for letters) - Parallel Cracking: Each half can be cracked independently in parallel - Pattern Recognition: Common password halves can be precomputed (rainbow tables) - Maximum 7-char Complexity: Each half limited to 7 characters reduces search space
KrakenHashes Processing¶
Agent Download Behavior:
KrakenHashes processes LM hashes differently from other hash types to optimize cracking efficiency:
- Hash Splitting: Backend splits each 32-char LM hash into two 16-char halves
- Unique Halves: System sends only unique 16-char halves to agents (not full 32-char hashes)
- Automatic Deduplication: Common halves (like blank constant) appear only once
- Hashcat Processing: Agents crack each 16-char half as an independent hash
Why This Approach: - Hashcat Requirement: Hashcat mode 3000 expects 16-char halves, not 32-char full hashes - Efficiency: Deduplication eliminates redundant work on common password halves - Parallel Capability: Two halves can be cracked simultaneously on different agents - Partial Crack Support: System can track when only one half is cracked
Example Workflow:
Upload: DOMAIN\user:500:01FC5A6BE7BC6929AAD3B435B51404EE:hash::: (pwdump format)
Processing:
1. Extract LM hash: 01FC5A6BE7BC6929AAD3B435B51404EE
2. Split into halves:
- First: 01FC5A6BE7BC6929
- Second: AAD3B435B51404EE
3. Check second half = blank constant (aad3b435b51404ee)
4. Send only first half to agents for cracking
5. Agents crack: 01FC5A6BE7BC6929 → "PASSWOR"
Result: Partial crack (first 7 chars known)
Partial Crack Tracking¶
KrakenHashes v1.2.1+ tracks partial crack status for LM hashes in the lm_hash_metadata table:
Partial Crack States: - First Half Only: First 7 characters cracked (e.g., PASSWOR) - Second Half Only: Last 7 characters cracked (e.g., D123) - Both Halves: Full password assembled (e.g., PASSWORD123)
Database Storage:
lm_hash_metadata table:
- hash_id: Reference to main hash
- first_half_cracked: Boolean
- first_half_password: VARCHAR(7) -- Up to 7 chars
- second_half_cracked: Boolean
- second_half_password: VARCHAR(7) -- Up to 7 chars
Strategic Value: Partial cracks provide significant intelligence: - Knowing one half reduces remaining keyspace from ~95^14 to ~95^7 combinations - Pattern recognition helps inform attacks on other hashes - Can generate targeted masks for NTLM attacks (see Analytics section)
See Hashlists - LM Hash Special Processing for upload and processing details.
Pwdump Format Support¶
KrakenHashes automatically detects and processes pwdump-format files containing both LM and NTLM hashes:
Pwdump Format:
Example:
CORP\Administrator:500:01FC5A6BE7BC6929AAD3B435B51404EE:0CB6948805F797BF2A82807973B89537:::
CORP\Guest:501:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0:::
Automatic Linking: - System can create separate but linked LM and NTLM hashlists - Links maintained by matching username and domain - Analytics show correlation between LM and NTLM crack status - See Hashlists - LM/NTLM Linked Hashlists
Blank LM Hash Constant¶
The constant aad3b435b51404eeaad3b435b51404ee appears in pwdump files when:
Causes: - Password was blank/empty when LM hash was created - LM hash storage was disabled (Windows Vista+ default setting) - Account created after LM storage was disabled via Group Policy
KrakenHashes Handling: - Automatically detected and filtered during processing - Not counted in hash totals - Not sent to agents for cracking - Displayed in upload dialog for user awareness
Group Policy Setting:
When enabled, Windows stores only the blank constant instead of the actual LM hash.Security Implications and Deprecation¶
Industry Status: - Deprecated: Microsoft deprecated LM hashing with Windows Vista (2007) - Disabled by Default: Windows Vista+ do not store LM hashes by default - Legacy Support Only: May still be found in older Active Directory environments
Security Risk Assessment: - CRITICAL: Presence of LM hashes indicates severe security misconfiguration - Fast Cracking: LM hashes can be cracked in seconds to minutes with modern hardware - No Defense: Uppercase conversion and 7-char splitting make LM indefensible - Compliance Violations: Many security frameworks prohibit LM hash storage
Remediation: 1. Disable LM Hash Storage: Configure Group Policy on all domain controllers 2. Force Password Resets: Require all users to change passwords after policy change 3. Verify Removal: Audit domain controllers to confirm LM hashes are no longer stored 4. Network Segmentation: Isolate any systems that still require LM support
Analytics Integration: KrakenHashes automatically generates CRITICAL severity recommendations when LM hashes are detected in analytics reports. See Analytics Reports - Windows Hash Analytics.
Hash Type Identification¶
Automatic Detection¶
KrakenHashes can often identify hash types based on: - Length: Different algorithms produce different output lengths - Character set: Hex vs base64 vs custom encoding - Delimiters: Colons, dollar signs, or other separators - Prefixes: Algorithm identifiers like $2a$, {SHA}, etc.
Manual Identification Guidelines¶
By Length (hex-encoded): - 32 characters: MD5, NTLM, MD4 - 40 characters: SHA1, MySQL4.1 - 56 characters: SHA2-224 - 64 characters: SHA2-256, BLAKE2s-256 - 96 characters: SHA2-384 - 128 characters: SHA2-512, BLAKE2b-512
By Format Patterns: - $algorithm$: crypt-style formats (bcrypt, sha512crypt, etc.) - {ALGORITHM}: LDAP-style formats - hash:salt: Simple salted hashes - Complex delimited formats for specific applications
Common Identification Mistakes¶
- Confusing MD5 with NTLM (both 32 hex characters)
- Misidentifying base64-encoded vs hex-encoded hashes
- Not recognizing application-specific wrapper formats
Best Practices¶
Hash Type Selection¶
- Verify the source: Confirm the application/system that generated the hashes
- Check format carefully: Pay attention to delimiters, prefixes, and encoding
- Test with known samples: Use test hashes to verify correct identification
- Consider variations: Many applications have multiple hash format variants
Performance Optimization¶
- Start with fast hashes: Test identification with quick attacks first
- Use appropriate wordlists: Match wordlist complexity to hash strength
- Consider slow hash implications: Budget time appropriately for PBKDF2, bcrypt, etc.
- Monitor resource usage: Slow hashes can consume significant GPU memory
Security Considerations¶
- Handle sensitive data properly: Ensure secure storage and transmission
- Use appropriate attack methods: Don't waste resources on over-engineered attacks
- Respect rate limits: Some hash types may benefit from attack rate limiting
- Document findings: Keep records of successful techniques for similar engagements
Advanced Features¶
Processing Requirements¶
Some hash types require special preprocessing before cracking: - NTLM (mode 1000): Requires UTF-16LE encoding conversion - Character set normalization for international passwords - Case conversion requirements for specific applications
Multi-Hash Support¶
KrakenHashes supports attacking multiple hashes of the same type simultaneously: - Efficient memory usage for large hashlist processing - Optimized GPU kernels for batch operations - Progress tracking per individual hash
Custom Hash Types¶
For specialized requirements: - Contact development team for custom hash type implementation - Provide detailed specification and test vectors - Consider performance implications for custom algorithms
Troubleshooting¶
Common Issues¶
- Hash not cracking: Verify hash type identification
- Slow performance: Check if hash type is marked as "slow"
- GPU errors: Some hash types require specific GPU capabilities
- Memory errors: Large hashlists may exceed available GPU memory
Getting Help¶
- Check the hash format against provided examples
- Verify the source application and version
- Test with known password/hash pairs
- Consult the troubleshooting guide for hardware-specific issues
Complete Hash Type List¶
For a complete list of all supported hash types with examples, consult the database directly or use the admin interface. The list includes detailed information about: - Algorithm specifications - Example hash formats - Performance characteristics - Special requirements or limitations
Last updated: Based on KrakenHashes database with 504 supported hash types For the most current information, always check the application's hash type management interface