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]
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.
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
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
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:
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
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