Creando una lista de palabras conociendo parámetros

1

Necesito descifrar mi propia contraseña de enrutador. La ventaja es que conozco los posibles caracteres y la longitud máxima.

Lo que necesito es crear un diccionario. El diccionario debe contener todos los combos de caracteres que elijo. Sé que la longitud máxima es de 8 caracteres, y cada carácter puede ser ([A-Za-z0-9]).

¿Cómo puedo hacer eso?

    
pregunta Cornul11 22.01.2017 - 20:08
fuente

3 respuestas

5

Bueno, no veo por qué necesitas crear un diccionario. Podría simplemente generar las combinaciones de letras a medida que se ejecuta el programa. No es necesario generar todas las combinaciones antes de tiempo.

En cuanto a generar cada combinación, su alfabeto tiene 62 caracteres. Entonces, el número de combinaciones de hasta 8 caracteres de longitud, que tienen al menos un carácter es:

62 + 62^2 + 62^3 + 62^4 + 62^5 + 62^6+ 62^7 + 62^8 = 221,919,451,578,090

Eso es alrededor de 222 trillones de combinaciones. Por lo tanto, tendría que comprar unos 200 discos duros de terabyte para almacenar su diccionario. ¿Estás seguro de que quieres hacer eso?

Además, si pudiera generar y escribir en el disco 1 mil millones de combinaciones por segundo, se necesitarían 479 años para escribir todas las combinaciones, por lo que tendría que hacer que sus descendientes continúen con el proyecto después de que haya pasado.

    
respondido por el Tyler Durden 22.01.2017 - 20:22
fuente
0

Es bastante fácil programar esto usted mismo; Aquí hay una implementación en Python:

#!/usr/bin/env python3

import itertools
import string

candidate_characters = list(string.ascii_letters + string.digits)
for password_length in range(1, 9):
    for candidate_password in \
            itertools.permutations(candidate_characters, password_length):
        print(''.join(candidate_password))

Sin embargo, como señala Tyler Durden, no es factible hacerlo directamente debido a la cantidad de espacio en disco que consumirá.

Un mejor enfoque sería no almacenar un diccionario en el disco, pero intente estas contraseñas candidatas a medida que las genere. Sin embargo, todavía no es una buena idea: si tiene que pasar por todas las combinaciones posibles de 222 billones, eso va a tomar mucho tiempo (digamos, 10 por segundo? Eso es algunas veces más que el tiempo transcurrido desde la última glaciación ).

Si es su propio enrutador, simplemente presione el botón de reinicio.

    
respondido por el Xiong Chiamiov 22.01.2017 - 20:30
fuente
-2

Hay muchos enfoques para esto:

  1. Programación para tener una lista de palabras del diccionario
  2. Usar la herramienta existente para crear un diccionario

Para el Enfoque uno , recomendaría usar Python (ya que consume menos tiempo). Puede usar itertools.permutation Aquí hay un código de ejemplo:

import itertools
res = itertools.permutations('abc',3) # 3 is the length of your result.
for i in res: 
   print ''.join(i)

Para el Enfoque dos , puede usar contracción para crear la lista según las necesidades:

Código de muestra:

crunch 8 8 -f /usr/share/rainbowcrack/charset.txt mixalpha -o /root/alphawordlist.lst

Puede usar man crunch en Kali Linux para optar por la sintaxis .

Más tarde, puede usar Hydra para utilizar el diccionario personalizado que necesita.

    
respondido por el Shritam Bhowmick 22.01.2017 - 20:22
fuente

Lea otras preguntas en las etiquetas