terça-feira, 18 de abril de 2017

Como criar uma lista de passwords (dicionário) com o Crunch -Passo a passo com exemplos de comandos



Para efectuar ataques a passwords, sejam eles a redes wireless, ataques a paginas webs, servidores, contas administrador, entre outros, muitas vezes são necessários um ficheiro com uma lista de possíveis passwords, sejam elas baseadas em passwords mais comuns (ver aqui o artigo) ou relacionadas já com um alvo especifico.
Para além de tudo mais temos que ter em conta a possível  força da password. recomendo começar com um um dicionário pequeno,  com poucos caracteres e só depois de não se conseguir descobrir a password, começar a inserir números e sinais, e aumentar o numero de caracteres. esse assunto já foi descrito aqui.

Vamos então começar.
A sintaxe do programa é bastante simples para começar:
crunch <mínimo> <máximo>  [opções]



Crunch Exemplos


A nossa primeira lista.
crunch 0 2
Isto irá criar uma lista com todas as possibilidades , neste caso 703 hipóteses, com letras do Alfabeto com um ou dois caracteres.

Crunch Exemplos
Como podem ver é vos apresentada no monitor todas as hipóteses com as opções introduzidas.
Vamos agora especificar os caracteres que queremos na nossa lista, adicionando a seguir ao numero máximo de caracteres por palavra os caracteres pretendidos, sendo aqui o abcd
crunch 0 2 abcd


Aqui, como podem ver, é nos dado um total de 21 hipóteses.

Vamos tentar adicionar outros parâmetros agora.
Será adicionada a opção     -o   ,sendo este parâmetro a letra  o  minúscula e faz com que em vez de serem apresentado no monitor os resultados dos nossos comandos, estes são escritos num ficheiro adicionados pelo parâmetro.
Exemplo:
crunch 4 6 abcdefghijklmnopqrstuvwxyz -o /root/Desktop/dicionario.txt


Como podem ver a nossa lista aumentou substancialmente visto termos aumentado o numero de caracteres ,  entre 4  a  6 por palavra, e termos escolhido todo o alfabeto minúsculo
Assim a nossa lista está na pasta do nosso Desktop, foi para lá que indicamos com o  /root/Desktop/dicionario.txt
Mais opções :
Para indicar se o ficheiro será dividido por tamanho o parâmetro é o -b  e só funciona se for passado com juntamente com o parâmetro    -o e se o nome do ficheiro for START
O ficheiro ficará com o nome da primeira e última palavra de cada um. Atenção que 1mb como no exemplo é valido mas 1 mb (com um espaço no meio) já não o é.
É possivel passar o tamanho desejado através de :  kb, mb, gb, kib, mib e gib en que os três primeiros regulação a 1000 de diferença entre cada um e os três últimos nos 1024.
o exemplo dado vai criar muitos, mas muitos ficheiros, já que era esse o objectivo neste exemplo, aconselho a mudar o tamanho.
crunch 4 6 abcdefghijklmnopqrstuvwxyz -o /root/Desktop/START -b 1mb




Outra opção para dividir os ficheiros é o parâmetro -c  que permite especificar com quantas linhas dividimos por ficheiro. Mais uma vez só funciona se for passado com juntamente com o parâmetro    -o  e se o nome do ficheiro for START.
Neste exemplo a nossa lista será dividida por vários ficheiros com 5000 combinações cada ficheiro.
 crunch 4 6 abcdefghijklmnopqrstuvwxyz -o /root/Desktop/START -c 5000

A opção -d  limita numero de caracteres duplicados.
A sua forma é ‘-d <numero de repetições><Tipo de repetições>  . Os tipos de repetições que é aceite são. @,%^
Este exemplo irá fazer com que seja evitado a repetição de mais de duas letras por palavra, dai se utilizar o 2 a seguir ao -d e o @ pois este significa letras.
crunch  2 4 abcdef -d 2@
Veja na imagem seguinte a redução do tamanho na execução de duas listas, uma com o parametro -d 2@ e outro sem.



O parâmetro -e  especifica se a execução deve parar antes do seu final.
O exemplo seguinte irá fazer com que a lista pare ao encontrar na lista bbbb.
Mais uma vez a lista é bastante mais reduzida do que a senão tivéssemos dado o parâmetro -e .
crunch 2 4 abcdef -e bbbb

crunch parametros

O parametro -f é dos que mais nos poupa trabalho. É possível criar ou indicar um dos já inseridos  conjuntos de caracteres para que seja mais fácil e rápido a criação de listas.
A seguir ao comando -f deve ser introduzido o caminho para a lista   charset.lst e consequentemente o nome do nome do charset.
Pode parecer confuso mas torna-se simples assim que verem o ficheiro charset.lst, este por defeito encontra-se no kali em
/usr/share/crunch/charset.lst
Mas senão o encontrarem ou tiverem outro sistema façam uma procura:
locate  charset.lst
Abram agora esse ficheiro, e o que vos parece é um conjunto de caracteres pré concebidos que irá ser de grande ajuda. Com base nesse ficheiro podem edita-lo, criar novos conjuntos ou utilizar os que ai estão.
A sua execução é dada através da seguinte sintaxe:
-f /caminho/para/o/ficheiro/charset.lst nome_do_conjunto
Vamos então usar o conjunto lalpha-space  que é o abcedario de A-Z em letra minúscula mais o espaço ( ).
crunch 0 2 -f /usr/share/crunch/charset.lst lalpha-space
E aproveitamos e salvamos logo através do parâmetro -o num ficheiro no nosso computador.
crunch 0 2 -f /usr/share/crunch/charset.lst lalpha-space -o /root/Desktop/dicionario_a_z_.txt

crunch charset

O parâmetro -i inverte a ordem de saída da palavra e não da lista..
crunch 0 4 ABCD -i
Vamos então ver a diferença.
Foram criados dois ficheiros com o crunch, com os mesmo numero de caracters e lista mas um invertido:
crunch 0 4 ABCD -o /root/Desktop/normal.txt
crunch 0 4 ABCD -i -o /root/Desktop/invertido.txt
Veja a diferença entre os ficheiros, a partir da linha 7:


O parâmetro -p  permite misturar, sem repetir caracteres ou conjunto de caracteres . Util quando sabemos que a password é composta por algumas palavras mas não sabemos a ordem.  Usando este parâmetro embora seja obrigatório a introdução de o máximo e mínimo de caracteres estes deixam de ter importância.
crunch 0 0 -p cao gato passaro
Vai nos dar 6 hipóteses,
caogatopassaro
caopassarogato
gatocaopassaro
gatopassarocao
passarocaogato
passarogatocao
Se quiséssemos com um espaço entre elas, teríamos que acrescentar uma barra invertida e outro espaço para dizer ao programa que aquele espaço faz parte da palavra:
crunch 0 0 -p cao\  gato\  passaro\
Diferença:

crunch lista de palavras

O comando –q é igual ao parâmetro –p, a diferença é com o -q a lista de palavras vem de um ficheiro de texto.
crunch 0 0 -q /caminho/do/ficheiro

O comando -r  diz ao programa para continuar a criar a lista de onde ficou se esta tiver sido interrompida. Deverá ser utilizado  a expressão original mais o parâmetro -r. Se tiver sido utilizado o parametro –s, este tem que ser removido.

O comando -s indica de onde deve começar a lista.
Assim a nossa lista começa do ABCDE e tudo o que fosse anterior a isso não é criado
crunch 2 4  ABCDEF -s ABCDE


crunch começo da lista

Um dos melhores comandos é o -t pois é possível inserir uma patente e modifica-la como entendermos. Sabemos que uma password é composta de um nome, neste caso Patricia mas de seguida é inserido 6 dígitos que não sabemos.
A patente é
Patricia%%%%%%
Complicado? Passo a explicar, cada % representa um lugar que será tomado por um número. Assim sabendo que são seis numero introduzi seis símbolos de percentagem (%). O símbolo é sempre alterado por um numero.
Exemplo:
crunch 14 14  -t Patricia%%%%%%
Vai nos dar todas as opções de palavras que comecem com Patricia e seja seguido de 6 números.
Os caracteres especiais, neste caso que podem ser utilizados com o parâmetro -t são os seguintes:
@   Irá ser substituído por letras minúsculas
,   Irá ser substituído por letras maiúsculas 
%   Irá ser substituído por números
^   Irá ser substituído por símbolos

Se soubéssemos que afinal eram 5 números seguidos a Patricia  e um símbolo no fim seria:
crunch 14 14  -t Patricia%%%%%^
Ou se houvesse 2 letras minúsculas  antes de Patricia seria:
crunch 10 10  -t @@Patricia

O comando -z permite que os resultados do parâmetro -o (o tal que permite guardar os resultados no pc) sejam comprimidos. Os parâmetros validos são: gzip, bzip2, lzma, e 7z

O comando –l permite quando se utiliza o comando -t (o tal das patentes),  que se utilize os tais símbolos especiais numa patente. Se:
crunch 10 10  -t @@Patricia
Irá criar  uma lista com duas letras minúsculas  seguidos de Patricia, com a opção -l  permite que o símbolo @ seja utilizado na lista. O parâmetro -l tem que ter o mesmo numero de caracteres  que o -t.
Não interessa o que se introduz para ficar com o mesmo numero de caracteres, foi utilizado no exemplo a letra a, mas pode ser utilizado qualquer coisa letra, apenas não pode ser utilizado os simbolos especiais, pois isso indica que devem ser utilizados na lista.
crunch 10 10  -t @@Patricia -l @aaaaaaaaa

Nenhum comentário:

Postar um comentário