Creazione di un elenco di parole che conosce i parametri

1

Devo rompere la mia password del router. Il vantaggio è che conosco i possibili caratteri e la lunghezza massima.

Quello di cui ho bisogno è creare un dizionario. Il dizionario dovrebbe contenere tutte le combinazioni di personaggi che scelgo. So che la lunghezza massima è di 8 caratteri, e ogni carattere può essere ([A-Za-z0-9]).

Come posso farlo?

    
posta Cornul11 22.01.2017 - 20:08
fonte

3 risposte

5

Bene, non vedo perché è necessario creare un dizionario. Potresti semplicemente generare le combinazioni di lettere durante l'esecuzione del programma. Non c'è bisogno di generare tutte le combinazioni in anticipo.

Come per generare ogni combinazione, il tuo alfabeto ha 62 caratteri al suo interno. Quindi, il numero di combinazioni fino a 8 caratteri di lunghezza, con almeno un carattere è:

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

Questo significa circa 222 trilioni di combinazioni. Quindi, è necessario acquistare circa 200 terabyte di dischi rigidi per memorizzare il dizionario. Sei sicuro di volerlo fare?

Inoltre, se si riuscisse a generare e scrivere su disco 1 miliardo di combinazioni al secondo, sarebbero necessari 479 anni per scrivere tutte le combinazioni, quindi è necessario che i discendenti continuino il progetto dopo la trasmissione.

    
risposta data 22.01.2017 - 20:22
fonte
0

È abbastanza facile programmarlo da solo; ecco un'implementazione in 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))

Come sottolinea Tyler Durden, tuttavia, farlo direttamente è impossibile a causa della quantità di spazio su disco che consumerà.

Un approccio migliore sarebbe quello di non memorizzare un dizionario su disco, ma provare queste password candidate mentre le si genera. Tuttavia, non è ancora un granché: se devi passare attraverso tutte le possibili 222 trilioni di combinazioni, ci vorrà molto tempo (diciamo 10 secondi? È a qualche volta in più rispetto al tempo trascorso dall'ultima era glaciale ).

Se è il tuo router, premi il pulsante di ripristino.

    
risposta data 22.01.2017 - 20:30
fonte
-2

Ci sono molti approcci a questo:

  1. Programmazione per avere un elenco di parole del dizionario
  2. Utilizzo dello strumento esistente per creare un dizionario

Per Approccio uno , ti consiglio di usare Python (essendo meno dispendioso in termini di tempo). Puoi usare itertools.permutation Ecco un esempio di codice:

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

Per l'approccio due , puoi utilizzare crunch per creare l'elenco in base alle esigenze:

Codice di esempio:

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

Puoi utilizzare man crunch in Kali Linux per scegliere la sintassi .

In seguito puoi usare Hydra per brute usando il dizionario personalizzato che ti serve.

    
risposta data 22.01.2017 - 20:22
fonte

Leggi altre domande sui tag