GovCracker Masks Rules Brain Nur für autorisierte Nutzung

Rules & Masks
GovCracker Praxis-Referenz

Vollständige Referenz zu regelbasiertem Angriff, Mask-Angriff, Custom Charsets, .hcmask-Dateien, sämtlichen Rule-Funktionen, Reject-Regeln, Memory-Operationen, Hashcat Brain und bewährten forensischen Einsatzmustern – direkt nutzbar über die GovCracker-Oberfläche.

GovCracker nutzt eine modifizierte Hashcat-Engine: Alle auf dieser Seite beschriebenen Parameter, Masks, Rules und Brain-Optionen stehen in GovCracker über dedizierte Eingabefelder, Dropdowns und Dateiauswahlen zur Verfügung – ohne Kommandozeile. Die zugrunde liegenden Hashcat-Befehle werden intern von GovCracker zusammengestellt und ausgeführt. Kenntnisse der Hashcat-Syntax helfen dabei, die Optionen in GovCracker optimal einzusetzen.
Rechtlicher Hinweis: GovCracker und die nachfolgenden Techniken dürfen ausschließlich für autorisierte Passwort-Wiederherstellung, IT-Forensik im behördlichen Kontext, interne Sicherheitsaudits mit schriftlicher Genehmigung sowie Schulungszwecke auf eigenen Systemen genutzt werden. Jede unerlaubte Nutzung ist strafbar.

1. Grundkonzepte: Rules, Masks & Hybrid

GovCracker unterstützt alle Hashcat-Angriffsmodi über eine geführte Oberfläche ohne Kommandozeile. Die drei zentralen Angriffsprinzipien unterscheiden sich stark in Einsatzgebiet, Keyspace und Laufzeit – die richtige Wahl entscheidet über Erfolg oder Misserfolg.

Rule-Based Attack (-a 0)

Wendet Transformationsregeln auf eine Wordlist an. Aus sommer wird z. B. Sommer2024!. Ideal wenn eine gute Ausgangswortliste vorhanden ist (bekannte Passwörter, Firmenname, Personendaten).

In GovCracker: Angriffsmodus „Wordlist" → Rule-Datei(en) per Dateiauswahl laden.

Mask Attack (-a 3)

Generiert Kandidaten rein positionsbasiert. Jede Position hat einen Zeichensatz. Kein Wörterbuch nötig. Ideal für bekannte Muster (Vorname + Jahreszahl + Sonderzeichen).

In GovCracker: Angriffsmodus „Masken-Angriff" → Mask-Feld, Custom Charsets, Increment-Optionen und Markov-Toggle direkt konfigurierbar.

Hybrid-Angriff (-a 6 / -a 7)

Kombiniert Wordlist mit einer Mask. Modus -a 6: Wort vorne, Mask hinten. Modus -a 7: Mask vorne, Wort hinten. Sehr effektiv für Muster wie sommer2024!.

In GovCracker: Angriffsmodus „Hybrid-Angriff" mit Richtungsauswahl und Mask-Eingabefeld.

Weitere Angriffsmodi

Kombinator-Angriff (-a 1)

Verknüpft je ein Wort aus zwei Wortlisten zu einem Kandidaten. Aus police und 2024 wird police2024. Optionale Inline-Rules mit -j/-k für beide Seiten. In GovCracker über den Kombinator-Modus verfügbar.

Reiner Wordlist-Angriff (-a 0)

Wörterbuch-Angriff ohne Rules – schnellste Methode, trifft direkt bekannte oder geleakte Passwörter. Immer als erster Schritt empfohlen. In GovCracker: Wordlist-Modus ohne Rule-Datei.

Empfohlene Angriffs-Reihenfolge

  1. Wordlist (rockyou, projektspezifisch)
  2. Wordlist + best64.rule
  3. Wordlist + rockyou-30000.rule
  4. Hybrid: Wordlist + ?d?d?d?d
  5. Mask: typische Muster / .hcmask
  6. Brute-Force (nur kurze Längen)

2. Masks & Built-in Charsets

Eine Mask ist eine Zeichenschablone. Jeder Platzhalter legt fest, welche Zeichen an der jeweiligen Position ausprobiert werden. Feste Zeichen können direkt eingebettet werden. Die Länge der Mask bestimmt die Kandidatenlänge (bei deaktiviertem Increment).

Built-in Charsets

PlatzhalterNameEnthaltene ZeichenAnzahlTypischer Einsatz
?lLowercaseabcdefghijklmnopqrstuvwxyz26Namen, normale Wörter
?uUppercaseABCDEFGHIJKLMNOPQRSTUVWXYZ26Erster Buchstabe, Abkürzungen
?dDigits012345678910Ziffern, PIN, Jahreszahlen
?hHex lowercase0123456789abcdef16MD5-ähnliche Passwörter, Hashes als PW
?HHex uppercase0123456789ABCDEF16Wie ?h, aber Großbuchstaben
?sSpecial !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~33Sonderzeichen, Passwortrichtlinien
?aAll printable?l + ?u + ?d + ?s95Vollständige Brute-Force (langsam!)
?bAll bytes0x000xff256Binär-Kontexte, Encoding-Probleme
??Literal ?Das Zeichen ? selbst1Wenn ? im Passwort vorkommt

Mask-Beispiele mit festen Zeichen

Feste Zeichen werden einfach direkt in die Mask geschrieben – nur Platzhalter beginnen mit ?.

MusterMaskErläuterungBeispiele
Vorname + 4 Ziffern?u?l?l?l?l?d?d?d?dGroßbuchstabe, vier Kleinbuchstaben, vier ZiffernMaria1985, Klaus2019
Firmenname fest + ZahlFirma?d?d?d?d!Festes Präfix, vier Ziffern, festes !Firma2024!
PIN 4-stellig?d?d?d?dAlle 10.000 Kombinationen00009999
PIN 6-stellig?d?d?d?d?d?dAlle 1.000.000 Kombinationen000000999999
Wort + Sonderzeichen?l?l?l?l?l?l?sSechs Kleinbuchstaben + Sonderzeichensommer!, winter?
Kennzeichen-ähnlich?u?u?u?d?d?d?dDrei Großbuchstaben, vier ZiffernABC1234
Datum?d?d.?d?d.?d?d?d?dEuropäisches Datumsformat01.01.1985
Komplex 8 Zeichen?u?l?l?l?d?d?d?sTypische PasswortrichtlinieHaus1985!

3. Custom Charsets (-1 bis -4)

Hashcat erlaubt bis zu vier benutzerdefinierte Zeichensätze. Sie werden mit -1-4 (bzw. --custom-charset1 bis --custom-charset4) definiert und in der Mask als ?1?4 verwendet. Built-in Charsets können kombiniert werden.

ParameterLangformPlatzhalterCharset-DefinitionBeispiel
-1 CS--custom-charset1=CS?1Zeichenkette oder kombinierte Built-ins-1 ?l?d ?1?1?1?1?1?1
-2 CS--custom-charset2=CS?2Zeichenkette oder kombinierte Built-ins-2 ABCDEF ?2?2?d?d
-3 CS--custom-charset3=CS?3Zeichenkette oder kombinierte Built-ins-3 !?_$ ?l?l?3
-4 CS--custom-charset4=CS?4Zeichenkette oder kombinierte Built-ins-4 äöüß ?l?l?4?4
Tipp: Built-in Charsets können in der Charset-Definition kombiniert werden: -1 ?l?d definiert alle Kleinbuchstaben und Ziffern. Eine direkte Zeichenkette wie -1 aeiou ist ebenfalls möglich und eignet sich gut für vokalbasierte Analysen.
In GovCracker – Custom Charsets: Im Masken-Angriff-Dialog stehen vier dedizierte Felder für Custom Charset 1–4 zur Verfügung. Die Charset-Definition kann direkt eingegeben werden (z. B. ?l?d oder !@#$). GovCracker übernimmt die korrekte Übergabe als -1-4-Parameter automatisch an die Engine.

4. Mask-Optionen & Increment-Modus

Neben der Mask selbst steuern verschiedene Optionen das Verhalten des Mask-Angriffs – insbesondere den Increment-Modus für variable Passwortlängen.

OptionBedeutungStandardwertBeispiel
-a 3Aktiviert den Mask-Angriff / Brute-Force-Modushashcat -a 3 -m 1000 hashes.txt ?l?l?l?d
--incrementProbiert alle Längen von 1 (oder --increment-min) bis zur Mask-Längeaus?l?l?l?l?l?l --increment → probiert 1–6 Zeichen
--increment-min=NStartlänge für Increment-Modus1--increment-min=6
--increment-max=NMaximallänge; darf Mask-Länge nicht überschreitenMask-Länge--increment-max=10
--hex-charsetInterpretiert Custom Charsets als Hex-Bytesaus--hex-charset -1 c3a4c3b6
-s NSkip: überspringt die ersten N Kandidaten (für Checkpointing)0-s 5000000000
-l NLimit: stoppt nach N Kandidatenkein Limit-l 1000000000
--keyspaceGibt den Keyspace (Anzahl Kandidaten) für die Mask aus, ohne zu crackenhashcat -a 3 ?u?l?l?l?d?d?d?d --keyspace
In GovCracker – Mask-Optionen: Im Masken-Angriff-Dialog sind Increment-Modus, Increment Min und Increment Max als separate Felder vorhanden. Für .hcmask-Dateien steht eine Dateiauswahl bereit – GovCracker verarbeitet die Zeilen sequenziell und zeigt den Fortschritt je Mask-Zeile.

5. Hashcat Mask-Dateien: .hcmask

Eine .hcmask-Datei enthält mehrere Masks, optional mit eigenen Custom Charsets pro Zeile. Hashcat arbeitet die Zeilen sequenziell ab. Durch Sortierung nach Wahrscheinlichkeit oder erwarteter Laufzeit kann die Effizienz erheblich gesteigert werden.

Format einer .hcmask-Zeile

[?1,][?2,][?3,][?4,]mask
ElementBedeutungPflicht?
?1,Custom Charset 1 für diese Zeile (überschreibt globales -1)optional
?2,Custom Charset 2 für diese Zeileoptional
?3,Custom Charset 3 für diese Zeileoptional
?4,Custom Charset 4 für diese Zeileoptional
maskDie eigentliche Mask (Pflichtfeld)ja

Vollständiges Beispiel: forensik_de.hcmask

# Kommentarzeilen beginnen mit #
# Zeile 1: Vorname (6 Zeichen) + Jahr → häufigstes Muster
?u?l?l?l?l?l?d?d?d?d
# Zeile 2: Kleinbuchstaben + Ziffer am Ende
?l?l?l?l?l?l?l?d
?l?l?l?l?l?l?d?d
# Zeile 3: Firmenname-Muster
Company?d?d?d?d!
Firma?d?d?d?d!
# Zeile 4: Custom Charset (lower + digit) an jeder Position
?l?d,?1?1?1?1?1?1?1?1
# Zeile 5: mit Sonderzeichen am Ende
?u?l?l?l?l?l?d?d?s
# Zeile 6: PIN-Muster (4–6 Ziffern)
?d?d?d?d
?d?d?d?d?d?d
# Zeile 7: Datum-Muster
?d?d?d?d?d?d?d?d
hashcat -m 1000 -a 3 hashes.txt forensik_de.hcmask
Escaping in .hcmask-Dateien:
  • Ein literales ?-Zeichen: ??
  • Ein Komma innerhalb eines Charset-Felds: \,
  • Kommentare: Zeilen, die mit # beginnen

6. Keyspace & Laufzeitabschätzung

Der Keyspace ist die Gesamtzahl der Kandidaten einer Mask. Er ergibt sich als Produkt der Zeichensatzgrößen aller Positionen.

$$\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

Laufzeitformel

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

Beispiel: ?u?l?l?l?d?d?d?d mit NTLM (~100 GH/s auf RTX 4090): ca. 0,12 Sekunden. Mit MD5-crypt (-m 500, ~1 MH/s): über 130 Stunden.

In GovCracker: Der Mask-Angriff zeigt in der Fortschrittsanzeige automatisch den geschätzten Keyspace und die verbleibende Zeit. Nutzen Sie die --keyspace-Option im integrierten Terminal zur Vorabprüfung.

7. Markov-Ketten & intelligente Masks

GovCracker unterstützt Markov-Ketten-basierte Zeichenfolgen-Wahrscheinlichkeiten über .hcstat2-Dateien. Damit werden wahrscheinlichere Zeichenkombinationen zuerst ausprobiert – ideal für größere Keyspaces. Im Masken-Angriff-Dialog ist die Markov-Funktion per Toggle aktivierbar; der Threshold und eine eigene .hcstat2-Datei können dort direkt konfiguriert werden.

OptionBedeutungBeispiel
--markov-hcstat2=FILEMarkov-Statistikdatei verwenden--markov-hcstat2=hashcat.hcstat2
--markov-threshold=NNur Übergänge mit Wahrscheinlichkeit ≥ N verwenden (0 = alle)--markov-threshold=50
--markov-classicKlassischer Markov-Modus (Hashcat v5-Kompatibilität)
--markov-disableMarkov deaktivieren (reiner Brute-Force)
Wann Markov sinnvoll ist: Bei langen Masks (> 8 Zeichen) und realistischen, menschlich gewählten Passwörtern. Bei kurzen Masks oder systematischen Mustern (PIN, Datum) eher deaktivieren. In GovCracker ist der Markov-Toggle im Masken-Angriff-Dialog direkt verfügbar.

8. Rules-Grundlagen

Rule-Sonderoptionen

OptionBedeutungBeispiel
-r file.ruleRule-Datei laden (bis zu 4× kombinierbar)-r rules/best64.rule
-j RULESingle-Rule links (wird vor der -r-Rule angewendet)-j c
-k RULESingle-Rule rechts (wird nach der -r-Rule angewendet)-k $!
--stdoutKandidaten ausgeben ohne zu crackenhashcat words.txt -r test.rule --stdout
--debug-mode=1Protokolliert, welche Rule jeden gefundenen Hash geknackt hat--debug-mode=1 --debug-file=out.rule
--debug-mode=2Wie 1, aber auch Originalwort protokollieren--debug-mode=2
--debug-mode=3Wie 2, aber zusätzlich transformiertes Wort--debug-mode=3
--debug-mode=4Wie 3, aber zusätzlich den Hash--debug-mode=4
--debug-file=FILEAusgabedatei für Debug-Informationen--debug-file=matched.txt
--generate-rules=NN zufällige Rules erzeugen und anwenden--generate-rules=10000
--generate-rules-func-min=NMinimale Anzahl Funktionen pro Zufallsregel--generate-rules-func-min=1
--generate-rules-func-max=NMaximale Anzahl Funktionen pro Zufallsregel--generate-rules-func-max=5
--generate-rules-func-sel=LISTEErlaubte Funktionen für Zufallsregeln--generate-rules-func-sel=lcuoTt
--generate-rules-seed=NReproduzierbarer Zufalls-Seed--generate-rules-seed=42
Positionsparameter N: Positionen beginnen bei 0. Nach 9 gilt: A = 10, B = 11, ..., Z = 35. Position * steht in manchen Funktionen für das letzte Zeichen.

9. Alle Rule-Funktionen (Standardfunktionen)

Alle folgenden Funktionen sind mit John the Ripper kompatibel. Das Testwort für die Spalte „Ausgabe" ist p@ssW0rd (8 Zeichen).

Case & Reihenfolge

NameSyntaxBeschreibungAusgabe (p@ssW0rd)
Nothing (Passthrough):Wort unverändert durchreichenp@ssW0rd
Lowercase alllAlles klein schreibenp@ssw0rd
Uppercase alluAlles groß schreibenP@SSW0RD
CapitalizecErstes Zeichen groß, Rest kleinP@ssw0rd
Invert CapitalizeCErstes Zeichen klein, Rest großp@SSW0RD
Toggle Case (alle)tGroß/Klein aller Buchstaben umkehrenP@SSw0RD
Toggle @ Position NTNNur Position N umkehrenT3p@sSW0rd

Rotation & Duplikation

NameSyntaxBeschreibungAusgabe (p@ssW0rd)
ReverserWort umkehrendr0Wss@p
DuplicatedWort verdoppelnp@ssW0rdp@ssW0rd
Duplicate N timespNWort N-mal zusätzlich anhängenp2 → 3× das Wort
ReflectfWort + umgekehrtes Wortp@ssW0rddr0Wss@p
Rotate Left{Erstes Zeichen nach hinten rotieren@ssW0rdp
Rotate Right}Letztes Zeichen nach vorne rotierendp@ssW0r
Duplicate first N charszNErstes Zeichen N-mal vorne duplizierenz2ppp@ssW0rd
Duplicate last N charsZNLetztes Zeichen N-mal hinten duplizierenZ2p@ssW0rddd
Duplicate all charsqJedes Zeichen duplizierenpp@@ssssWW00rrdd

Anfügen & Einfügen

NameSyntaxBeschreibungAusgabe (p@ssW0rd)
Append Char$XZeichen X hinten anhängen$1$!p@ssW0rd1!
Prepend Char^XZeichen X vorne einfügen^2^112p@ssW0rd
Insert @ NiNXZeichen X an Position N einfügeni4!p@ss!W0rd

Löschen & Extrahieren

NameSyntaxBeschreibungAusgabe (p@ssW0rd)
Truncate Left[Erstes Zeichen löschen@ssW0rd
Truncate Right]Letztes Zeichen löschenp@ssW0r
Delete @ NDNZeichen an Position N löschenD3p@sW0rd
Extract RangexNMM Zeichen ab Position N extrahierenx04p@ss
Omit RangeONMM Zeichen ab Position N löschenO12psW0rd
Truncate @ N'NAlles ab Position N abschneiden'6p@ssW0

Ersetzen & Überschreiben

NameSyntaxBeschreibungAusgabe (p@ssW0rd)
Overwrite @ NoNXZeichen an Position N mit X überschreibeno3$p@s$W0rd
Replace all X with YsXYAlle Vorkommen von X durch Y ersetzenss$p@$$W0rd
Purge X@XAlle Vorkommen von X entfernen@sp@W0rd

10. Hashcat-spezifische Funktionen

Diese Funktionen sind Hashcat-spezifisch und nicht mit John the Ripper kompatibel. Das Testwort für die Spalte „Ausgabe" ist p@ssW0rd.

Swap & Shift

NameSyntaxBeschreibungAusgabe (p@ssW0rd)
Swap FrontkErste zwei Zeichen tauschen@pssW0rd
Swap BackKLetzte zwei Zeichen tauschenp@ssW0dr
Swap @ N,M*NMZeichen an Position N und M tauschen*34p@sWs0rd
Bitwise Shift LeftLNASCII-Wert an Position N × 2 (bitweise links)L2 → Zeichenwert verdoppelt
Bitwise Shift RightRNASCII-Wert an Position N ÷ 2 (bitweise rechts)R2 → Zeichenwert halbiert
ASCII Increment+NASCII-Wert an Position N um 1 erhöhen+2p@tsW0rd (s→t)
ASCII Decrement-NASCII-Wert an Position N um 1 senken-1p?ssW0rd (@→?)

Block-Duplikation & Title-Case

NameSyntaxBeschreibungAusgabe (hello world)
Replace N with N+1.NZeichen an N durch Zeichen an N+1 ersetzen.1p@ssW0rdpsssW0rd
Replace N with N–1,NZeichen an N durch Zeichen an N–1 ersetzen,1ppssW0rd
Duplicate Block FrontyNErste N Zeichen vorne dupliziereny3p@sp@ssW0rd
Duplicate Block BackYNLetzte N Zeichen hinten duplizierenY3p@ssW0rdOrd
Title CaseEAlles klein, nach Leerzeichen GroßbuchstabeHello World
Title mit Separator XeXWie E, aber nach Separator Xe-Hello-World
Toggle nach N-tem Sep.3NXCase des Zeichens nach dem N-ten Separator X toggeln30-Hello-worldHello-World

11. Memory-Operationen (M, 4, 6, X)

Memory-Operationen ermöglichen das temporäre Speichern und Wiederverwenden von Zwischenzuständen innerhalb einer Rule-Zeile. Das Konzept ist mächtig, aber fehleranfällig – immer mit --stdout testen.

NameSyntaxBeschreibungBeispiel & Ausgabe
MemorizeMSpeichert den aktuellen Wortzustand im Memory-Register. Memory wird am Anfang der Rule-Ausführung gesetzt.M → aktueller Stand gespeichert
Append Memory4Hängt den gespeicherten Memory-Inhalt ans aktuelle Wort anuM l4p@ssW0rd + uppercase gespeichert, dann lowercase + Memory: p@ssw0rdP@SSW0RD
Prepend Memory6Stellt den gespeicherten Memory-Inhalt voranrMr6 → reverse, speichern, reverse zurück, Memory vorne: dr0Wss@pp@ssW0rd
Extract MemoryXNMIFügt M Zeichen ab Position N aus dem Memory an Position I des aktuellen Worts einlMX428 → komplex, Memory-basiert

Memory-Anwendungsbeispiele

# Originalwort + Großbuchstabenversion
# sommer → sommerSOMMER
M u4

# Originalwort + Rückwärts-Version
# sommer → sommerremmos
M r4

# Wort "gespiegelt" + Leerzeichen dazwischen
# hello → hello olleh
M $  r4

# Duplicate unterdrücken (Q-Reject nach Memory-Vergleich)
# Verwirft wenn Wort == Memory (also wenn Rule nichts geändert hat)
r M r Q
Memory-Initialisierung: Das Memory wird zu Beginn jeder Rule-Ausführung mit dem unveränderten Originalwort initialisiert. Erst nach einem expliziten M-Aufruf wird der dann aktuelle Zustand gespeichert.

12. Reject-Regeln

Reject-Regeln verwerfen Kandidaten anhand von Bedingungen. In Rule-Dateien können sie genutzt werden, um unerwünschte Kandidaten früh auszuschließen. Bei -j/-k (Single-Rules) sind Rejects besonders effektiv, da sie den Keyspace reduzieren.

NameSyntaxBedingung (wird verworfen, wenn…)BeispielTypische Verwendung
Reject less<NWortlänge ≥ N (verwirft lange Wörter)<8Nur kurze Passwörter behalten
Reject greater>NWortlänge ≤ N (verwirft kurze Wörter)>5Nur Wörter mit mind. 6 Zeichen
Reject equal length_NLänge ≠ N_8Nur exakt 8-stellige Kandidaten
Reject contains!XZeichen X ist enthalten!zKein z erlaubt
Reject not contains/XZeichen X ist nicht enthalten/1Muss eine 1 enthalten
Reject equal first(XBeginnt nicht mit X(pNur Wörter die mit p beginnen
Reject equal last)XEndet nicht mit X)dNur Wörter die auf d enden
Reject equal @ N=NXZeichen an Position N ist nicht X=0APosition 0 muss A sein
Reject contains count%NXX kommt weniger als N-mal vor%2aMindestens 2× 'a' erforderlich
Reject memory matchQAktuelles Wort == Memory-InhaltrMrQPalindrome / unveränderte Wörter verwerfen

13. Hex-Bytes in Rules

Nicht druckbare Zeichen oder Sonderzeichen können in Rules als Hex-Escape-Sequenz \xNN angegeben werden. Das ist nützlich für Encoding-spezifische Passwörter, Null-Bytes oder Zeichen außerhalb des ASCII-Bereichs.

# Buchstaben 'd' (0x64) anhängen
hashcat words.txt -j '$\x64' --stdout
# penguin → penguind

# Null-Byte anhängen (forensischer Sonderfall)
$\x00

# Umlaut ä (UTF-8: c3 a4) anhängen
$\xc3$\xa4

# Replace: 'a' durch ä (UTF-8)
sa\xc3\xa4
Encoding-Hinweis: UTF-8 Multi-Byte-Zeichen (wie Umlaute) belegen zwei oder mehr Bytes. ä = \xc3\xa4. Die Zeichensatz-Datei (.hcchr) kann genutzt werden, um vollständige Zeichensätze für bestimmte Codepages zu definieren. Für Windows-Codepage-851: --encoding=cp1252.

14. Bekannte Rule-Sets & Empfehlungen

Hashcat liefert mehrere hochwertige Rule-Dateien mit. Die Wahl hängt vom Ziel-Szenario ab.

Rule-DateiRegelnEinsatzStärke
best64.rule64Erster Schritt, schnell, deckt häufigste MusterEmpfohlen
rockyou-30000.rule30.000Starke Abdeckung typischer PasswortmusterStark
dive.rule99.950Maximale Transformation; langsam aber umfassendSehr umfangreich
T0XlC.rule8.478Leet-Speak, Sonderzeichen-SubstitutionenSpezialisiert
InsidePro-HashManager.rule17.238Hashing-Patterns, Nummern, AnhängeUmfangreich
unix-ninja-leetspeak.rule2.306Leet-Speak-SubstitutionenSpezialisiert
hob064.rule64Ähnlich best64, alternative AuswahlSchnell
OneRuleToRuleThemAll.rule52.000+Community-basiert, breite AbdeckungSehr umfangreich

Die wichtigsten Regeln aus best64.rule

# Unverändert
:
# Lowercase
l
# Capitalize
c
# Rückwärts
r
# Ziffer 1 anhängen
$1
# Ausrufezeichen
$!
# Kapitalisiert + 1
c$1
# Jahr 2022
$2$0$2$2
# Doppelt
d
# Letztes Zeichen löschen
]
# Erstes Zeichen löschen
[
# Alle s durch $ ersetzen
ss$
# Alle o durch 0 ersetzen
so0
# Optimiert mit hohem Workload + GPU-Schutz hashcat -m 1000 -a 0 -O -w 3 --gpu-temp-abort=90 \ --session=projekt_2024 \ hashes.txt rockyou.txt -r rules/best64.rule # Unterbrochene Sitzung fortsetzen hashcat --session=projekt_2024 --restore

15. Hashcat Brain – intelligente Deduplizierung

Hashcat Brain ist ein optionales Server-Client-System zur Deduplizierung von Kandidaten. Ein Brain-Server speichert, welche Kandidaten bereits ausprobiert wurden – verbundene Clients überspringen diese automatisch. Das verhindert doppelte Arbeit bei mehreren parallelen Sitzungen mit gleichen Wordlists oder Rules.

Komponenten

KomponenteRolleBeispiel-Befehl
Brain-ServerZentraler Deduplizierungs-Dienst; merkt sich alle getesteten Kandidaten in einer schnellen In-Memory-Strukturhashcat --brain-server --brain-server-timer=5
Brain-ClientCracking-Instanz (z. B. GovCracker), die den Server vor jedem Kandidaten-Block abfragt und doppelte Blöcke überspringthashcat ... --brain-client --brain-client-features=3

Brain-Feature-Level

WertBedeutungEmpfehlung
1Deduplizierung nach Hash-Wert des Kandidaten (Inhalt)Basis-Deduplizierung
2Deduplizierung nach Angriffs-Position (Skip/Limit-basiert, für verteilte Angriffe)Cluster-Nutzung
3Beides kombiniert (Feature 1 + 2)Empfohlen

Wann Brain sinnvoll ist – und wann nicht

Die Entscheidung hängt vollständig von der GPU-Hashrate des Ziel-Algorithmus ab. Brain ist nur dann nützlich, wenn die Cracking-Rate so niedrig ist, dass der Netzwerk-Overhead des Brain-Servers nicht zum Flaschenhals wird.

NTLM – Brain ist kontraproduktiv

NTLM erreicht auf einer RTX 4090 rund 300 Milliarden Hashes pro Sekunde. Die GPU testet Kandidaten so schnell, dass jede Netzwerkkommunikation mit dem Brain-Server sofort zum Engpass wird. Die GPU liegt dabei fast vollständig brach und wartet auf den Server.

GPU-Hashrate: ~300 GH/s
Brain-Durchsatz (realistisch): ~200–500 MH/s
Effektive Leistung mit Brain: < 0,2 % der GPU-Kapazität
→ Brain bei NTLM niemals aktivieren.

VeraCrypt – Brain ist ideal

VeraCrypt mit AES-Kaskade (-m 13711) erreicht auf einer RTX 4090 nur rund 500–1.000 Hashes pro Sekunde. Der Brain-Server hat mehr als genug Kapazität, jeden Kandidaten zu deduplizieren, ohne die GPU auszubremsen.

Laufen mehrere GovCracker-Instanzen (z. B. GovCluster) mit derselben Wordlist, verhindert Brain, dass der gleiche Kandidat mehrfach gegen den teuren Hash geprüft wird.

GPU-Hashrate: ~500–1.000 H/s
Brain-Overhead: vernachlässigbar
Nutzen bei 3 Instanzen + gleiche Wordlist: bis zu 3× schnellere Gesamtabdeckung
→ Brain bei VeraCrypt, KeePass, bcrypt unbedingt nutzen.

Brain-Faustregel nach Algorithmus

AlgorithmusHashrate (RTX 4090)Brain?Begründung
NTLM (-m 1000)~300 GH/sNeinGPU übertrifft Brain-Kapazität um Faktor ~600
MD5 (-m 0)~160 GH/sNeinGleicher Grund wie NTLM
SHA-256 (-m 1400)~22 GH/sNeinImmer noch zu schnell für Brain
WPA2 (-m 22000)~2 MH/sBedingtNur bei vielen parallelen Clients sinnvoll
bcrypt cost 5 (-m 3200)~200 kH/sJaBrain-Overhead gering, Deduplizierung nützlich
VeraCrypt AES (-m 13711)~500 H/sJaGPU so langsam, Brain verursacht keine Verluste
KeePass AES (-m 13400)~1 kH/sJaGleicher Grund wie VeraCrypt
BitLocker (-m 22100)~500 kH/sJaSinnvoll bei mehreren parallelen Sitzungen
In GovCracker: Der Brain-Bereich im Angriffs-Dialog enthält Toggle (Brain aktivieren/deaktivieren), Server-IP-Feld, Port und Passwort. Feature-Level 3 ist vorausgewählt. Wird GovCluster genutzt, kann der Brain-Server zentral auf dem Cluster-Master laufen und alle Agenten automatisch verbinden – ohne manuelle Konfiguration.
Sicherheitshinweis: Den Brain-Server ausschließlich im lokalen Netz oder VPN betreiben. Das Brain-Passwort schützt den Zugang – ohne Passwort ist der Server für jeden erreichbaren Host offen. Nie öffentlich exponieren.

16. Typische Fehler & Best Practices

Häufige Fehler

ProblemUrsacheLösung
Keyspace explodiert / Laufzeit unrealistisch?a auf zu vielen PositionenMuster einschränken: ?u?l?l?l?l?d?d?d?d statt ?a×9. Immer erst --keyspace prüfen.
Kürzere Passwörter werden nicht gefundenMask ist fixe Länge--increment mit --increment-min und --increment-max nutzen.
Custom Charset ?1 führt zu Fehler-1 fehlt im Befehl oder in der .hcmask-ZeileCharset vor der Mask definieren: -1 ?l?d oder in .hcmask-Zeile integrieren.
Fragezeichen wird als Platzhalter interpretiert? leitet Platzhalter einLiteral-Fragezeichen als ?? schreiben.
Komma in .hcmask stört ParsingKomma ist Trennzeichen zwischen Charset und MaskKomma mit \, escapen wenn es Teil des Charsets ist.
Rules erzeugen unerwartete KandidatenMehrere Rule-Files multiplizieren sichErst mit --stdout | head testen; Rule-Dateien einzeln prüfen.
Falscher Hash-Modus-m stimmt nicht mit Hashformat übereinHashcat --example-hashes nutzen; Format mit Beispielhash vergleichen. In GovCracker: automatische Hash-Erkennung.
Umlaute / Nicht-ASCII funktionieren nichtEncoding-Problem zwischen Wordlist und Hashcat--encoding setzen, .hcchr-Datei nutzen, oder --hex-charset mit Hex-kodierten Zeichen verwenden.
Memory-Rule verhält sich unerwartetMemory-Initialisierung falsch verstandenMemory wird mit Originalwort vorbelegt; explizit M aufrufen um Zwischenstand zu speichern. Mit --stdout debuggen.
GPU thermisch gedrosselt / Cracking stopptTemperatur zu hoch, keine Kühlung--gpu-temp-abort setzen; Gehäuse-Kühlung verbessern; bei Clusterbetrieb GovCluster-Agent auf dedizierten Maschinen nutzen.

Empfohlene Arbeitsweise

  1. 1
    Hashes korrekt identifizieren: Immer zuerst den richtigen -m-Modus bestimmen. In GovCracker übernimmt die automatische Hash-Erkennung diesen Schritt. Falscher Modus = keine Treffer, auch wenn das Passwort in der Wordlist ist.
  2. 2
    Projektspezifische Wordlist erstellen: Namen, Orte, Firmenbegriffe, bekannte Passwörter aus dem Kontext sammeln. Ein einziges spezifisches Wort kann entscheidend sein.
  3. 3
    Rules klein starten: Erst best64.rule, dann bei Bedarf umfangreichere Sets. Nicht sofort mit dive.rule beginnen – das kostet enorm Zeit.
  4. 4
    Hybrid vor Brute-Force: Wordlist + ?d?d?d?d oder + ?d?d?d?d?s deckt einen Großteil realer Passwörter ab und ist deutlich schneller als blinder Brute-Force.
  5. 5
    Masks realistisch halten: Muster aus dem Kontext ableiten (Passwortrichtlinien der Organisation, bekannte Passwort-Häufigkeiten). Keyspace vorab mit --keyspace prüfen.
  6. 6
    Kandidaten vorab validieren: Jede neue Rule oder Mask immer erst mit --stdout | head prüfen bevor GPU-Zeit investiert wird.
  7. 7
    Sitzungen mit --session sichern: Lange Angriffe immer mit einem Sitzungsnamen starten. Bei Unterbrechung mit --restore weitermachen.
  8. 8
    Ergebnisse dokumentieren: Mit --outfile und --debug-file alle Treffer und erfolgreiche Rules protokollieren. In GovCracker werden Ergebnisse automatisch gespeichert und können exportiert werden.
  9. 9
    Rechtlichen Rahmen einhalten: Angriffe nur auf rechtmäßig sichergestellte Beweismittel oder freigegebene Systeme. Hashcat-Aktionen dokumentieren und im Bericht festhalten.
GovCracker-Integration: Alle hier beschriebenen Techniken sind direkt über die GovCracker-Benutzeroberfläche konfigurierbar – ohne manuelle Kommandozeilen. Der Automatik-Angriff kombiniert personenbezogene Wordlist-Erstellung, Rule-Anwendung und adaptive Mask-Generierung in einem geführten Workflow.
Zurück nach oben