Crunch

De Linuxmemo.

https://www.0x0ff.info/2013/crunch-generateur-passwords/

Générateur de dictionnaire (avec "modèles")

L’ensemble des caractères qui seront utilisés pour générer tous les mots possibles s’appelle le "charset".

crunch <min> <max> [[charset | -f /path/to/charset.lst nom_du_charset] |-t patern | [-s startblock] | -d 2@ | -o file.txt] | -p texte ]
crunch <min-len> <max-len> [charset OR -f /path/to/charset.lst charset-name] [-o wordlist.txt] [-t [FIXED]@@@@] [-s startblock] [-c number]


crunch <caractère-mini> <caractère-max> [["jeu de caractères" | -f /path/to/charset.lst nom_du_charset] |-t patern | [-s startblock] | -d 2@ | -o file.txt] | -p "jeu de caractères" OR -p word1 word2]


Sommaire

[modifier] Options

  • config
-f /path/to/charset.lst charset-name
-f /usr/share/crunch/charset.lst hex-lower
  • disagne
-i               # inverse la sortie (baa au lieu de aab)
  • modèles (pattern)
-t @,%^          # exemple crunch 9 9 abc -t @@god@@@@
         @ will insert lower case characters
         , will insert upper case characters
         % will insert numbers
         ^ will insert symbols
-l               # LITERALS (littérale) seulement avec -t conserve un symbole comme un caractère littéral
                 # exemple: crunch 7 7 -t p@ss,%^ -l a@aaaaa
  • anagram
crunch 0 0 -p charset          # anagram de lettres
ou
-P word1 word2 ...  #anagram de mots
#exemple: crunch 4 5 -p abc
#exemple: crunch 4 5 -p dog cat bird
#Les nombres ne sont pas traités mais sont nécessaires.
  • limitation
-d 2@            # exemple limitation a 2 caractères identique consécutif (aab pas aaa)
-s startblock    # commence a génération qu'à "startblock string"
-e string        # "END" string déclenche l’arrêt de crunch 
  • input
-q filename.txt
  • output
-o wordlist.txt     # fichier de sortie
-b number[type]     # taille en  kb, mb, gb, kib, mib, and gib
-c number           # nombre de ligne
-o wordlist.txt -r  # RESUME seulement avec -o, reprends une session où elle a été interrompue
-z gzip, bzip2, lzma, and 7z # compression du ou des fichiers de sortie
                             # crunch 1 4 -o START -c 6000 -z bzip2
  • affichage
-u                  # -u doit être la dernière options et désactive l'impression du pourcentage

[modifier] Charset prédéfinies dans "charset.lst"

  • pour les "espace", il faut les échapper avec un \ ou utiliser les ""
crunch 1 6 abcdefg\ 
crunch 1 6 "abcdefg  "
  • charset "+" (avec avec positionnement)
crunch 3 3 abc + 123 !@# -t @%^
# générera un mot long de 3 caractères avec un caractère comme premier caractère,
#le numéro comme deuxième caractère et un symbole pour le troisième caractère.
#le l'ordre dans lequel vous spécifiez les caractères souhaités avec -t est important.
  • les charset prédéfinis dans le fichier "charset.lst"
   hex-lower [0123456789abcdef]
   hex-upper [0123456789ABCDEF]
   numeric [0123456789]
   numeric-space [0123456789 ]
   symbols14 [!@#$%^&*()-_+=]
   symbols14-space [!@#$%^&*()-_+= ]
   symbols-all [!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/]
   symbols-all-space [!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ]
   ualpha [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
   ualpha-space [ABCDEFGHIJKLMNOPQRSTUVWXYZ ]
   ualpha-numeric [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
   ualpha-numeric-space [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ]
   ualpha-numeric-symbol14 [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=]
   ualpha-numeric-symbol14-space [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ]
   ualpha-numeric-all [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/]
   ualpha-numeric-all-space [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ]
   lalpha [abcdefghijklmnopqrstuvwxyz]
   lalpha-space [abcdefghijklmnopqrstuvwxyz ]
   lalpha-numeric [abcdefghijklmnopqrstuvwxyz0123456789]
   lalpha-numeric-space [abcdefghijklmnopqrstuvwxyz0123456789 ]
   lalpha-numeric-symbol14 [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=]
   lalpha-numeric-symbol14-space [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+= ]
   lalpha-numeric-all [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/]
   lalpha-numeric-all-space [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ]
   mixalpha [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
   mixalpha-space [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ]
   mixalpha-numeric [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
   mixalpha-numeric-space [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ]
   mixalpha-numeric-symbol14 [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=]
   mixalpha-numeric-symbol14-space [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ]
   mixalpha-numeric-all [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/]
   mixalpha-numeric-all-space [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ]

[modifier] les Pattern (-t)

  • Longueur minimum et maximum sont identiques … en effet quand vous spécifier un pattern, les longueurs spécifié doivent correspondre à la longueur de ce pattern.
   @ : pour représenter les caractères minuscules
   , : pour représenter les caractères majuscules
   % : pour représenter les nombres
   ^ : pour représenter les symboles
crunch 6 6 -t pass%%
pass00
pass01
pass02
...
  • Positionnement de groupe de mot:
   @ groupe de mot 1
   , groupe de mot 2
   % groupe de mot 3
   ^ groupe de mot 4

Exemple:

crunch 4 4 test gros un dur -t ^%@,

Le signe plus (+) permet de ne pas préciser le contenu du groupe:

crunch 4 4 test + un dur -t ^%@
  • Intercalés des mots de notre choix:

Les caractères de la chaine suivant l’argument -t qui ne sont pas @,%^, seront considérés comme une place pour les mots que l’on aura listé après l’argument -p (^ : pour représenter les symboles).

crunch 5 5 -t a^a^a -p admin life size

[modifier] Echappement de caractère

Mode passe avec un espace, échappement avec un \ ou encadrement avec " ".

crunch 1 5 abcdefg\ 
crunch 1 5 "abcdefg "

[modifier] Caractère "literal" (-l)

si vous voulez générer des mots de passe contenant l’un de ces symboles @,%^ l’argument –l pour literal vous permet d’ancrer un de ces symboles(les a ne sont que des indicateur de place).

crunch 5 5 -t p@ss% -l a@aaa

[modifier] Anagrammes (-p) ou mots qui ne disposent pas de caractères répétitifs

On liste les anagrammes de l’occurrence suivant -p. Les longueurs min/max doivent être renseignées mais ne sont pas utilisées…

crunch 0 0 -p test

Même chose avec un mélange de mots

crunch 0 0 -p un jour beau

Il est également possible de prédéfinir un pattern où des mots de notre choix seraient intercalés.

crunch 5 5 -t A^£^1 -p www truc info

[modifier] Répétition de caractère (-d)

le nombre de fois maximum qu’un caractère identique peut se suivre.

   @ : pour représenter les caractères minuscules
   , : pour représenter les caractères majuscules
   % : pour représenter les nombres
   ^ : pour représenter les symboles
crunch 3 3 -d 2@
aab
aac
aad
aae
aaf
aag
aah
aai
aaj
...

[modifier] Par ou commencer (-s)

[modifier] Découper les fichiers (-c)

-c nombre_de_lignes (vous devez impérativement employer -o START)

Les unités utilisables avec cette option sont les suivantes : kb, mb, gb, kib, mib, and gib (kb, mb et gb sont basé sur 1000 tandis que kib, mib et gib sont basé sur 1024).

[modifier] Astuces

  • Code a 4 chiffres:

Toutes les possibilités

crunch 4 4 -f /usr/share/crunch/charset.lst numeric | wc
10000   10000   50000

Si on connaît les 4 chiffres par example 0259...

crunch 4 4 0259
256     256    1280
  • Anagram (permutation)
crunch 4 4 -p rouge
  • free
crunch 8 8 -f /usr/share/crunch/charset.lst lalpha-numeric
Outils personnels