https://esgeeks.com/?p=5083

Esta es una guía completa sobre la herramienta Crunch para crear diccionarios de fuerza bruta. ¡Aprende paso a paso su sintaxis y comandos de ejemplo!

Hoy te mostraré cómo un pentester puede generar su propia lista de palabras para el nombre de usuario y/o la contraseña utilizando la herramienta muy potente CRUNCH.

1. Introducción a Crunch en Linux

En kali Linux puedes fácilmente obtener crunch explorando Aplicaciones > Ataques de Contraseña > Crunch

Crunch en Kali Linux

Crunch en Kali Linux

Crunch puede generar una lista de palabras sujeta a las condiciones que tú especifiques y tu archivo de salida puede ser usado en cualquier otro programa o archivo.

Versión 3.6 de Crunch

Versión 3.6 de Crunch

Estaré usando la versión 3.6 de Crunch para este tutorial y seguiré los siguientes parámetros para generar una lista de palabras.

  • Sintaxis: Miremos la página de manual de Crunch (aprende un poco más sobre las man page aquí)
Página de manual de Crunch

Página de manual de Crunch

<min-len> <max-len> [charset string] [options]
  • Min-len: Este parámetro especifica la longitud mínima de la cadena necesaria para que crunch comience a generar la lista de palabras.
  • Max-len: Este parámetro especifica la longitud máxima de la cadena necesaria para que crunch finalice.
  • Charset string: Este parámetro especifica conjuntos de caracteres para que crunch los utilice para generar listas de palabras a partir de esa cadena, si no has especificado ninguna cadena, crunch utilizará la cadena de caracteres predeterminada.
  • Options: crunch te ofrece una lista de opciones que aumentan su funcionalidad para generar listas de palabras según tus necesidades.

2. Crear una lista de palabras sin utilizar un string

Ejecuta el comando que se muestra a continuación, el cual generará un diccionario que contiene un mínimo de 2 letras de caracteres y un máximo de 3, mediante el uso de caracteres predeterminados. Comenzará desde aa y terminará con zzz.

crunch 2 3 -o  /root/Escritorio/0.txt

Aquí he utilizado los siguientes parámetros para generar un diccionario:

  • Min_len: 2, para letras de dos caracteres
  • Max_len: 3, para letras de tres caracteres
  • -o: Esta opción indica la ruta dónde guardar la salida del archivo de texto.

De la imagen de abajo se puede observar que ha generado 18252 líneas y se ha guardado en el archivo 0.txt.

Crear diccionario con crunch sin utilizar string

Crear diccionario con crunch sin utilizar string

Ahora bien, he utilizado el comando cat para leer el contenido del archivo 0.txt donde podemos percibir que ha comenzado desde aa y termina con zzz. De ahora en adelante usaré el comando cat para mostrar el contenido del diccionario.

cat /root/Escritorio/0.txt


3. Crear una lista de palabras mediante un string

Ahora ejecuta el comando que se muestra a continuación, el cual generará un diccionario que contiene un mínimo de 4 letras de caracteres y un máximo de 5, usando “geek” como se especifica en la cadena. Del mismo modo, comenzará desde gggg y terminará con kkkkk.

crunch 4 5  geek -o  /root/Escritorio/1.txt
Crear diccionario con crunch utilizando string

Crear diccionario con crunch utilizando string

De la imagen de arriba se puede observar que ha generado 324 líneas y guardado en un archivo 1.txt.

Del mismo modo, podemos utilizar una cadena de cualquier número para crear un diccionario que contenga caracteres numéricos.

Ejemplo Geek!

Por ejemplo, algunos usuarios establecen su fecha de nacimiento como contraseña y nos gustaría generar un diccionario que contenga una combinación de cuatro números de tal manera que represente mes y fecha para el 25 de mayo (2505), entonces se puede usar '2505' como cadena de caracteres para generar una lista de palabras numéricas.

4. Crear una lista de palabras alfanuméricas

Puedes generar tu propia lista de palabras alfanuméricas. Ejecuta el siguiente comando que generará un diccionario que contenga un mínimo de 3 letras de caracteres y un máximo de 4 utilizando “geek123” como cadena especificada.

Nota 1!

Puedes establecer la longitud mínima y máxima de tu lista de palabras según tus necesidades.
crunch 3 4  geek123 -o  /root/Escritorio/2.txt
Crear lista de palabras alfanuméricas con crunch

Crear lista de palabras alfanuméricas con crunch

De nuevo he utilizado el comando cat para leer el contenido dentro del archivo 2.txt donde podemos percibir que tiene una combinación de caracteres alfanuméricos.

5. Crear una lista de palabras junto con un carácter de espacio

El siguiente comando generará una lista de palabras usando el carácter de espacio (\) con la cadena “geek“. En lugar de usar (\) también puedes usar comillas dobles alrededor de la cadena “geek” junto con espacio dentro de las comillas dobles.

crunch 1 3  geek\  /root/Escritorio/3.txt
Crear diccionario con carácter de espacio

Crear diccionario con carácter de espacio

6. Crear una lista de palabras utilizando el archivo RainbowCrack

Tal vez algunos no lo sepan, pero rainbow crack tiene un archivo de conjunto de caracteres que se utiliza para descifrar hashes utilizando la tabla rainbow. Nosotros utilizaremos este archivo de conjunto de caracteres para generar una lista de palabras compleja según las demandas de la situación.

cat /usr/share/rainbowcrack/charset.txt
charset de RainbowCrack

charset de RainbowCrack

He usado el comando cat para mostrar la lista de caracteres que ha sido almacenada en charset.txt de rainbowcrack.

Ahora puedes elegir cualquier juego de caracteres para generar una lista de palabras. Supongamos que quiero generar una lista de palabras que contenga letras de alfabetos minúsculas junto con un numérico para palabras de 5 letras, por lo que ejecutaré el siguiente comando.

crunch  4 5  -f /usr/share/rainbowcrack/charset.txt loweralpha-numeric -o  /root/Escritorio/4.txt

Nota 2!

Aquí -f Especifica un conjunto de caracteres de charset.txt
Crear diccionario con charset de rainbowcrack

Crear diccionario con charset de rainbowcrack

7. Crear una lista de palabras con un patrón específico

Crunch ofrece la opción -t para generar una lista de palabras usando un patrón específico según tus necesidades.

Usando la opción -t puedes generar 4 tipos de patrones como se especifica a continuación:

  • @: para alfabetos en minúsculas
  • ,: (‘coma’) para alfabetos en mayúsculas
  • %: para caracteres numéricos
  • ^: para el símbolo de carácter especial

Entonces, para generar una lista de palabras que contenga 2 caracteres numéricos a la derecha de la cadena “geek“, necesitamos ejecutar el siguiente comando.


Ya que tenemos 4 letras de la cadena geek y asumiendo 2 números más después de la cadena dada, por lo tanto la longitud mínima debe ser la suma de la cadena y el carácter de patrón (4+2=6).

crunch 6 6 -t geek%% -o /root/Escritorio/5.txt
Crear diccionario con un patrón usando crunch

Crear diccionario con un patrón usando crunch

8. Crear un diccionario con límite de caracteres duplicados

Crunch te permite limitar la repetición de un carácter usando los parámetros -d junto con el patrón dado.

Como vimos anteriormente, el patrón para geek%% comienza con geek00, lo que significa que cada número individual será consecutivo dos o tres veces, ya que contendrá palabras como geek00, geek01, geek11, geek10 y así sucesivamente en la lista de palabras.

Si no deseas crear una lista de palabras con números repetidos, puedes utilizar la opción -d para establecer el filtro de repetición.

  • Por ejemplo: Quiero generar una lista de palabras usando el patrón anterior, es decir, geek%% y repetir consecutivamente cada número casi dos veces. Para implementar este tipo de diccionario necesitamos ejecutar el siguiente comando.
crunch 6 6 -t geek%% -d 2% -o /root/Escritorio/6.txt

Aquí he utilizado el siguiente parámetro

  • -t: denota que el patrón % se usa para editar 2 caracteres numéricos
  • -d: denota que el patrón % se utiliza para editar 2 caracteres numéricos con repetición de cada número casi dos veces.
Diccionario con límite de caracteres duplicados

Diccionario con límite de caracteres duplicados

9. Generar lista de palabras con patrón y letra mayúscula

Para generar una lista de palabras que contenga 2 caracteres en mayúsculas a la derecha de la cadena “geek“, necesitamos ejecutar el siguiente comando.

Ya que tenemos 4 letras de la cadena geek y estamos colocando 2 letras mayúsculas más después de la cadena dada, por lo tanto la longitud mínima debe ser la suma de la cadena y el carácter de patrón (4+2=6).

crunch 6 6 -t geek,, -o /root/Escritorio/7.txt
Crear diccionarios con patrón y letra mayúscula

Crear diccionarios con patrón y letra mayúscula

Límite de repetición

Del mismo modo, podemos establecer un límite para la repetición de letras mayúsculas como se ha hecho anteriormente. Así que si quiero que los alfabetos no sean consecutivos, podemos ejecutar el siguiente comando para generar este tipo de diccionario.

crunch 6 6 -t geek,, -d 1, -o /root/Escritorio/8.txt
Límite de repetición de caracteres con crunch

Límite de repetición de caracteres con crunch

10. Usar permutación para generar un diccionario

La opción -p se utiliza para generar una lista de palabras con ayuda de la permutación, aquí se puede ignorar la longitud mínima y máxima de la cadena de caracteres. Además, se puede utilizar con una cadena de una o varias palabras, como se indica a continuación.

crunch 3 6 -p alexis junior esgeeks
Permutación para generar diccionario

Permutación para generar diccionario

11. Generar un diccionario con palabras limitadas

Si observas sobre todo el resultado de salida, encontrarás que crunch genera el diccionario y muestra el número de líneas de cada diccionario. Por ejemplo, el archivo de texto 0.txt tiene 18252 líneas y cada línea contiene una sola palabra.

Por lo tanto, si deseas establecer un filtro para un determinado número de líneas que se generarán, ejecuta la opción que se muestra a continuación.

crunch 5 5 IGNITE -c 25 -o /root/Escritorio/9.txt
Limitar cantidad de palabras en diccionario con crunch

Limitar cantidad de palabras en diccionario con crunch

Generará un diccionario de, solamente, 25 palabras y guardará la salida en 9.txt.

De nuevo hemos utilizaré el comando cat para leer el contenido del archivo 9.txt donde podemos percibir que sólo tiene 25 caracteres alfabéticos.

Diccionario con palabras limitadas

Diccionario con palabras limitadas

12. Fragmentación de la lista de palabras

Utiliza la opción -b para la fragmentación de la lista de palabras que divide una sola lista de palabras en varias listas de palabras. Es una opción muy útil para dividir una lista de palabras que se puede llegar a pesar GB y entonces dividirlo en MB.

crunch 5 7 geek@12 -b 1mb -o START

De la imagen de abajo se puede observar que ha dividido un archivo de 2MB en dos archivos de texto.

Dividir lista de palabras con crunch

Dividir lista de palabras con crunch

13. Crear un diccionario comprimido

Crunch te permite generar una lista de palabras comprimidas con la opción -z y otros parámetros son gzip, bzip2, lzma, y 7z, que se ejecutan como se indica a continuación.

crunch 5 7 geek@12 -z gzip -o START
Crear un diccionario comprimido con crunch

Crear un diccionario comprimido con crunch

Eso es todo ¡disfruta creando tus diccionarios para fuerza bruta!. Por supuesto he creado guías de uso para otras herramientas como CeWLDymergeCupp y Pydictor; que forman parte de las 5 Formas de Crear Diccionario para Fuerza Bruta. ¡Comparte! :’)


¡Mantente actualizado!

Suscríbete a nuestro boletín semanal...

Suscríbete a nuestro boletín electrónico para recibir artículos útiles y ofertas especiales. No te perderás absolutamente de nada!

Enviaremos solamente boletines al email y no compartiremos tu email.