Uma wordlist é um “componente” básico para que se possa efetuar ataques do tipo “brute force“, onde várias combinações de letras, números e caracteres especiais são testados na tentativa de se descobrir a senha de um determinado usuário.
Mas, onde conseguir uma wordlist para auditar as senhas dos seus usuários (usando um programa como o John The Ripper, por exemplo) ou mesmo verificar se o seu roteador Cisco ou seu servidor FTP estão utilizando senhas fortes (usando o THC-Hydra)?
Existem várias wordlists que você pode encontrar online (como as do projeto http://wordlist.sourceforge.net), mas e se você quiser apenas senhas com no mínimo 5 caracteres, no máximo 8 e apenas números? E se você souber que a senha começa com a string “maria” seguida por 4 números? Aqui vou te mostrar como gerar uma wordlist para suprir as suas necessidades utilizando o programa Crunch.
Para tarefas relacionadas à segurança, eu costumo sempre usar o BackTrack 4 (versão mais recente enquanto escrevo este artigo) rodando em uma máquina virtual no VirtualBox. Nesta distribuição, o crunch está localizado em /pentest/password/crunch. Porém, se você não gosta ou não quer utilizar o BackTrack, você pode instalar o crunch em qualquer distribuição Linux. Para isso, acesse o site http://sourceforge.net/projects/crunch-wordlist/ e faça o download da versão mais recente.
Aqui não vou cobrir a compilação e instalação do Crunch, vou usar a versão disponibilizada com o BackTrack 4. Você pode obter a ISO (LiveCD instalável) ou a VM (para VMWare, mas que também funciona no VirtualBox) em http://www.backtrack-linux.org/downloads/. Se você gosta da área de segurança, recomendo fortemente que você separe um tempo para conhecer o BackTrack e todas as ferramentas que ele disponibiliza para você.
Apenas com a finalidade de testar o programa, vamos gerar uma wordlist com strings de no mínimo 4 e no máximo 6 números:
# /pentest/password/crunch/crunch 4 6 1234567890 -o /tmp/wordlist-numerica.txt
Assim, será gerado um arquivo wordlist-numerica.txt no diretório /tmp com todas as combinações possíveis de acordo com os parâmetros que passamos para o crunch. O arquivo irá conter linhas como essas:
120347
120348
120349
120350
Variando no seu tamanho (entre 4 e 6 caracteres).
Se você sabe que as senhas começam com uma string fixa, como “maria”, você pode fazer com que o crunch gere senhas que comecem com “maria” e variem quantos caracteres você desejar utilizando a opção -t.
Por exemplo, para gerar uma wordlist de palavras começando com “maria” seguidas de 4 números:
# /pentest/password/crunch/crunch 9 9 1234567890 -t maria@@@@ -o /tmp/wordlist-maria.txt
Assim, você terá resultados como os seguintes:
maria0070
maria0000
maria9091
maria0113
Como você já deve ter percebido, 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.
O arquivo charset.lst (fornecido junto com o crunch) 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:
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/password/crunch/crunch 4 8 -f charset.lst mixalpha -o /tmp/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 /tmp/lista-com-charset.txt. Você também pode utilizar os “@” com o charset.lst. Ficaria assim:
# /pentest/password/crunch/crunch 8 8 -f charset.lst mixalpha-numeric-all-space -t @@abc@@@ -o /tmp/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 /tmp/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).
Além das opções que já foram citadas nos parágrafos anteriores, você ainda pode utilizar as seguintes:
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.
O objetivo deste artigo é mostrar como você pode gerar wordlists para testar a segurança dos seus próprios serviços. Não tente fazer ataques brute force contra serviços/servidores para os quais você não possui autorização.
Como você viu, o crunch é bem poderoso e você pode gerar wordlists utilizando praticamente qualquer combinação de caracteres para gerar wordlists bem completas e direcionadas para o problema que você tem em mãos. Vale lembrar que é interessante que as wordlists não tenham palavras repetidas, para que você não tente duas vezes a mesma senha que não funcionou (o que fará com que o processo demore ainda mais).
Gostou do post? Tem algum outro programa que você prefere para gerar wordlists? Encontrou algum erro no texto? Deixe seu comentário! Se quiser, também pode me seguir no Twitter ou assinar o feed do site e sempre ser avisado sobre novos posts.
6 Comentários
Como criar uma wordlist à partir de um site | Pedro Pereira
26|Apr|2010 1[...] post “Gerando sua própria wordlist com Crunch” eu te mostrei o Crunch: uma ferramenta especializada em gerar wordlists da maneira que você [...]
John
17|Sep|2011 2./crunch 4 8 -f charset.lst mixalpha -o /tmp/lista-com-charset.txt
Crunch will now generate the following amount of data: 489502842453248 bytes 466826288 MB 455885 GB
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?????????????????
Josias
15|Dec|2011 3Ola Pedro blz, ja tiveste sucesso utilizando backtrack e Crunch para quebrar wpa ou wpa2? abraço
Pedro Pereira
16|Dec|2011 4Josias,
Nunca tentei heheh Teste aí e me fale os resultados :)
[]‘s
Pedro Pereira.
Miguel S.
17|Jan|2012 5O problema é realmente criar demasiada data para armazenar… o crunch produz milhares de Gigas!!!
Sei de uma maneira de utilizar essa data mas sem usar espaço no disco rigido… unico senão é que só o vejo a funcionar bem quando produz listas com 8 ou mais caracteres… então explico:
em
# /pentest/password/crunch/
escrever o seguinte código:
./crunch 8 10 -f charset.lst mixalpha-numeric-space | aircrack-ng -e “SSID_da_REDE” -b MA:CA:DR:EE:SS:BT -l /root/key.txt -w – /root/WPA-01.cap
reparem que:
a primeira parte cria a lista sem a escrever no disco
a separação dos 2 comandos (crunch e aircrack-ng) é feita escrevendo ” | ” (sem as aspas)
inicia-se o aircrack-ng utilizando a data criada pelo crunch..
onde
(-e “SSID_da_REDE”) – é o nome da rede alvo
(-b MA:CA:DR:EE:SS:BT”) – é o mac adress do alvo que inventei
(-l /root/key.txt) – escreve a chave da rede achada no ficheiro tal..
(-w ) – apesar da opção -w (para escrever no disco) eu não especifico nem local nem nome de ficheiro, portanto não escreve os tais GIGAS de data..
(- /root/WPA-01.cap) – o ficheiro .cap onde tinha antes capturaado o handshake da rede alvo..
e é ver ele a processar data… agora só têm o problema do tempo que essa data demora a ser processada.. é que certos computadores podem levar messes a crackar uma password.. ;)))
espero que me tenha explicado bem.. comigo este comando resulta no backtrack 4 quando produz 8 ou mais caracteres.. e não guardo GIGAS em ficheiros de texto ;))
Tentem.. Boa sorte!
Isac
31|Jan|2012 6A dica do Miguel S. é mto boa. O único revés é que reduz a quantidade de chaves pesquisadas por segundo. Mas se vc tem tempo e que deixar seu note/pc ligado por vários dias… essa realmente é a melhor opcão sem criar gigas e gigas de arquivos.
Flw
Deixe seu comentário!
Acompanhe!
Creative Commons
Esta obra escrita por Pedro Augusto de Oliveira Pereira está licensiada sob a Creative Commons Atribuição-Uso Não-Comercial-Vedada a Criação de Obras Derivadas 3.0 Brasil License.
Mais lidos
Busca
Últimas mensagens no Twitter
Posts recentes
A design creation of Design Disease
Pedro Pereira: Administrador de redes: Linux, Cisco, FreeBSD, OpenBSD. Consultoria e serviços em software livre utilizando Samba, Subversion, Postfix, OpenLDAP, Cacti, Nagios e vários outros!
Copyright © 2007 - Pedro Pereira - is proudly powered by WordPress
InSense 1.0 Theme by Design Disease brought to you by HostGator Web Hosting.
Switch to our mobile site