terça-feira, 9 de abril de 2013

Como criar uma wordlist ou dicionário de palavras para utilizar em ataques brute force detalhamento dos códigos e outras informações

Veja como criar um arquivo wordlist ou dicionário de dados (arquivo com possíveis senhas) de modo fácil no back track linux utilizando o software crunch. Veja o vídeo abaixo:



Veja abaixo como criar o seu wordlist

Método 1 - Gerando sua wordlist simples

vamos gerar uma wordlist com strings de no mínimo 4 e no máximo 6 números:
Abra o Shell do backtrack
cd /pentest/passwords/crunch/
./crunch 4 6 1234567890 -o /root/numerica6-8.txt

Será gerado um arquivo numerica6-8.txt no diretório /root (na área de trabalho do backtrack4) com todas as combinações possíveis de acordo com os parâmetros que passamos para o crunch. O arquivo fica assim;
120347
120348
120349
120350

Gerar uma wordlist de palavras começando com “maria” seguidas de 4 números:
# /pentest/passwords/crunch/crunch 9 9 1234567890 -t maria@@@@ -o /tmp/wordlist-maria.txtAssim, você terá resultados como os seguintes:
maria0070
maria0000
maria9091
maria0113
O “@” marca os lugares que serão substituídos pelos caracteres indicados na linha de comando. Portanto, você pode colocá-los em qualquer lugar da string. Por exemplo, @@maria modificaria apenas os dois primeiros caracteres e adicionaria “maria” ao final, gerando senhas como:
12maria
AAmaria
A3maria
u9maria
Dependendo dos caracteres que você passou para o crunch como parâmetro.


Método 2 - Gerando senhas complexas com o charset.lst

Arquivo charset.lst

O arquivo charset.lst (fornecido junto com o crunch no backtrack4) tem o objetivo de facilitar a sua vida oferecendo listas de caracteres pré-definidas, assim você não precisa especificar todos os caracteres que deseja utilizar na sua wordlist na mão. Basta especificar o nome no arquivo charset.lst. Alguns dos conjuntos de caracteres oferecidos pelo charset.lst são:

lalpha: apenas letras minúsculas;
ualpha: apenas letras maiúsculas;
lalpha-numeric: letras minúsculas e números;
ualpha-numeric: letras maiúsculas e números;
lalpha-numeric-all-space: letras minúsculas, números e caracteres especiais como ?, ;, :, espaço, etc.;
ualpha-numeric-all-space: letras maiúsculas, números e caracteres especiais como ?, ;, :, espaço, etc.;
mixalpha: letras minúsculas e maiúsculas;
mixalpha-numeric-all-space: letras maiúsculas, minúsculas, números, caracteres especiais e espaço. 


Existem mais alguns conjuntos pré-definidos, basta dar um “cat charset.lst” que todas as listas e os caracteres que elas englobam serão exibidos para você. Para utilizar algum conjunto pré-definido pelo charset.lst, a linha de comando ficaria assim:

# /pentest/passwords/crunch/crunch 4 8 -f charset.lst mixalpha -o /root/lista-com-charset.txt

Este comando gerará uma wordlist de no mínimo 4 caracteres, no máximo 8, irá utilizar o conjunto de caracteres mixalpha (letras maiúsculas e minúsculas) e escreverá todo o resultado no arquivo /root/lista-com-charset.txt. Você também pode utilizar os “@” com o charset.lst. Ficaria assim:


# /pentest/passwords/crunch/crunch 8 8 -f charset.lst mixalpha-numeric-all-space -t @@abc@@@ -o /root/wordlist-gigante.txt

O comando acima irá gerar palavras de 8 caracteres, combinando abc com qualquer outro caractere possível e irá escrever o resultado no arquivo /root/wordlist-gigante.txt. Gerar uma lista dessa poderá demorar bastante, dependendo da máquina que você está usando (também irá ocupar um espaço considerável no disco).

Outras opções do crunch

Além das opções que já foram citadas nos parágrafos anteriores, você ainda pode utilizar as seguintes:


-s: permite que você defina em qual string o crunch irá começar a gerar senhas; 
-c : define quantos resultados serão escritos no arquivo de saída (só funciona se você utilizar a opção -o START) 

Além disso, definir os caracteres na mão (diretamente na linha de comando) não é obrigatório. Se você não definir quais caracteres deverão ser utilizados para gerar as strings, o crunch irá assumir “abcdefghijklmnopqrstuvwxyz” como os caracteres que participação da geração de senhas.


Criando um dicionário de todas as combinações de 4 digítos possível que contém letras maiúsculas, minúsculas, números, caracteres especiais e espaço. 

cd /pentest/passwords/crunch/

./crunch 4 4 -f charset.lst mixalpha-numeric-all-space -o /root/thekingwordlist4-4.txt


Isto gerará em alguns minutos uma wordlist de mais ou menos 350 megas em txt de todas as combinações possíveis que contém letras maiúsculas, minúsculas, números, caracteres especiais e espaço. Senhas altamente complexas! Agora para gerar uma wordlist de senhas complexas de 10 dígitos, no lugar de 4 4 coloque 10 10, mas vai demorar muito para você fazer e o espaço para isso é absurdo. São muitos gigas, faça o teste, coloque o código acima com 10 10 e verá que não caberã no seu HD!
Para usar esta wordlist para testar senhas de emails e arquivos, use o Hydra ou John the Ripper. Temos o Brutus para windows mas sugiro para testar no linux devido a velocidade.

Conclusão

Se tivermos senhas de 15 a 25 dígitos complexas ou seja que contém letras maiúsculas, minúsculas, números, caracteres especiais e espaço. é quase impossível de quebrar por que para alguém quebrar uma senha de 25 dígitos teria que ter um dicionário com todas as combinações de 25 dígitos, isso ocuparia um espaço de milhares de gigas ou muito mais. É inviável alguém ter um dispositivo de armazenamento tão grande! E ainda demoraria meses quem sabe mais de um ano para finalizar! 

Por isso, devemos usar sempre senhas complexas com 10 dígitos para cima. Minhas senhas geralmente tem 14 a 25 dígitos e são complexas.

Nenhum comentário:

Postar um comentário