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!
1. Introducción a Crunch en Linux
En kali Linux puedes fácilmente obtener crunch explorando Aplicaciones > Ataques de Contraseña > Crunch
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.
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.
<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.
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
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.
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.
crunch 3 4 geek123 -o /root/Escritorio/2.txt
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
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
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
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
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.
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
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
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
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
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.
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.
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
Eso es todo ¡disfruta creando tus diccionarios para fuerza bruta!.
Fuente: esgeeks.com