Generar Diccionarios de Ataques con Fuerza Bruta
¿Qué es un diccionario?
De acuerdo a la definición, un diccionario es un catálogo de palabras
de un idioma, ordenadas alfabéticamente, que proporciona su significado
ortográfico y su pronunciación, separación silábica. Bueno esto es la definición
ahora a lo que nos compete, estos archivos son tan importantes a la hora de
hacer un ataque de fuerza bruta, si estamos realizando pentesting, es una parte
necesaria en los servicios que estemos auditando y verificar la robustez, si se
encuentran en algún diccionario de ataque, deseando acceso al sistema objetivo.
Los diccionarios de ataque son las herramientas que debemos tener a la
mano (la foto de la novia en la cartera), y si tenemos más variedad de password
tendremos mayor probabilidad de acceder al sistema objetivo, se podría
complicar si el verdadero password es suficientemente complejo.
La definición acertada, es un
intento de entrada en un sistema digital que utiliza una lista de password
posibles, probando una a la vez.
Es una forma avanzada del método de prueba y error, enviando resultados rápidos
y eficientes.
¿Para qué sirve?
Es imponerse la defensa mediante la repetición del uso de diccionario,
con recombinaciones de palabras o miles de combinaciones diferentes de ellas.
Existen herramientas que pueden probar entre 50 a 100 intento por minuto,
y pueden tardar horas o incluso días. La hazaña es hacer que tarde varios días
en descifrar su contraseña.
Ya existen sitio en los cuales podemos generar diccionarios
automáticos o una gran cantidad de sitio web que filtran password por ataques
de datos y podemos romper en una hora. :P
Es indudable que existen multitudes maneras de crear ataques con
diccionarios por lo que mencionare algunas.
Desarrollo
Para crear tus propios diccionarios de ataque (es un método comúnmente
utilizado en el mundo del hacking), veremos algunas pruebas para crear
diccionarios de ataques con fuerza bruta.
En el internet todo está protegido por credenciales, hay varias
maneras de romper dichas credenciales, por mencionar, ingeniería social, método
de prueba y error, aunque en el mundo del cracking hay dos métodos infalibles
para hacerlo, ataque de diccionario y ataque de fuerza bruta.
Crunch
La primera herramienta a mencionar será crunch, lo mejor de esta herramienta es que se puede usar tanto en
línea como sin conexión, generando lista de palabras de acuerdo a sus
necesidades, entre las opciones podemos dar longitud máxima y mínima, también
proporcionar un conjunto de caracteres, finalmente creará un diccionario con
las combinaciones posibles.
Figura 1. Ejecutando la herramienta crunch.
A un que podemos ver más opciones, si entramos al manual de la
herramienta.
Figura 2. Como entrar el manual de la herramienta crunch.
Navegamos hacia abajo y vemos que tenemos más opciones de las que no
muestra la herramienta a simple vista.
Figura 3. Manual de crunch.
Más opciones que novemos a la vista de la herramienta.
Figura 4. Opciones que no se ven a simple vista.
Algunos ejemplos de cómo utilizar la herramienta
Figura 5. Ejemplos de la utilización crunch
Ahora debemos de ver cómo funciona la herramienta.
# crunch 7 7
–t p@ss,%^ -l a@aaaaa –o /root/Escritorio/dic.txt
Que hace esto, bueno le pedimos a crunch que generé una lista de
palabras 7 de 7, con la opción -t especificamos un patrón, la (,) inserta
caracteres en mayúsculas, el (%) inserta números, el (^) inserta símbolos.
La opción –l son los marcadores de posición del patrón de la longitud
que debe tener la opción –t, la (@) es un carácter literal y no es remplazado
con una letra mayúscula, la (a) significa caracteres.
La opción –o, especificamos donde está el archivo creado
Figura 6, Generando lista de palabras con crunch.
Ahora vamos a visualizar paso a paso la lista de palabras generalas
con crunch.
Figura 7. Visualizando el archivo generado dic.txt
Cewl
Ahora le toca la segunda herramienta cewl, que al igual que la primera viene incluida en kali Linux.
La herramienta cewl tiene funciones parecidas a John the Ripper
(escrita en ruby), funciona con la URL que le proporcione, busca cada palabra
que tenga la posibilidad de ser una contraseña, con todas estas palabras genera
una lista para ser utilizada en un diccionario de ataque.
Figura 8, herramienta cewl.
En esta parte utilizaremos la herramienta cewl con el comando:
# cewl -w wordsaiiut.txt
xxxxxx.xxxxxxx.edu.mx
# cat wordsaiiut.txt | more
Figura 9. Utilizando la herramienta y visualizando.
Hasta esta parte todo es muy bonito, porque estas herramientas están
cargadas en kali Linux, ahora vamos a utilizar repositorios de proyectos
que tienen a crecer en un futuro.
Cupp
La tercera herramienta es Cupp
(escrita en python), es personalizada para cracking de password, se centra
en la debilidad de un patrón (fechas de nacimiento, fecha de aniversario,
nombre de mascota, etc.), ayuda a craquear password de manera eficaz, nos pide
información requerida sobre su destino, crea la lista de palabras según la
información proporcionada.
Lo primero que aremos es copiar el repositorio a nuestro equipo local.
Figura 10. Repositorio de github para cupp.
El siguiente paso es entrar a la carpeta de nuestra máquina local de
cupp y ejecutar la herramienta.
# cd cupp/
# ./cupp.py -i
Figura 11. Entrando a la carpeta de cupp
Ahora una vez inicializado la herramienta, nos preguntará la
información sobre su objetivo como se muestra a continuación.
Figura 12. Ejecutando la herramienta cupp.
Visualizamos el contenido de la carpeta cupp, y vemos que se creó un
archivo llamado rene.txt.
# ls -l
Posteriormente los visualizamos con el siguiente comando y que lo
muestre pantalla a pantalla.
# cat rene.txt | more
Figura 13. Visualización del archivo rene.txt.
Pydictor
La cuarta herramienta del día es pydictor
(escrita en python), crea una lista de palabras tanto normales como en
cifrado base64, aunque sabemos que existen personas que están paranoicas en la
seguridad, esta nos ayudará a nuestro cometido. Utiliza dos métodos para romper
password, una crea una lista de palabras normales y la otra crea la lista de
palabras en formato base64.
Ahora empecemos, descargamos del repositorio de github con el
siguiente comando:
Figura 14. Repositorio de github para pydictor.
Entramos a la capeta de pydictor y visualizamos el contenido de la
carpeta.
# ls –l
# cd pydictor
# ls -l
Figura 15. Visualización dela carpeta de pydictor.
Ahora debemos de cambiar los permisos para que podemos ejecutar la
herramienta.
# chmod 755 pydictor.py
# Python pydictor.py
Figura 16. Opciones de la herramienta pydictor.
Use d(Digital), L (Letra minúsculas), c (Letra mayúscula), que genera
la lista de palabras.
Figura 17. Generando lista de las palabras.
Después visualizamos el contenido con el comando:
# cat password.txt | more
Figura 18. Visualización del contenido del archivo password.txt
Debemos de generar lista de palabras con encode md5, como se muestra a
continuación
# Python pydictor
–chuck abc ABC 666 . _ @ “’” --head a –encode md5 –o
/root/Escritorio/password2.txt
Figura 19. Generando una lista de palabras con encode md5
Ahora debemos de visualizar el contenido con el comando:
# cat password2.txt | more
Figura 20. Visualización de la encode md5.
Dymerge
Otra herramienta que merece hablar de ella, generación de diccionarios
de ataque es Dymerge (otras más en
python), toma los múltiples diccionarios creados anteriormente y los
fusiona en un único diccionario de ataque, por lo que todos los diccionarios se
pueden utilizar en una sola vez, podría combinar cualquier número de
diccionario de ataque.
Primer paso debemos de descargar del repositorio de github la
herramienta.
# git clone https://github.com/k4m4/dymerge.git
Figura 21. Instalando la herramienta dymerge desde github.
Paso dos, mostramos el contenido y después entramos a la carpeta de
dymerge como se muestra a continuación.
Figura 22. Entrar a la carpeta de dymerge.
Ahora mostráramos las opciones que tiene la herramienta
Figura 23. Opciones de la herramienta dymerge.
Que vamos hacer ahora, es unir todos los diccionarios de ataque de
realizamos con las otras herramientas y las unimos para hacer un único
diccionario para ellos vamos hacer los siguiente:
Uniremos dic.txt, wordsaiiut.txt, password.txt password2.txt
La opción –s ordenado alfabéticamente en su salida
La opción –u significa remover duplicados en el diccionario.
La opción –o significa nombre del archivo de salida.
# Python dymerge.py
../dic.txt ../wordsaiiut.txt ../password.txt ../password2.txt –s –u –o todoenuno.txt
Figura 24. Generando el diccionario todoenuno.txt
Ahora mostraremos el contenido del diccionario todoenuno.txt
Figura 25. Visualizar el contenido del diccionario.
Ahora nos corresponde en hablar de una herramienta que acaba de salir hace
unos días.
Lama
Al igual de las otras herramientas para generar diccionarios de ataque
Lama, obtienen diccionarios de password
personalizados para un objetivo en particular (físico o moral), es importante
que las palabras en esta lista correspondan correctamente al objetivo.
Hay que tener en cuenta que Lama genera password simples y no
complejos, su objeto es ser rápido y especifico en lugar de lento y exhaustivo.
Primero que nada, debemos que de descargo del repositorio de github
con el siguiente comando:
# git clone https://github.com/tamtam/lama.git
Figura 26. Instalando lama del repositorio de github.
A una vez descargado empezamos, entramos a la carpeta de lama y
visualizamos el contenido
# cd lama
# ls -l
Figura 27. Visualizando el contenido de la herramienta lama.
Debemos de aplicar el siguiente comando para funciona la herramienta
lama.
# make
Figura 28. Cargamos los archivos de configuración de lama.
Ahora utilizamos el siguiente comando para instalar los archivos y la
herramienta pueda funcionar adecuadamente.
# make install
Al visualizar la carpeta ya aparece lama como ejecutable.
Figura 29. Ya tenemos la herramienta lama para que funcione.
Debemos de visualizar las opciones que contiene la herramienta lama.
# lama -h
Figura 30. Visualizamos las opciones de lama.
Ahora debemos de crear un archivo con el objetivo a atacar para este
ejemplo utilizaremos a alice.
# nano alice.lst
Creamos las posibles palabras.
Figura 31. Creación del archivo objetivo alice.lst.
Nota. Debemos de insertar
el pipe (|) porque si no funciona el archivo y nos marcara violación de
segmento.
Figura 32. Contenido del archivo alice.lst.
Debemos de contar cuantos renglones tiene nuestro archivo para ello
usaremos el comando:
# wc – l alice-lst
Ahora generamos el diccionario de ataque con el objetivo en específico.
# lama 1 4 alicelst –ncCyh > dico
La opción –n imprime el password sin trasformación.
La opción –c imprime el password con la primera letra en mayúsculas,
siempre que sea letra.
La opción –C imprime el password en la primera letra en mayúscula para
cada palabra si es una letra.
La opción –y forzar la respuesta a verdadera antes de generar
password, debe ser cuidadoso porque lama genera el password inclusive si no hay
suficiente espacio en disco local.
La opción –h muestra la información de salida como formato legible
para el ser humano, también el tamaño de salida aproximado.
Después contamos el tamaño de renglones que tiene el archivo dico.
Figura 33. Ejecutando la herramienta lama.
Solo nos falta ver el contenido del archivo dico.
# cat dico | more
Y los visualizamos pantalla a pantalla.
Figura 34. Visualización del archivo dico.
Diccionarios de ataque son unas herramientas que podemos llevarla en
la mochila del pentester.
Felices hacking
Y gracias a chock morris por dejarme escribir este post.
Autor: remarh
Comentarios
Publicar un comentario