Descarga tu guía de trucos informáticos aquí
Crear Diccionarios para Fuerza Bruta
Crear Diccionarios para Fuerza Bruta

5 Formas de Crear Diccionario para Fuerza Bruta

Así es cómo puedes crear tus propios diccionarios de contraseñas para ataques de fuerza bruta, un método comúnmente utilizado en el hacking.

Los hackers usan tres métodos comunes para conseguir las contraseñas de un objetivo:
Fuerza Bruta (Brute Force), Ingeniería Social (phishing) y Puertas traseras del administrador (BackDoors). A continuación, veremos algunos trucos para crear diccionarios para fuerza bruta.

Como te habrás dado cuenta, en el mundo de la tecnología todo está protegido por contraseña. Hay muchas maneras de romper la contraseña como la ingeniería social, método de prueba y error, etc, pero sólo dos métodos son los más exitosos del cracking de contraseña, es decir, Ataque de diccionario y Ataque de fuerza bruta. Ambos tienen ventajas y desventajas. Y en el artículo de hoy nos centraremos en el ataque de diccionario, ya que viene práctico y es el mejor método para romper una contraseña.

1. Ataque de Diccionario

El ataque de diccionario es un intento de entrada en un sistema digital que utiliza una lista de contraseñas posibles, probando de uno a la vez. Básicamente, es una forma evolucionada y avanzada del método de prueba y error, ya que trae resultados rápidos y eficientes.

También se le asocia al ataque de fuerza bruta. El término “fuerza bruta” significa vencer la defensa mediante la repetición e implica el uso del diccionario que recombina palabras con miles de combinaciones diferentes.

2. Formas de Crear Diccionarios para Fuerza Bruta

Estos diccionarios de fuerza bruta pueden probar entre 50 a 1000 intentos por minuto. Dadas varias horas o días, estas herramientas de diccionario superarán cualquier contraseña. El truco es hacer que tarde varios días en descifrar su contraseña.

Estoy seguro de que hay muchas maneras de crear un ataque de diccionario, pero voy a proporcionarte las cinco mejores.

2.1. Crunch

El primero es Crunch. Lo mejor de crunch es que puedes usarlo tanto en línea como sin conexión. Genera lista de palabras de acuerdo a sus necesidades. Puede dar la longitud máxima y mínima de la contraseña y también proporcionarle un conjunto de caracteres que desea utilizar al crear su diccionario. Crunch le creará un diccionario, manteniendo sus necesidades como prioridad. Finalmente, creará un diccionario con todas las combinaciones posibles.

Ahora vamos a ver cómo usarlo. Observe primero su sintaxis:

crunch <min> <max> <conjunto-de-caracteres> -t <patrón> -o <ruta>
  • Crunch o crunch: Es la palabra clave que notifica al sistema para usar esta herramienta.
  • <min>: Especifica la longitud mínima de los caracteres que desea.
  • <max> Especifica la longitud máxima de los caracteres.
  • <conjunto-de-caracteres>: Se especifican los caracteres que desea utilizar al crear el diccionario.
  • -t <patrón>: Es opcional, pero aquí puedes especificar un patrón para tu conjunto de caracteres.
  • -o <ruta>: Aquí se proporciona la ruta donde se quiere guardar el archivo de diccionario.

Por ejemplo, abra la terminal de Kali y escriba:

crunch 3 4 administrador –o /root/Escritorio/dic.txt

Ahora, el comando anterior creará un diccionario con las posibles combinaciones de la palabra administrador que tendrá una longitud de 3 a 4 caracteres. El archivo se guardará en formato de texto en el Escritorio. Similar a como se muestra en la siguiente imagen:

Ataque Diccionario con crunch
Ataque Diccionario con crunch

A continuación, vamos a leer el archivo dic.txt  y para ello tipeamos:

cat dic.txt

Todas las palabras se mostrarán de la siguiente manera:

Ver Diccionario con crunch
Ver Diccionario con crunch

2.2. Cewl

La siguiente manera es mediante el uso de Cewl. Ahora Cewl funciona parecido a John The Ripper y está escrito en Ruby. Si dirige el objetivo al sector corporativo o del mundo de los negocios; esta es la herramienta para usted. Cewl funciona con la URL que usted le proporciona. Tomará esa URL y rastreará su camino hasta la profundidad de 2 enlaces (por defecto, pero puede aumentar o disminuir la profundidad) y buscará cada palabra que tenga la posibilidad de ser una contraseña. Con todas estas palabras generará una lista para ser utilizada en un ataque de diccionario. Observemos su sintaxis:

Cewl <url> -d <depth> -w <ruta>
  • Cewl: Indica la herramienta que se está utilizando.
  • <Url>: Aquí se indica la URL que desea utilizar como base de su diccionario.
  • -d <depth>: Indique el número de enlaces que desea que “profundice” al crear su diccionario.
  • -w <ruta>: Aquí se indica la ruta donde desea almacenar todas las contraseñas posibles.

Por ejemplo, en el terminal de Kali tipeamos lo siguiente:

cewl www.adictec.com -d 2 -w /root/Escritorio/dic2.txt

El comando anterior creará un archivo de diccionario utilizando la palabra de la URL.

Ataque de Diccionario con Cewl
Ataque de Diccionario con Cewl

A continuación, veamos el archivo de diccionario que acaba de crear y para ello tipeamos:

cat dic2.txt

Todas las palabras se mostrarán de la siguiente manera:

Mostrar Diccionario de cewl
Mostrar Diccionario de cewl

2.3. Cupp

Nuestra siguiente manera es usar una herramienta de terceros, es decir, Cupp. Las herramientas anteriores estaban preinstaladas, pero Cupp tendrás que instalarla por tu cuenta. Para instalarlo, escriba:

git clone https://github.com/Mebus/cupp.git
Instalar Cupp en Linux
Instalar Cupp en Linux

CUPP se desarrolla en python y es una herramienta muy personalizada cuando se trata de cracking de contraseñas. Los estudios muestran que al configurar o crear una contraseña, los seres humanos muestran un patrón similar, por ejemplo, tienden a personalizar la contraseña añadiendo su fecha de nacimiento, fecha de aniversario, nombre de la mascota, etc y CUPP se centra en esta debilidad y ayuda a crackear una contraseña de manera eficaz. Antes de crear una lista de palabras, le pedirá información requerida sobre su destino. Y creará la lista de palabras según la información. Ahora, vamos a estudiar cómo funciona paso a paso. Inicie primero cupp escribiendo:

./cupp.py –i

Una vez iniciado, le preguntará la información sobre su objetivo como se muestra en la imagen:

Ataque de Diccionario con cupp
Ataque de Diccionario con cupp

Dé la información requerida y su lista de palabras se generará de la siguiente manera:

Lista de Palabras con cupp
Lista de Palabras con cupp

2.4. Pydictor

La siguiente herramienta para crear un diccionario para Fuerza Bruta es Pydictor. Esta es una herramienta especial ya que es la única herramienta que crea la lista de palabras tanto en palabras normales como en cifrado base64. Así que, si alguien es lo suficientemente inteligente como para mantener una contraseña segura, esta herramienta le ayudará con ello. Pydictor está escrito en Python. Hay dos métodos para romper la contraseña usando esta herramienta: uno crea una lista de palabras normales y el otro crea la lista de palabras en forma base64. Intentaremos ambos métodos. Pero lo primero es lo primero, esta es una herramienta de terceros por lo que tendremos que instalarlo, así que, por favor escriba:

git clone https://github.com/LandGrey/pydictor.git
Instalar Pydictor en Linux
Instalar Pydictor en Linux

Una vez que la herramienta está instalada y lista para usar, tiene que darle instrucciones sobre las bases de lo que quieres que genere la lista de palabras. Comprenda primero la sintaxis:

./pydictor.py –-len <min> <max> -base d –o <ruta>
  • ./pydictor.py: Inicia la herramienta
  • –len: Indica la longitud de los caracteres
  • d: Dígitos (También puede utilizar c para minúsculas y L para mayúsculas, incluso puede combinar todas)
  • <min>: Tiene que proporcionar la longitud mínima de caracteres
  • <max>: Proporcione la longitud máxima de los caracteres
  • -o: Indica la ruta
  • <ruta>: Indica la ruta donde quiere que se guarde su lista de palabras (diccionario)

A continuación, vamos a dar el comando para generar la lista de palabras:

./pydictor.py --len 4 4 -base d -o /root/Escritorio/dic3.txt
Ataque de Diccionario con pydictor
Ataque de Diccionario con pydictor

Vamos a leer el archivo creado, para echar un vistazo a las palabras que ha generado. Para ello tipeamos:

cat dic3.txt
Lista de Palabras con pydictor
Lista de Palabras con pydictor

El otro método que utiliza la herramienta similar nos da la contraseña en la codificación de base64. Estudiemos primero la sintaxis:

./pydictor.py –-len <min> <max> -base d –-encode <tipo-codificación> –o <ruta>
  • ./pydictor.py: Inicia la herramienta
  • –len: Indica la longitud de los caracteres
  • <min>: Es la longitud mínima de caracteres
  • <max>: Es la la longitud máxima de los caracteres
  • –encode: Indica el tipo de cifrado/codificación
  • <tipo-codificación>: Indique el tipo de codificación que desea
  • -o: Indica la ruta
  • <ruta>: Es la ruta donde quiere que se guarde su lista de palabras

Vamos a dar el comando para generar la lista de palabras (wordlist):

./pydictor.py --len 5 5 -base d --encode b64 –o /root/Escritorio/dic4.txt
pydictor con encode base64
pydictor con encode base64

El comando anterior generará un wordlist en base64, a continuación, vamos a echarle un vistazo:

cat dic4.txt
Lista Palabras B64 con Pydictor
Lista Palabras B64 con Pydictor

2.5. Dymerge

La última herramienta de esta lista, para crear diccionario para Fuerza Bruta, es Dymerge. Dymerge es una interesante y potente herramienta escrita en Python. Básicamente, lo que hace dymerge es tomar los múltiples diccionarios creados anteriormente y los fusiona en uno solo, por lo que todos los diccionarios se puede utilizar juntos y probar de una sola vez, mientras usted puede sentarse y relajarse. Puede combinar cualquier número de diccionarios. Esta es otra herramienta de terceros así que vamos a instalarlo primero:

git clone https://github.com/k4m4/dymerge.git
Instalar Dymerge en Linux
Instalar Dymerge en Linux

Vamos a entender su sintaxis:

python dymerge.py <ruta1> <ruta2> -s –o <ruta3>
  • python dymerge.py: Inicia la herramienta
  • <ruta1>: Indique la ruta del primer diccionario que desea combinar
  • <ruta2>: Indique la ruta del segundo diccionario que desea combinar
  • -o: Es la ruta donde se guardará la lista de palabras (diccionario)
  • <ruta3>: Indique la ruta donde se guardará la lista de palabras final

Ahora que hemos entendido la sintaxis vamos a intentar el comando:

python dymerge.py /root/Escritorio/dic.txt /root/Escritorio/dic3.txt –s –o /root/Desktop/dict.txt

Aquí, he tomado dos listas de palabras (también puede tomar más), donde uno contiene el diccionario creado en la sección 2.1. y otro que contiene al diccionario de la sección 2.3. y los fusiona en uno para que pueda utilizar varios diccionarios al mismo tiempo.

Ataque de Diccionario con Dymerge
Ataque de Diccionario con Dymerge

Echemos un vistazo al diccionario que ha creado:

cat  diccionario.txt
Lista de Palabras con Dymerge
Lista de Palabras con Dymerge

Éstas son las cinco maneras de gran alcance y eficaces para crear un diccionario para Fuerza Bruta y romper contraseñas. Disfruta y explora estos métodos tanto para hackear y/o recuperar contraseñas. ¡Que te diviertas! ¡Comparte el artículo! 😉

  1. Hola amigo tengo un problema y es que tengo ubuntu y instale crunch pero no entiedo porque razon no me crea ningun diccionario cuando introdusco el comando me sale que es invalido y si quiero continuar o me dice permiso deneged puedes ayudarme?

  2. Que pasa si la contraseña lleva mayusculas es alfanumerica y caracteres especiales?
    como podria crear este diccionario?
    Ya que veo que todos regresan minusculas.

  3. Hola, una pregunta o mas bien ayuda; Sucede que no soy programador, solo hago Audiovisual y Diseño Digital, la cosa es que pase 5 meses haciendo todo el aspecto vidual de una pagina y luego cargándolo y ajustándolo a la plantilla del WordPress y luego que termino el trabajo el cliente Muy Hijo de P&%#$# cambia la clave del usuario y ahora no me responde las llamadas y lógico no me ha pagado, solo me escribió un msj y me dijo que si quería y podía le pusiera su pagina como estaba antes y bueno básicamente eso es lo que quiero hacer como medida de presión para que me pague o en su defecto pierdo el dinero pero al menos no se queda con mi trabajo.
    ¿Que me recomiendas? Gracias…

    1. Hola Jorkar, lamento lo sucedido…

      Pues haz cometido un grave error. Puedes asustarlo con que hackearás su sitio web o le enviarás spam hasta más no poder. O un ataque DDOS que ralentizará su web :v… más otra cosa que puedas hacer pues no u.u

      1. Solo te queda un camino, aguantarte y aprender para la próxima, si se te ocurre hacer alguno de los disparates que te aconseja el isto éste de Alexynior acabarás con un multazo o preso., incluso a él le puede costar un disgusto el consejo. Por otra parte el escritor del artículo no tiene ni idea de lo que está escribiendo, con una gráfica del montón puedes probar 70000 claves POR SEGUNDO sin muchas complicaciones, con los programs apropiados para ello, que no son desde luego los que cita, zapatero a tus zapatos.

  4. Hola soy programador fullstacks. He hecho lading page en wordpress y siempre por seguridad he usado passwords de 128 carácteres incluyendo espacios, carácteres especiales, minúsculas mayúsculas, tíldes etc. Veo que hacer un diccionario de 10 dígitos que puede hacerse en todas las 255 combinaciones tenemos un 10 a la 255. A la velocidad de 1000 x segundo tomaría cerca de 24 años.

    Por ahora me ha ido bien en los sitios que he publicado y nunca he tenido ataques.

    Pero ya viendo esta serie de post. ¿Qué tipo de clave recomendarías para dar mayor nivel de protección sin necesariamente ser tantos dígitos?

    Por ahora programé en Node un lector de huellas y generará una clave única por persona con su huella digital. De este modo evito que mis clientes tengan que memorizar claves pero deben comprar el lector de huellas xD.

    1. Hola Camilo!

      Lo recomendado es entre 12 y 15. Puedes usar gestores de contraseña. Para claves con menos dígitos sería cuestión de implementar políticas y actualizar cada cierto tiempo.

      Lo que has hecho me parece interesante 🤔. Creo que mientras menos intervenga el usuario (por ejemplo, solo colocar su dedo en lugar de crear y memorizar clave),hay mayor seguridad. Un saludo!

  5. Hola compañero,

    Necesito crear un diccionario de 8 dígitos, de los cuales 6 alfabéticos lower case y 2 numéricos. Esto debe ser estático, siempre debe haber 6 alfabéticos y 2 numéricos.
    Ej. sfg4fh1d, 3tfds7xs,tshb19gc, vcbsas43, etc
    Como veras siempre hay dos números y en posición aleatoria.
    Lo he intentado con crunch (me leí toda la man pages) y no doy con una solución.
    Te agradecería si me das una mano, orientándome sobre si existe una forma.

      1. El primer comando me crearía un diccionario donde los primeros 6 dígitos son alfabéticos y los 2 últimos numéricos. Y el segundo uno cuyo primer dígito seria alfabético, los 2 segundos numéricos y los cinco restantes alfabéticos.
        Lo que yo necesito es que esos dos dígitos numéricos, siempre sean 2 y recorran todo el diccionario, ahí radica la dificultad

        De todas maneras, muchas gracias por tomarte el tiempo de contestar.

        1. Claro, la complejidad radica en que si permutas, la cantidad es abrumadora. Incluso si seleccionas una cantidad, digamos 10,000 <- no sería de mucha ayuda ya que al final de cuentas no estás utilizando todas las probabilidades posibles...

  6. ¡Hola, que tal! Espero y me puedas responder lo siguiente.

    Estoy usando crunch, soy muy nuevo en esto pero mi idea es la siguiente:

    Quiero crear un diccionario en el cual pueda elegir que caracteres utilizar por cada espacio, yo se que se puede hacer algo como:

    crunch 8 8 -t ,,,,,%%%

    Y de esta forma me crearía un diccionario con letras mayúsculas y los últimos caracteres serían números, sin embargo, yo no quiero usar todo el abecedario, solo requiero: ABCDEF. Es decir, que los primeros 5 caracteres sea un azar entre las letras ya mencionadas y los últimos 3 sean números al azar.

    Se que haciendo esto: crunch 8 8 ABCDEF0123456789 sería una opción cercana, pero no es lo que busco. O bien hacer esto
    crunch 8 8 ABCDEF0123456789 -t @@@@@@@@ Lo cual me da el mismo resultado, pero lo que yo quisiera es algo así.

    crunch 8 8 -t @@@@@%%% En donde el @ solo arrojé A,B,C,D,E,F y el % me arroje solo números.

    He pensado que si pudiera modificar el codigo fuente podría cambiar los valores por default del @ a las letras que yo desee, pero no se como, Ya que modificando esos valores se podría solucinar mi problema.

  7. Que tal amigo, Algún diccionario o de que manera me recomiendas hacer un diccionario solo del alfabeto en español donde pueda utilizar Letras, numeros y signos especials ejemplo: Ramon572@. Un saludos

  8. hola alex necesito ayuda quiero crear algunos dicionario y mi duda es como hacer q me lea todos o si ahi algun comando para conbinar todos los quiera usar. gracias por tu tiempo

  9. Buenos dias amigo , tengo un problema cuando creo o coloco la sintaxis del pydictor me lanza un error me dice
    pydictor: permiso denegado
    esto pasa tambien en crunch y lo he probado de muchas maneras hasta cambie la ruta haber si ese era el problema pero tampoco lo estoy haciendo desde kali linux

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Más artículos
Cómo desinstalar software desde línea de comandos en Linux
Cómo desinstalar software desde línea de comandos en Linux