762 palabras
4 minutos
Genera diccionarios con Crunch
¿Qué es Crunch?
Crunch es una herramienta para generar listas de palabras o diccionarios para realizar ataques de fuerza bruta.
Primeros pasos
Instalación
sudo apt install crunchDesinstalación
sudo apt remove crunchUbicaciones por defecto
Charset list
/usr/share/crunch/charset.lst
Contenido de Charset list
Puedes añadir tu propio charset custom
custom = [+-*/1abc.]
# charset configuration file for winrtgen v1.2 by Massimiliano Montoro (mao@oxid.it)# compatible with rainbowcrack 1.1 and later by Zhu Shuanglei <shuanglei@hotmail.com>
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!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
########################################################################################## SWEDISH CHAR-SUPPORT # #########################################################################################
########################## Uppercase ##########################ualpha-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ]ualpha-space-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ ]ualpha-numeric-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789]ualpha-numeric-space-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789 ]ualpha-numeric-symbol14-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=]ualpha-numeric-symbol14-space-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+= ]ualpha-numeric-all-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]ualpha-numeric-all-space-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
########################## Lowercase ##########################lalpha-sv = [abcdefghijklmnopqrstuvwxyzåäö]lalpha-space-sv = [abcdefghijklmnopqrstuvwxyzåäö ]lalpha-numeric-sv = [abcdefghijklmnopqrstuvwxyzåäö0123456789]lalpha-numeric-space-sv = [abcdefghijklmnopqrstuvwxyzåäö0123456789 ]lalpha-numeric-symbol14-sv = [abcdefghijklmnopqrstuvwxyzåäö0123456789!@#$%^&*()-_+=]lalpha-numeric-symbol14-space-sv = [abcdefghijklmnopqrstuvwxyzåäö0123456789!@#$%^&*()-_+= ]lalpha-numeric-all-sv = [abcdefghijklmnopqrstuvwxyzåäö0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]lalpha-numeric-all-space-sv = [abcdefghijklmnopqrstuvwxyzåäö0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
########################## Mixcase ##########################mixalpha-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ]mixalpha-space-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ ]mixalpha-numeric-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789]mixalpha-numeric-space-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789 ]mixalpha-numeric-symbol14-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=]mixalpha-numeric-symbol14-space-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+= ]mixalpha-numeric-all-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]mixalpha-numeric-all-space-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]¿Cómo usarlo?
crunch <min> <max> [options]Opciones principales
- -o wordlist.txt (output)
- -f /path/to/charset.lst charset-name
- -t @,%^ Specifies a pattern
- Hay más opciones que puedes consultar con
man crunch
Ejemplos
Pin de 4 digitos
crunch 4 4 0123456789
# 0000# 0001# ...# 9999Combinación binaria de 2 a 4 digitos
crunch 2 4 01
# 00# 01# ...# 1110# 1111Combinación binaria de 2 a 4 caracteres usando abc
crunch 2 4 abc
# aa# bb# ...# cccb# ccccLetras usuando el charset por defecto
crunch 1 1
# a# b# ...# zCharsets incluidos
crunch 1 2 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o wordlist.txt
# a# b# ...# /# <== Son dos espacios- La opción
-oes para guardar el output como archivo
Patrones
- Se usa para generar iteraciones sobre un password conocido, por ejemplo si sabes que tu contraseña contiene la palabra “dog”
Opciones
-t @,%^ Specifies a pattern, eg: @@god@@@@ where the only the @'s, ,'s, %'s, and ^'s will change. @ will insert lower case characters , will insert upper case characters % will insert numbers ^ will insert symbolsEjemplo 1
Lo anterior funciona cuando se usa la siguiente sintaxis:
crunch 2 2 -t @%
# a0# a1# ...# z8# z9Ejemplo 2
Cuando usamos la opción -f se toma el charset que defines y el @ es cualquier caracter
crunch 4 4 -f /usr/share/crunch/custom.lst custom -t dog@
# doga# dogZ# dog5# ...# dog=# dog <= Es un espacioEjemplo 3
Si el patrón cuenta con caracteres especiales puedes usar las comillas simples '' o dobles "" para evitar conflictos
crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -t "do'%"# do'0# ...# do'9
crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -t 'do"%'# do"0# ...# do"9
crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -t "d'\"%"# d'"0# ...# d'"9Ejemplo 4
crunch 4 5 -p dog cat bird- The numbers aren’t processed but are needed.
Ejemplo 5
crunch 3 3 ab + 01 '!@#' -t @%^# a0!# a0@# a0## a1!# a1@# a1## b0!# b0@# b0## b1!# b1@# b1#Ejemplo 6
crunch 3 3 -t dd% -p dog cat# catdog0# catdog1# catdog2# catdog3# catdog4# catdog5# catdog6# catdog7# catdog8# catdog9# dogcat0# dogcat1# dogcat2# dogcat3# dogcat4# dogcat5# dogcat6# dogcat7# dogcat8# dogcat9Ejemplo 7
Cuando usamos la opción -f se toma el charset que defines y el @ es cualquier caracter
Pero al usar la opción -l hace que el @ sea tratao como literal
crunch 5 5 -t p@ss% -l a@aaa# p@ss0# p@ss1# ...# p@ss8# p@ss9Más información
Nota final¡Gracias por terminar de leer este artículo! uwur
— El Capitán
¿Tienes alguna duda o te gustaría comentar algo sobre este artículo?
Puedes encontrarme en:
Genera diccionarios con Crunch
https://elcaza.github.io/posts/hacking/crunch/