GovCracker Masks Rules Brain Authorized Use Only

Rules & Masks
GovCracker Practical Reference

Complete reference for rule-based attacks, mask attacks, custom charsets, .hcmask files, full rule function coverage, reject rules, memory operations, Hashcat Brain and forensics best practices – directly usable via the GovCracker interface.

GovCracker uses a modified Hashcat engine: All parameters, masks, rules and Brain options described here are available in GovCracker via dedicated input fields, dropdowns and file selectors – no command line required. GovCracker assembles the underlying Hashcat commands internally. Understanding Hashcat syntax helps to use the options optimally.
Legal notice: GovCracker and the techniques described here may only be used for authorized password recovery, IT forensics in law enforcement contexts, internal security audits with written permission, or training on your own systems. Any unauthorized use is prosecutable.

1. Core Concepts: Rules, Masks & Hybrid

GovCracker supports all Hashcat attack modes through a guided interface without a command line. The three core attack principles differ greatly in scope, keyspace, and runtime – the right choice determines success or failure.

Rule-Based Attack (-a 0)

Applies transformation rules to a wordlist. sommer becomes, e.g., Sommer2024!. Ideal when a good base wordlist is available (known passwords, company name, personal data).

In GovCracker: Attack mode “Wordlist“ → load rule file(s) via the file selector.

Mask Attack (-a 3)

Generates candidates purely position-based. Each position has a charset. No dictionary needed. Ideal for known patterns (first name + year + special character).

In GovCracker: Attack mode “Mask Attack“ → mask field, custom charsets, increment options and Markov toggle directly configurable.

Hybrid Attack (-a 6 / -a 7)

Combines a wordlist with a mask. Mode -a 6: word first, mask appended. Mode -a 7: mask first, word appended. Very effective for patterns like sommer2024!.

In GovCracker: Attack mode “Hybrid Attack“ with direction selector and mask input field.

More Attack Modes

Combinator Attack (-a 1)

Combines one word from each of two wordlists into a candidate. police + 2024 becomes police2024. Optional inline rules with -j/-k for both sides. Available in GovCracker via the Combinator mode.

Pure Wordlist Attack (-a 0)

Dictionary attack without rules – the fastest method, directly hits known or leaked passwords. Always recommended as the first step. In GovCracker: Wordlist mode without a rule file.

Recommended Attack Order

  1. Wordlist (rockyou, project-specific)
  2. Wordlist + best64.rule
  3. Wordlist + rockyou-30000.rule
  4. Hybrid: Wordlist + ?d?d?d?d
  5. Mask: typical patterns / .hcmask
  6. Brute-Force (short lengths only)

2. Masks & Built-in Charsets

A mask is a character template. Each placeholder defines which characters are tested at that position. Fixed characters can be embedded directly. The mask length determines the candidate length (when increment is disabled).

Built-in Charsets

PlaceholderNameCharactersCountTypical Use
?lLowercaseabcdefghijklmnopqrstuvwxyz26Names, regular words
?uUppercaseABCDEFGHIJKLMNOPQRSTUVWXYZ26First letter, abbreviations
?dDigits012345678910Digits, PINs, years
?hHex lowercase0123456789abcdef16MD5-like passwords, hashes as PW
?HHex uppercase0123456789ABCDEF16Like ?h, but uppercase
?sSpecial !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~33Special characters, password policies
?aAll printable?l + ?u + ?d + ?s95Full brute-force (slow!)
?bAll bytes0x00–0xff256Binary contexts, encoding issues
??Literal ?The literal ? character1When ? appears in the password

Mask Examples with Fixed Characters

Fixed characters are written directly into the mask – only placeholders start with ?.

PatternMaskExplanationExamples
First name + 4 digits?u?l?l?l?l?d?d?d?dUppercase, four lowercase, four digitsMaria1985, Klaus2019
Fixed company name + numberFirma?d?d?d?d!Fixed prefix, four digits, fixed !Firma2024!
4-digit PIN?d?d?d?dAll 10,000 combinations0000–9999
6-digit PIN?d?d?d?d?d?dAll 1,000,000 combinations000000–999999
Word + special character?l?l?l?l?l?l?sSix lowercase letters + special charactersommer!, winter?
License plate-like?u?u?u?d?d?d?dThree uppercase letters, four digitsABC1234
Date?d?d.?d?d.?d?d?d?dEuropean date format01.01.1985
Complex 8 characters?u?l?l?l?d?d?d?sTypical password policyHaus1985!

3. Custom Charsets (-1 to -4)

Hashcat allows up to four custom charsets. They are defined with -1–-4 (or --custom-charset1 to --custom-charset4) and used in the mask as ?1–?4. Built-in charsets can be combined.

ParameterLong FormPlaceholderCharset DefinitionExamples
-1 CS--custom-charset1=CS?1Character string or combined built-ins-1 ?l?d ?1?1?1?1?1?1
-2 CS--custom-charset2=CS?2Character string or combined built-ins-2 ABCDEF ?2?2?d?d
-3 CS--custom-charset3=CS?3Character string or combined built-ins-3 !?_$ ?l?l?3
-4 CS--custom-charset4=CS?4Character string or combined built-ins-4 äöüß ?l?l?4?4
Tip: Built-in charsets can be combined in the charset definition: -1 ?l?d defines all lowercase letters and digits. A direct character string like -1 aeiou is also possible and works well for vowel-based analysis.
In GovCracker – Custom Charsets: The mask attack dialog provides four dedicated fields for Custom Charset 1–4. The charset definition can be entered directly (e.g. ?l?d or !@#$). GovCracker automatically passes them as -1–-4 parameters to the engine.

4. Mask Options & Increment Mode

Beyond the mask itself, various options control the behavior of the mask attack – especially the increment mode for variable password lengths.

OptionMeaningDefaultExamples
-a 3Enables the mask attack / brute-force mode–hashcat -a 3 -m 1000 hashes.txt ?l?l?l?d
--incrementTries all lengths from 1 (or --increment-min) up to the mask lengthoff?l?l?l?l?l?l --increment → tries 1–6 characters
--increment-min=NStart length for increment mode1--increment-min=6
--increment-max=NMaximum length; must not exceed mask lengthmask length--increment-max=10
--hex-charsetInterprets custom charsets as hex bytesoff--hex-charset -1 c3a4c3b6
-s NSkip: skips the first N candidates (for checkpointing)0-s 5000000000
-l NLimit: stops after N candidatesno limit-l 1000000000
--keyspaceOutputs the keyspace (number of candidates) for the mask without cracking–hashcat -a 3 ?u?l?l?l?d?d?d?d --keyspace
In GovCracker – Mask Options: The mask attack dialog has dedicated fields for Increment Mode, Increment Min and Increment Max. For .hcmask files a file selector is provided – GovCracker processes lines sequentially and shows progress per mask line.

5. Hashcat Mask Files: .hcmask

An .hcmask file contains multiple masks, optionally with their own custom charsets per line. Hashcat processes lines sequentially. Sorting by probability or expected runtime can significantly improve efficiency.

Format of an .hcmask Line

[?1,][?2,][?3,][?4,]mask
ElementMeaningRequired?
?1,Custom Charset 1 for this line (overrides global -1)optional
?2,Custom Charset 2 for this lineoptional
?3,Custom Charset 3 for this lineoptional
?4,Custom Charset 4 for this lineoptional
maskThe actual mask (required field)yes

Complete Example: forensics.hcmask

# Comment lines start with #
# Line 1: First name (6 chars) + year → most common pattern
?u?l?l?l?l?l?d?d?d?d
# Line 2: lowercase letters + digit at end
?l?l?l?l?l?l?l?d
?l?l?l?l?l?l?d?d
# Line 3: Company name pattern
Company?d?d?d?d!
Firma?d?d?d?d!
# Line 4: Custom charset (lower + digit) at every position
?l?d,?1?1?1?1?1?1?1?1
# Line 5: with special char at end
?u?l?l?l?l?l?d?d?s
# Line 6: PIN pattern (4–6 digits)
?d?d?d?d
?d?d?d?d?d?d
# Line 7: Date pattern
?d?d?d?d?d?d?d?d
hashcat -m 1000 -a 3 hashes.txt forensics.hcmask
Escaping in .hcmask files:
  • A literal ? character: ??
  • A comma inside a charset field: \,
  • Comments: lines starting with #

6. Keyspace & Runtime Estimation

The keyspace is the total number of candidates for a mask. It is the product of the charset sizes at all positions.

$$\text{Keyspace} = \prod_{i=1}^{n} |\text{Charset}_i|$$

?l?l?l?l?l?l 26⁶ 308.915.776
?u?l?l?l?d?d?d?d 26 × 26⁴ × 10⁴ 11.881.376.000
?a?a?a?a?a?a?a?a 95⁸ 6.634.204.312.890.625
?l?l?l?l?d?d?d?d?s 26⁴ × 10⁴ × 33 15.422.908.800
?d?d?d?d?d?d 10⁶ 1.000.000

Runtime Formula

$$t = \frac{\text{Keyspace}}{\text{Hashrate (H/s)}}$$

Example: ?u?l?l?l?d?d?d?d with NTLM (~100 GH/s on RTX 4090): approx. 0.12 seconds. With MD5-crypt (-m 500, ~1 MH/s): over 130 hours.

In GovCracker: The mask attack automatically shows the estimated keyspace and remaining time in the progress display. Use the --keyspace option in the integrated terminal for pre-checks.

7. Markov Chains & Smart Masks

GovCracker supports Markov chain-based character sequence probabilities via .hcstat2 files. This tries more probable character combinations first – ideal for larger keyspaces. The Markov function can be toggled in the mask attack dialog; threshold and a custom .hcstat2 file can be configured there directly.

OptionMeaningExamples
--markov-hcstat2=FILEUse Markov statistics file--markov-hcstat2=hashcat.hcstat2
--markov-threshold=NOnly use transitions with probability ≥ N (0 = all)--markov-threshold=50
--markov-classicClassic Markov mode (Hashcat v5 compatibility)–
--markov-disableDisable Markov (pure brute-force)–
When Markov is useful: For long masks (> 8 characters) and realistic, human-chosen passwords. For short masks or systematic patterns (PIN, date), prefer to disable it. In GovCracker the Markov toggle is directly available in the mask attack dialog.

8. Rule Basics

Rule Special Options

OptionMeaningExamples
-r file.ruleLoad rule file (combinable up to 4×)-r rules/best64.rule
-j RULESingle rule left (applied before the -r rule)-j c
-k RULESingle rule right (applied after the -r rule)-k $!
--stdoutOutput candidates without crackinghashcat words.txt -r test.rule --stdout
--debug-mode=1Logs which rule cracked each found hash--debug-mode=1 --debug-file=out.rule
--debug-mode=2Like 1, but also log the original word--debug-mode=2
--debug-mode=3Like 2, but also log the transformed word--debug-mode=3
--debug-mode=4Like 3, but also log the hash--debug-mode=4
--debug-file=FILEOutput file for debug information--debug-file=matched.txt
--generate-rules=NGenerate and apply N random rules--generate-rules=10000
--generate-rules-func-min=NMinimum number of functions per random rule--generate-rules-func-min=1
--generate-rules-func-max=NMaximum number of functions per random rule--generate-rules-func-max=5
--generate-rules-func-sel=LISTEAllowed functions for random rules--generate-rules-func-sel=lcuoTt
--generate-rules-seed=NReproducible random seed--generate-rules-seed=42
Position parameter N: Positions start at 0. After 9: A = 10, B = 11, ..., Z = 35. Position * refers to the last character in some functions.

9. Alle Rule-Funktionen (Standardfunktionen)

All functions below are compatible with John the Ripper. The test word for the Output column is p@ssW0rd (8 characters).

Case & Order

NameSyntaxDescriptionOutput (p@ssW0rd)
Nothing (Passthrough):Pass word through unchangedp@ssW0rd
Lowercase alllLowercase all charactersp@ssw0rd
Uppercase alluUppercase all charactersP@SSW0RD
CapitalizecCapitalize first character, lowercase restP@ssw0rd
Invert CapitalizeCLowercase first character, uppercase restp@SSW0RD
Toggle Case (alle)tToggle case of all lettersP@SSw0RD
Toggle @ Position NTNToggle case at position N onlyT3 → p@sSW0rd

Rotation & Duplication

NameSyntaxDescriptionOutput (p@ssW0rd)
ReverserReverse the worddr0Wss@p
DuplicatedDuplicate the wordp@ssW0rdp@ssW0rd
Duplicate N timespNAppend the word N additional timesp2 → word × 3
ReflectfWord + reversed wordp@ssW0rddr0Wss@p
Rotate Left{Rotate first character to the end@ssW0rdp
Rotate Right}Rotate last character to the frontdp@ssW0r
Duplicate first N charszNDuplicate first character N times at the frontz2 → ppp@ssW0rd
Duplicate last N charsZNDuplicate last character N times at the endZ2 → p@ssW0rddd
Duplicate all charsqDuplicate every characterpp@@ssssWW00rrdd

Append & Insert

NameSyntaxDescriptionOutput (p@ssW0rd)
Append Char$XAppend character X to the end$1$! → p@ssW0rd1!
Prepend Char^XPrepend character X to the front^2^1 → 12p@ssW0rd
Insert @ NiNXInsert character X at position Ni4! → p@ss!W0rd

Delete & Extract

NameSyntaxDescriptionOutput (p@ssW0rd)
Truncate Left[Delete the first character@ssW0rd
Truncate Right]Delete the last characterp@ssW0r
Delete @ NDNDelete character at position ND3 → p@sW0rd
Extract RangexNMExtract M characters starting at position Nx04 → p@ss
Omit RangeONMDelete M characters starting at position NO12 → psW0rd
Truncate @ N'NTruncate everything from position N'6 → p@ssW0

Replace & Overwrite

NameSyntaxDescriptionOutput (p@ssW0rd)
Overwrite @ NoNXOverwrite character at position N with Xo3$ → p@s$W0rd
Replace all X with YsXYReplace all occurrences of X with Yss$ → p@$$W0rd
Purge X@XRemove all occurrences of X@s → p@W0rd

10. Hashcat-specific Functions

These functions are Hashcat-specific and not compatible with John the Ripper. The test word for the Output column is p@ssW0rd.

Swap & Shift

NameSyntaxDescriptionOutput (p@ssW0rd)
Swap FrontkSwap the first two characters@pssW0rd
Swap BackKSwap the last two charactersp@ssW0dr
Swap @ N,M*NMSwap characters at positions N and M*34 → p@sWs0rd
Bitwise Shift LeftLNASCII value at position N × 2 (bitwise left shift)L2 → character value doubled
Bitwise Shift RightRNASCII value at position N ÷ 2 (bitwise right shift)R2 → character value halved
ASCII Increment+NIncrement ASCII value at position N by 1+2 → p@tsW0rd (s→t)
ASCII Decrement-NDecrement ASCII value at position N by 1-1 → p?ssW0rd (@→?)

Block Duplication & Title Case

NameSyntaxDescriptionOutput (hello world)
Replace N with N+1.NReplace character at N with character at N+1.1 → p@ssW0rd → psssW0rd
Replace N with N–1,NReplace character at N with character at N–1,1 → ppssW0rd
Duplicate Block FrontyNDuplicate the first N characters at the fronty3 → p@sp@ssW0rd
Duplicate Block BackYNDuplicate the last N characters at the endY3 → p@ssW0rd0rd
Title CaseELowercase all, capitalize after each spaceHello World
Title mit Separator XeXLike E, but after separator Xe- → Hello-World
Toggle nach N-tem Sep.3NXToggle case of character after the N-th separator X30- → Hello-world→Hello-World

11. Memory Operations (M, 4, 6, X)

Memory operations allow temporary storage and reuse of intermediate states within a rule line. The concept is powerful but error-prone – always test with --stdout.

NameSyntaxDescriptionBeispiel & Ausgabe
MemorizeMStores the current word state in the memory register. Memory is set at the beginning of rule execution.M → current state saved
Append Memory4Appends the stored memory content to the current worduM l4 → p@ssW0rd + uppercase stored, then lowercase + memory: p@ssw0rdP@SSW0RD
Prepend Memory6Prepends the stored memory contentrMr6 → reverse, save, reverse back, memory prepended: dr0Wss@pp@ssW0rd
Extract MemoryXNMIInserts M characters from memory starting at position N into position I of the current wordlMX428 → complex, memory-based

Memory Usage Examples

# Original word + uppercase version
# sommer → sommerSOMMER
M u4

# Original word + reversed version
# sommer → sommerremmos
M r4

# Word “mirrored” + space in between
# hello → hello olleh
M $  r4

# Suppress duplicate (Q-Reject after memory comparison)
# Discards if word == memory (i.e. rule changed nothing)
r M r Q
Memory initialization: Memory is initialized with the unchanged original word at the start of each rule execution. Only after an explicit M call is the current state saved.

12. Reject Rules

Reject rules discard candidates based on conditions. They work only with -j/-k (inline rules) or hashcat-legacy — in regular rule files they are ignored by hashcat.

NameSyntaxCondition (rejected if…)ExamplesTypical Use
Reject less<NWord length > N (discards long words)<8Keep only short passwords
Reject greater>NWord length < N (discards short words)>5Only words with at least 6 characters
Reject equal length_NLength ≠ N_8Only exactly 8-character candidates
Reject contains!XCharacter X is present!zNo z allowed
Reject not contains/XCharacter X is not present/1Must contain a 1
Reject equal first(XDoes not start with X(pOnly words starting with p
Reject equal last)XDoes not end with X)dOnly words ending with d
Reject equal @ N=NXCharacter at position N is not X=0APosition 0 must be A
Reject contains count%NXX occurs fewer than N times%2aAt least 2× 'a' required
Reject memory matchQCurrent word == memory contentrMrQDiscard palindromes / unchanged words

13. Hex Bytes in Rules

Non-printable characters or special characters can be specified in rules as hex escape sequences \xNN. This is useful for encoding-specific passwords, null bytes, or characters outside the ASCII range.

# Append letter 'd' (0x64)
hashcat words.txt -j '$\x64' --stdout
# penguin → penguind

# Append null byte (forensic special case)
$\x00

# Append umlaut ä (UTF-8: c3 a4)
$\xc3$\xa4

# Replace: 'a' with ä (UTF-8)
sa\xc3\xa4
Encoding note: UTF-8 multi-byte characters (like umlauts) occupy two or more bytes. ä = \xc3\xa4. The charset file (.hcchr) can be used to define complete character sets for specific code pages. For Windows code page 1252: --encoding=cp1252.

14. Known Rule Sets & Recommendations

Hashcat ships with several high-quality rule files. The choice depends on the target scenario.

Rule FileRulesUse CaseStrength
best64.rule64First step, fast, covers most common patternsEmpfohlen
rockyou-30000.rule30.000Strong coverage of typical password patternsStark
dive.rule99.950Maximum transformation; slow but comprehensiveSehr umfangreich
T0XlC.rule8.478Leet-speak, special character substitutionsSpezialisiert
InsidePro-HashManager.rule17.238Hashing patterns, numbers, appendagesUmfangreich
unix-ninja-leetspeak.rule2.306Leet-speak substitutionsSpezialisiert
hob064.rule64Similar to best64, alternative selectionSchnell
OneRuleToRuleThemAll.rule52.000+Community-based, broad coverageSehr umfangreich

Key Rules from best64.rule

# No change
:
# Lowercase
l
# Capitalize
c
# Reverse
r
# Append digit 1
$1
# Exclamation mark
$!
# Capitalize + 1
c$1
# Year 2022
$2$0$2$2
# Duplicate
d
# Delete last character
]
# Delete first character
[
# Replace all s with $
ss$
# Replace all o with 0
so0

15. Hashcat Brain – Intelligent Deduplication

Hashcat Brain is an optional server-client system for candidate deduplication. A Brain server records which candidates have already been tested – connected clients skip these automatically. This prevents duplicate work across parallel sessions using the same wordlists or rules.

Components

ComponentRoleExample Command
Brain-ServerCentral deduplication service; remembers all tested candidates in a fast in-memory structurehashcat --brain-server --brain-server-timer=5
Brain-ClientCracking instance (e.g. GovCracker) that queries the server before each candidate block and skips duplicate blockshashcat ... --brain-client --brain-client-features=3

Brain Feature Level

ValueMeaningRecommendation
1Deduplication by hash value of the candidate (content)Basic deduplication
2Deduplication by attack position (skip/limit-based, for distributed attacks)Cluster use
3Both combined (Feature 1 + 2)Both combined (Feature 1 + 2)

When Brain is Useful – and When It's Not

The decision depends entirely on the GPU hashrate of the target algorithm. Brain is only useful when the cracking rate is low enough that the network overhead of the Brain server does not become a bottleneck.

NTLM – Brain is counterproductive

NTLM achieves around 300 billion hashes per second on an RTX 4090. The GPU tests candidates so fast that any network communication with the Brain server immediately becomes the bottleneck. The GPU is almost entirely idle, waiting for the server.

GPU hashrate: ~300 GH/s
Brain throughput (realistic): ~200–500 MH/s
Effective performance with Brain: < 0.2% of GPU capacity
→ Never activate Brain for NTLM.

VeraCrypt – Brain is ideal

VeraCrypt with AES cascade (-m 13711) achieves only around 500–1,000 hashes per second on an RTX 4090. The Brain server has more than enough capacity to deduplicate every candidate without slowing down the GPU.

When multiple GovCracker instances (e.g. GovCluster) run with the same wordlist, Brain prevents the same candidate from being tested multiple times against the expensive hash.

GPU hashrate: ~500–1,000 H/s
Brain overhead: negligible
Benefit with 3 instances + same wordlist: up to 3× faster total coverage
→ Definitely use Brain for VeraCrypt, KeePass, bcrypt.

Brain Rule of Thumb by Algorithm

AlgorithmHashrate (RTX 4090)Brain?Reason
NTLM (-m 1000)~300 GH/sNeinGPU exceeds Brain capacity by factor ~600
MD5 (-m 0)~160 GH/sNeinSame reason as NTLM
SHA-256 (-m 1400)~22 GH/sNeinStill too fast for Brain
WPA2 (-m 22000)~2 MH/sBedingtOnly useful with many parallel clients
bcrypt cost 5 (-m 3200)~200 kH/sJaBrain overhead low, deduplication useful
VeraCrypt AES (-m 13711)~500 H/sJaGPU so slow that Brain causes no losses
KeePass AES (-m 13400)~1 kH/sJaSame reason as VeraCrypt
BitLocker (-m 22100)~500 kH/sJaUseful with multiple parallel sessions
In GovCracker: The Brain section in the attack dialog has a toggle (enable/disable Brain), server IP field, port and password. Feature level 3 is pre-selected. When using GovCluster, the Brain server can run centrally on the cluster master and connect all agents automatically – without manual configuration.
Security note: Run the Brain server exclusively on the local network or VPN. The Brain password protects access – without a password the server is open to any reachable host. Never expose it publicly.

16. Common Errors & Best Practices

Common Errors

ProblemCauseSolution
Keyspace explodes / runtime unrealistic?a on too many positionsRestrict pattern: ?u?l?l?l?l?d?d?d?d instead of ?a×9. Always check --keyspace first.
Shorter passwords not foundMask has fixed lengthUse --increment with --increment-min and --increment-max.
Custom charset ?1 causes error-1 missing in the command or in the .hcmask lineDefine charset before the mask: -1 ?l?d or integrate into the .hcmask line.
Question mark interpreted as placeholder? introduces a placeholderWrite a literal question mark as ??.
Comma in .hcmask disrupts parsingComma is the delimiter between charset and maskEscape comma with \, when it is part of the charset.
Rules produce unexpected candidatesMultiple rule files multiply each otherTest with --stdout | head first; check rule files individually.
Wrong hash mode-m does not match the hash formatUse Hashcat --example-hashes; compare format with example hash. In GovCracker: automatic hash detection.
Umlauts / non-ASCII do not workEncoding mismatch between wordlist and HashcatSet --encoding, use .hcchr file, or use --hex-charset with hex-encoded characters.
Memory rule behaves unexpectedlyMemory initialization misunderstoodMemory is pre-loaded with the original word; call M explicitly to save an intermediate state. Debug with --stdout.
GPU thermally throttled / cracking stopsTemperature too high, insufficient coolingSet --gpu-temp-abort; improve case cooling; in cluster operation use GovCluster agent on dedicated machines.

Recommended Workflow

  1. 1
    Identify hashes correctly: Always determine the correct -m mode first. In GovCracker the automatic hash detection handles this step. Wrong mode = no hits, even if the password is in the wordlist.
  2. 2
    Build a project-specific wordlist: Collect names, locations, company terms, known passwords from context. A single specific word can be decisive.
  3. 3
    Start with small rule sets: Begin with best64.rule, then expand if needed. Don't start immediately with dive.rule – it costs enormous time.
  4. 4
    Hybrid before brute-force: Wordlist + ?d?d?d?d or + ?d?d?d?d?s covers the majority of real passwords and is much faster than blind brute-force.
  5. 5
    Keep masks realistic: Derive patterns from context (organization's password policies, known password frequencies). Check keyspace with --keyspace in advance.
  6. 6
    Validate candidates in advance: Always test every new rule or mask with --stdout | head before investing GPU time.
  7. 7
    Save sessions with --session: Always start long attacks with a session name. Resume with --restore after interruption.
  8. 8
    Document results: Log all hits and successful rules with --outfile and --debug-file. In GovCracker results are saved automatically and can be exported.
  9. 9
    Stay within legal boundaries: Only attack lawfully seized evidence or authorized systems. Document Hashcat actions and record them in the report.
GovCracker integration: All techniques described here are directly configurable via the GovCracker interface – without manual command lines. The Automatic Attack combines personal wordlist creation, rule application and adaptive mask generation in a guided workflow.
Back to top