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 cargada 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.
# git clone https://github.com/Mebus/cupp.git
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:
# git clone https://github.com/LandGrey/pydictor.git
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
.
Autor: remarh


































Comentarios
Publicar un comentario