Vous êtes sur la page 1sur 27

Con unos parámetros definidos podemos

crear diccionarios de una manera rápida,


confiable y flexible. El comando crunch es
una herramienta fundamental para el
pentesting.

Creación de
diccionarios
Con
CRUNCH
INTRODUCCIÓN

En el mundo del hacking tenemos una técnica para obtener las claves de acceso a
las redes WIFI llamada fuerza bruta. Según Wikipedia la fuerza bruta es:

"La forma de recuperar una clave probando todas las combinaciones posibles
hasta encontrar aquella que permite el acceso."

Para ejecutar este tipo de ataque necesitaremos un archivo que contenga dentro de sí
cientos, miles e incluso millones de palabras, para ir probando una por una hasta dar
con la palabra válida (pass). Estos archivos son llamados diccionarios o wordlists
(listas de palabras).

Ahora quiero que se imaginen que tengamos que crear un diccionario escribiendo
todas las posibles palabras una por una, no tendría sentido y tampoco sería práctico.
Para esto existen programas que generan diccionarios automáticamente
simplemente especificando algunos parámetros de entrada.

QUE ES CRUNCH?
Crunch es un programa sin interfaz gráfica que basándose en criterios establecidos
por el usuario (input) es capaz de generar diccionarios con gran flexibilidad, para
ser usados en fuerza bruta (output), el resultado de crunch puede ser visto en
pantalla, puede ser guardado en un archivo .txt o puede enviarse a otro programa en
tiempo real para su uso.

La version 1.0 fue creada por mima_yin (mimayin@ACiiiD


(https://underc0de.org/foro/index.php?action=profile;u=22110).ath.cx) y todas
las versiones posteriores fueron actualizadas y desarrolladas por bofh28
(bofh28@gmail.com) a ellos todo el agradecimiento y el respeto por tan maravillosa
herramienta.

La página oficial es:

http://sourceforge.net/projects/Crunch-wordlist/files/
COMO INSTALAR CRUNCH
Linux

Abrir una terminal y escribir:


sudo apt-get install crunch

Dependiendo de la distribución podríamos tener uno que otro gestor de paquetes, así
que cada cual podría modificar el comando de acuerdo a sus sistemas (yum,
pacman, aptitude, etc..)

Si no se encuentra en los repositorios de software de la distribución que tengamos


instalada, podríamos bajarnos el tarball e instalarlo nosotros mismos:
git clone http://git.code.sf.net/p/crunch-wordlist/code crunch-
wordlist-code
cd crunch-wordlist-code;
sudo make && sudo make install;

Windows

Pues el creador no ha liberado una versión oficial para los usuarios de Windows,
pero venga que aquí llega la magia del software open-source, y es que un usuario,
mejor dicho una usuaria (maripuri) ha compilado la versión 3.2 de Crunch para
Windows, así que a ella muchas gracias por su esfuerzo y trabajo, los interesados
pueden bajarse el fichero desde aquí:

http://www.mediafire.com/download/dywlwgrb44vrza2/crunh+3.2+para+windows.r
ar

COMO USAR CRUNCH NIVEL 1


Acá veremos su uso, desde la ejecución más sencilla hasta la más compleja.

Bastaría con escribir "crunch" en una terminal para conseguir información donde
podemos ver claramente la forma sencilla en que podemos hacer uso de ella :
Usage: crunch <min> <max> [options]
where min and max are numbers

(http://fotos.subefotos.com/13542703323c86772cb711c276f68845o.png)
El primer y segundo parámetro es para indicarle la cantidad de caracteres que
necesitamos, <min> número mínimo, <max> número máximo de caracteres.
Probemos con generar todas las posibles combinaciones para una palabra de 4
caracteres:
crunch 4 4

(http://fotos.subefotos.com/6fedc81f69efc149d49f948bff353f27o.png)

Como se aprecia en la imagen, crunch avisa cuantas líneas serán generadas y cuanto
espacio ocupará.

A continuación les comparto las primeras líneas de la salida en pantalla:


aaaa
aaab
aaac
aaad
aaae
aaaf
aaag
aaah
aaai
aaaj
aaak
aaal
aaam
aaan
aaao
aaap
aaaq
aaar
aaas
aaat
aaau
aaav
………..etc.

Tenemos que crunch ha generado todas las posibles combinaciones para una palabra
de 4 caracteres, pero sólo letras minúsculas.

No se han usado números, símbolos, mayúsculas ni espacios en blanco. La razón se


explica a continuación:
Crunch utiliza una variable llamada charset (character setting) y corresponde al
conjunto de caracteres que serán usados para la generación del diccionario/wordlist,
por defecto el charset es lalpha (lower alphabet).
crunch 4 4 -f ./charset.lst numeric

0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
………..etc

Todo ha ido bien, pero ahora notamos una pequeña diferencia, y es que solo ha
generado números, pero eso es justo lo que queríamos no? Y como lo hemos
logrado pues con la opción -f y listo!!

Esta opción le indica dónde buscar el fichero de variables, es decir, donde están
preestablecidas todos los charset, es decir que debemos especificar la ruta al archivo
así como nuestra selección dentro del mismo, en mi caso tengo el charset.lst en mi
directorio home, por ello no específico ruta hasta el mismo.

Cuantos charset podemos elegir además de lalpha y de numeric?

# 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ÅÄÖ01234567
89]
mixalpha-numeric-space-sv =
[abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ01234567
89 ]
mixalpha-numeric-symbol14-sv =
[abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ01234567
89!@#$%^&*()-_+=]
mixalpha-numeric-symbol14-space-sv =
[abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ01234567
89!@#$%^&*()-_+= ]
mixalpha-numeric-all-sv =
[abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ01234567
89!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]
mixalpha-numeric-all-space-sv =
[abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ01234567
89!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]

Si no quieren especificar ningún charset pueden simplemente pasarle a Crunch


cuales caracteres desean usar en la generación, por ejemplo:
crunch 4 4 ab12

(http://fotos.subefotos.com/823b3c47829c6e839fe44680d48b5b0do.png)

Y el resultado será:
aaaa
aaab
aaa1
aaa2
aaba
aabb
aab1
aab2
aa1a
aa1b
aa11
aa12
aa2a
aa2b
aa21
aa22
abaa
abab
aba1
aba2
………..etc.
CÓMO USAR CRUNCH NIVEL 2
Hasta ahora hemos usado crunch en un nivel básico, es decir sólo hemos generado
diccionarios especificándole el tamaño y el conjunto de caracteres a usarse. El
siguiente nivel complica un poco las cosas, permitiendo obtener más flexibilidad en
la creación de diccionarios.

Para generar una clave que inicia con "AAA......" pero no sabemos el resto, pues
podríamos decirle a crunch:
crunch 9 9 -t AAA@@@@@@

Y esto generará:
AAAaaoerv
AAAaaoerw
AAAaaoerx
AAAaaoery
AAAaaoerz
AAAaaoesa
AAAaaoesb
AAAaaoesc
AAAaaoesd
AAAaaoese
AAAaaoesf
AAAaaoesg
AAAaaoesh
AAAaaoesi
AAAaaoesj
AAAaaoesk
AAAaaoesl
AAAaaoesm
AAAaaoesn
AAAaaoeso
AAAaaoesp
AAAaaoesq
AAAaaoesr
AAAaaoess
AAAaaoest
………..etc.

Acá vemos que crunch ha generado palabras sin modificar los 3 primeros
caracteres. Otros ejemplos, donde mantenemos los primeros caracteres y
reemplazamos los siguientes con caracteres alfanuméricos:
crunch 9 9 -f .charset.lst lalpha-numeric -t AAA@@@@@@

o bien podríamos especificar los caracteres que queremos usar:


crunch 9 9 abcefghijklmnopqrstuwxyz1234567890 -t AAA@@@@@@
Con ambos comandos tendríamos el mismo resultado, simplemente son dos formas
de hacer lo mismo
AAAaaaz1u
AAAaaaz1v
AAAaaaz1w
AAAaaaz1x
AAAaaaz1y
AAAaaaz1z
AAAaaaz10
AAAaaaz11
AAAaaaz12
AAAaaaz13
AAAaaaz14
AAAaaaz15
AAAaaaz16
AAAaaaz17
AAAaaaz18
AAAaaaz19
AAAaaaz2a
AAAaaaz2b
AAAaaaz2c
AAAaaaz2d
AAAaaaz2e
AAAaaaz2f
………..etc.

Ahora viene la forma sencilla que es simplemente cambiar el símbolo "@" por el
tipo de carácter que queremos insertar en la generación del diccionario, recuerden
que con la opción -t, podemos especificar un patrón de caracteres que serán los
únicos en cambiar al generar el diccionario, así los caracteres que podemos
especificar para el patrón son:

@ insertara minúsculas (arroba)


, insertara mayusculas (coma)
% insertara numeros (porcentaje)
^ insertara simbolos (acento ^)

Sabiendo esto vamos a suponer que queremos generar un diccionario donde la


primera letra sea en mayúscula, pero que a lo largo del mismo, tanto el 2do como el
3er caracter se queden fijos, pues para hacerlo agregamos una "," que tal como
explique anteriormente insertará mayúsculas, pero recordemos que había un número
en el password, así que también necesitamos insertar un solo número en el 7mo
carácter de nuestra palabra, pues sólo contamos hasta el lugar número 7 e
insertamos un "%" que como también expliqué anteriormente solo inserta números,
el comando final quedaría como esto:
crunch 9 9 -t ,nd@@@%@@

(http://fotos.subefotos.com/1faba127713b4579d7b59431e975ec9bo.png)

Ahora vamos a generar un diccionario concatenando palabras debido a que algunas


personas usan como password una serie de palabras unidas, por ejemplo alguien que
le guste harry potter podría usar los nombres de Harry, Hermione y Ron como
password y en ese caso generar simplemente por caracteres sería casi imposible
dada la longitud final "harryhermioneron" así que en crunch existe una opción que
nos permite concatenar palabras, veamos como:
crunch 1 1 -p Harry Hermione Ron

Obtendríamos algo como esto:

(http://fotos.subefotos.com/e7d5e875c79488caf48b21deb62872a9o.png)
Con la opción -p es posible lograr concatenar palabras. Pero hay una particularidad,
si se usa la opción -p los números no son procesados, pero son necesarios para el
argumento, es decir que podremos colocar cualquier cosa y será irrelevante para la
salida.

CÓMO USAR CRUNCH NIVEL 3

Hemos llegado al momento de usar nuestros diccionarios que hemos creado. Para
esto debemos enviar la salida del comando a un archivo y guardarlo para que pueda
ser usado convenientemente.
Usando la opcion -o (output) seguido del nombre del archivo nos aseguramos que la
aplicación irá guardando las palabras mientras las genera. Tomemos como ejemplo
el ejercicio del diccionario creado con las palabras Harry Hermione y Ron y
creemos un fichero:
crunch 1 1 -o NombresPotter.txt -p Harry Hermione Ron

(http://fotos.subefotos.com/8af70f153ca64b4217c62c5c98a7eb57o.png)

Opcionalmente también podemos especificar la ruta donde queremos volcar el


diccionario, por ejemplo:
crunch 1 1 -o /home/cl0udswx/Documentos/NombresPotter.txt -p Harry
Hermione Ron

Vamos a avanzar un poco más profundo y hagamos que cada 5000 líneas crunch
nos grabe un fichero. Puede ser que estemos limitados en capacidad del disco donde
se creará el diccionario y podemos ir sacando algunas partes. También nos
flexibiliza el tiempo al auditar la red, pudiendo analizar con algunos ficheros y
continuar en otro momento con los restantes.
Para lograr esta división en la creación del diccionario en varios ficheros de menor
tamaño usamos la opción -c num, donde num es la cantidad de palabras que tendrá
cada archivo (esta opción solo funciona si el parámetro “-o START” está presente
en la línea) por ejemplo:

crunch 1 1 -o /home/cl0udswx/Documentos/START -c 5000

Esto inicia el proceso de crear múltiples ficheros con 5000 líneas cada uno, tal y
como podemos ver en la imagen:

(http://fotos.subefotos.com/f3b46626d554f7f802a3aaa0d1d203ceo.png)

El START funciona como nombre de archivo para el primer fichero a crear, a partir
de ahí los ficheros tomaran el nombre de la última línea del archivo anterior y la
primera línea del archivo posterior. Si visitamos la carpeta documentos, donde se
crean los archivos nos encontraríamos con esto:
(http://fotos.subefotos.com/b170988f75cf8fe2674449013b89c6b4o.png)

En algunos casos es posible llenar el disco duro al generar un diccionario, existen


muchas posibilidades de combinaciones y puede que no tengamos espacio para
guardarlas todas ej:

crunch 15 25 -o demasiado.txt

(http://fotos.subefotos.com/0e8a057b5c74ac0137299570572d27bfo.png)

Eso es demasiado grande para cualquier disco duro actual 2017.


Pero entre tanto generamos, podemos crear un fichero y comprimirlo a bzip, de un
solo golpe al agregar la opción -z seguida del tipo de compresión deseado, por
ejemplo:
crunch 4 5 -o /home/cl0udswx/Documentos/START -c 5000 -z gzip

De esta forma se iniciaría el mismo proceso anterior solo que en archivos


comprimidos gzip u en cualquier otro formato soportado por crunch (gzip, bzip2,
lzma, and 7z )

(http://fotos.subefotos.com/66c515f4027fa2d6487eed1953780d83o.png)
Ejercicios para practicar.

Pues al inicio del post mi idea era explicar todas las funciones de crunch, pero se me
ha ocurrido que sería interesante dejar que ustedes aporten su poco al post, así que
les quise dejar 2 ejercicios para que los realicen y me los manden por MP y yo
luego actualizar el post con el nombre y la solución.

1.- Cómo generar un diccionario que le pase la salida a aircrack-ng usando una
tubería.

El uso de tuberías en Linux permite enviar la salida de un comando a la entrada de


otro. La forma tradicional es comando1 | comando2, donde la salida del comando1
es enviada a la entrada de comando2.
Generador | utilidad crack. Al usar este formato, con ayuda de las opciones de
aircrack podemos pasar palabra por palabra, sin forzar el disco ni la RAM.
Debemos usar la opción:
-e essid indicando el nombre de la red,
-w diccionario sin el nombre del diccionario o sea –w- cerrado con el signo –
Ej:

crunch 10 10 0123456789 | aircrack-ng casa-08.cap –e casamia –w-

2.- Cómo generar un diccionario que no repita caracteres por línea y guardarlo en un
comprimido (da igual el formato)

Crunch 5 5

Para poder crear un diccionario de 6 caracteres de longitud, utilizando todos los


caracteres existentes:

crunch 6 6 -f charset.lst mixalpha-numeric-all-space

Donde lo rojo seria la longitud mínima y la máxima.

Lo verde seria el fichero charset.lst (si no tenemos el fichero en nuestro home


entonces hay que especificar la ruta)

Y lo azul seria la sección del charset que contiene todos los símbolos, números y el
alfabeto tanto en minúsculas como en mayúsculas

El comando genera un wordlist de 4 TB.


Echando un vistazo a ejemplos deberías probar en primer lugar generando de la "A"
hasta la "G" a ver si funciona para proseguir.

1. Lista de palabras usando "abcdefg" empezando desde "A" hasta "G":

Código: Bash

1. ./crunch 1 6 abcdefg

Aprovecho para dejar un Script realizado por "elmanuvolador" de


"seguridadwiriless" el cual te hará las cosas más fáciles. Quizás con este Script si
puedas generar ese diccionario que necesitas. Dejo el script a continuación:

Código: Bash

1. #!/bin/bash
2.
3. clear
4. echo ""
5. echo
" #############################
#######"
6. echo
" #
#"
7. echo
" # CRUNCH.SCRIPT
#"
8. echo
" #
#"
9. echo " # Creado por
elmanuvolador #"
10. echo
" #
#"
11. echo
" # www.seguridadwireless.n
et #"
12. echo
" #
#"
13. echo
" #############################
#######"
14. sleep 4
15. clear
16. MIN="8"
17. MAX="10"
18. AIRCRACK="aircrack-ng "
19. CRUNCH="/pentest/password/crunch/crunch"
20. DUMP_PATH="/root/swireless/airoscript"
21. CHARSET="/pentest/password/crunch/charset.lst"
22. CHOICES="1 2 3 4 5 6 7 8 9"
23. function menu {
24. clear
25. echo
"##################################################
############################"
26. echo "### AP SSID ==> $Host_SSID"
27. echo "### AP
MAC ==> $Host_MAC"
28. echo "### RUTA .CAP ==> $ruta_CAP"
29. echo "### BUSCAR KEY ==> De $MIN a $MAX
caracteres"
30. echo
"##################################################
############################"
31. echo "### 1) Especificar SSID del
AP ###"
32. echo "### 2) Especificar MAC del
AP ###"
33. echo "### 3) Especificar Ruta del archivo
.CAP ###"
34. echo "### 4) Especificar
diccionario
###"
35. echo
"##################################################
############################"
36. echo "### 5) Bruteforce
(diccionario)
###"
37. echo "### 6) Bruteforce
(personalizado)
###"
38. echo "### 7) Bruteforce (con
patron) #
##"
39. echo
"##################################################
############################"
40. echo "### 8) Numero de caracteres
iniciales ###"
41. echo "### 9) Numero de caracteres
finales ###"
42. echo
"##################################################
############################"
43. }
44. #opcion 1
45. function entradassid {
46. echo
47. echo -n "Introduzca el SSID del AP: "
48. read Host_SSID
49. sleep 1
50. clear
51. menu
52. }
53. #opcion 2
54. function entradamac {
55. echo
56. echo -n "Introduzca la MAC del AP: "
57. read Host_MAC
58. sleep 1
59. ruta_CAP="$DUMP_PATH/$Host_MAC-01.cap"
60. clear
61. menu
62. }
63. #opcion 3
64. function entradaruta {
65. echo
66. echo -n "Introduzca la nueva ruta del archivo
.CAP: "
67. read ruta_CAP1
68. sleep 1
69. ruta_CAP="$ruta_CAP1"
70. clear
71. menu
72. }
73. #opcion 6
74. function dicciomanual1 {
75. echo
76. echo -n "Introduzca los caracteres: "
77. read dicciomanual
78. sleep 1
79. ATAQUE1="$dicciomanual"
80. ataque1
81. }
82. #opcion 7
83. function patron {
84. clear
85. echo " -Ejemplo para una contraseña de 8
caracteres: @@ABCD@@"
86. echo " donde ABCD se mantendran
inamovibles y las @ ira probando"
87. echo " combinaciones con el diccionario
seleccionado en el menu."
88. echo ""
89. echo -n " -Introduzca la longitud de la
contraseña (ejp: 8): "
90. read carac1
91. sleep 1
92. MIN="$carac1"
93. sleep 1
94. MAX="$carac1"
95. echo
96. echo -n " -Introduzca los caracteres (ejp:
@@ABCD@@): "
97. read patron1
98. sleep 1
99. clear
100. ataque2
101. }
102. #opcion 8
103. function caracmin {
104. echo
105. echo -n "Introduzca el nuevo Numero de
caracteres iniciales: "
106. read caracmin1
107. sleep 1
108. MIN="$caracmin1"
109. clear
110. menu
111. }
112. #opcion 9
113. function caracmax {
114. echo
115. echo -n "Introduzca el nuevo Numero de
caracteres finales: "
116. read caracmax1
117. sleep 1
118. MAX="$caracmax1"
119. clear
120. menu
121. }
122. #opcion 4
123. function diccionario {
124. while true; do
125. clear
126. echo
"##################################################
############################"
127. echo "### 1)
Numeros
###"
128. echo "### 2)
Minusculas
###"
129. echo "### 3)
Mayusculas
###"
130. echo "### 4) Numeros /
Espacio
###"
131. echo "### 5) Minusculas /
Espacio
###"
132. echo "### 6) Mayusculas /
Espacio
###"
133. echo "### 7) Minusculas /
Numeros
###"
134. echo "### 8) Minusculas / Numeros /
Espacio ###"
135. echo "### 9) Mayusculas /
Numeros
###"
136. echo "### 10) Mayusculas /
Numeros/ Espacio
###"
137. echo "### 11) Minusculas /
Mayusculas
###"
138. echo "### 12) Minusculas / Mayusculas /
Espacio ###"
139. echo "### 13) Minusculas / Mayusculas /
Numeros ###"
140. echo "### 14) Minusculas / Mayusculas /
Numeros / Espacio ###"
141. echo "### 15) Minusculas / Mayusculas /
Numeros / Simbolos / Espacio ###"
142. echo
"##################################################
############################"
143. echo "### 16) Abrir charset.lst (Plantillas
de diccionarios) ###"
144. echo "### 17) Entrada manual del nombre de
la plantilla ###"
145. echo "### 18) Volver al menu
principal
###"
146. echo
"##################################################
############################"
147. read yn
148. echo ""
149. case $yn in
150. 1 ) numeric1 ; break ;;
151. 2 ) lalpha1 ; break ;;
152. 3 ) ualpha1 ; break ;;
153. 4 ) numeric-space1 ; break ;;
154. 5 ) lalpha-space1 ; break ;;
155. 6 ) ualpha-space1 ; break ;;
156. 7 ) lalpha-numeric1 ; break ;;
157. 8 ) lalpha-numeric-space1 ; break ;;
158. 9 ) ualpha-numeric1 ; break ;;
159. 10 ) ualpha-numeric-space1 ; break ;;
160. 11 ) mixalpha1 ; break ;;
161. 12 ) mixalpha-space1 ; break ;;
162. 13 ) mixalpha-numeric1 ; break ;;
163. 14 ) mixalpha-numeric-space1 ; break ;;
164. 15 ) mixalpha-numeric-all-space1 ; break ;;
165. 16 ) opencharset ; break ;;
166. 17) manualcharset; break ;;
167. 18) break ;;
168. * ) echo "Opción desconocida. Elija de
nuevo" ;;
169. esac
170. done
171. clear
172. }
173. #1
174. function numeric1 {
175. ATAQUE1=numeric
176. menu
177. }
178. #2
179. function lalpha1 {
180. ATAQUE1=lalpha
181. menu
182. }
183. #3
184. function ualpha1 {
185. ATAQUE1=ualpha
186. menu
187. }
188. #4
189. function numeric-space1 {
190. ATAQUE1=numeric-space
191. menu
192. }
193. #5
194. function lalpha-space1 {
195. ATAQUE1=lalpha-space
196. menu
197. }
198. #6
199. function ualpha-space1 {
200. ATAQUE1=ualpha-space
201. menu
202. }
203. #7
204. function lalpha-numeric1 {
205. ATAQUE1=lalpha-numeric
206. menu
207. }
208. #8
209. function lalpha-numeric-space1 {
210. ATAQUE1=lalpha-numeric-space
211. menu
212. }
213. #9
214. function ualpha-numeric1 {
215. ATAQUE1=ualpha-numeric
216. menu
217. }
218. #10
219. function ualpha-numeric-space1 {
220. ATAQUE1=ualpha-numeric-space
221. menu
222. }
223. #11
224. function mixalpha1 {
225. ATAQUE1=mixalpha
226. menu
227. }
228. #12
229. function mixalpha-space1 {
230. ATAQUE1=mixalpha-space
231. menu
232. }
233. #13
234. function mixalpha-numeric1 {
235. ATAQUE1=mixalpha-numeric
236. menu
237. }
238. #14
239. function mixalpha-numeric-space1 {
240. ATAQUE1=mixalpha-numeric-space
241. menu
242. }
243. #15
244. function mixalpha-numeric-all-space1 {
245. ATAQUE1=mixalpha-numeric-all-space
246. menu
247. }
248. #16
249. function opencharset {
250. konqueror
/pentest/password/crunch/charset.lst*&
251. diccionario
252. }
253. #17
254. function manualcharset {
255. echo
256. echo -n "Introduzca el nombre de la plantilla
(ejp: mixalpha): "
257. read plantilla
258. sleep 1
259. ATAQUE1="$plantilla"
260. clear
261. menu
262. }
263. #ataques
264. function ataque {
265. $CRUNCH $MIN $MAX -f $CHARSET $ATAQUE1 |
$AIRCRACK -a 2 $ruta_CAP -e $Host_SSID -b $Host_MAC
-w -
266. echo""
267. echo -n " Presione ENTER para
volver al menu principal"
268. read
269. clear
270. menu
271. }
272. function ataque1 {
273. $CRUNCH $MIN $MAX $ATAQUE1 | $AIRCRACK -a 2
$ruta_CAP -e $Host_SSID -b $Host_MAC -w -
274. echo""
275. echo -n " Presione ENTER para
volver al menu principal"
276. read
277. clear
278. menu
279. }
280. function ataque2 {
281. $CRUNCH $MIN $MAX -f $CHARSET $ATAQUE1 -t
$patron1 | $AIRCRACK -a 2 $ruta_CAP -e $Host_SSID -
b $Host_MAC -w -
282. echo""
283. echo -n " Presione ENTER para
volver al menu principal"
284. read
285. clear
286. menu
287. }
288. #opciones del menu principal
289. menu
290. select choix in $CHOICES;
do
291. if [ "$choix" = "1" ]; then
292. entradassid
293. menu
294. elif [ "$choix" = "2" ]; then
295. entradamac
296. menu
297. elif [ "$choix" = "3" ]; then
298. entradaruta
299. menu
300. elif [ "$choix" = "4" ]; then
301. diccionario
302. menu
303. elif [ "$choix" = "5" ]; then
304. ataque
305. menu
306. elif [ "$choix" = "6" ]; then
307. dicciomanual1
308. menu
309. elif [ "$choix" = "7" ]; then
310. patron
311. menu
312. elif [ "$choix" = "8" ]; then
313. caracmin
314. menu
315. elif [ "$choix" = "9" ]; then
316. caracmax
317. menu
318. else
319. clear
320. menu
321. echo
"##################################################
######################"
322. echo
"### Opción
incorrecta ###"
323. echo
"##################################################
######################"
324. sleep 1
325. menu
326. fi
327. done
328. #END

Vous aimerez peut-être aussi