Pedro Pereira

Linux, Cisco, *BSD's, um pouco de Windows e o que mais eu achar interessante :)

Gerando sua própria wordlist com Crunch


WP Greet Box icon
Olá! Se você gostou do blog, assine o feed RSS para não perder as próximas atualizações!

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.

Instalação

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ê.

Gerando a sua primeira wordlist

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).

Gerando uma wordlist com uma string fixa

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.

Utilizando o arquivo charset.lst

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:

  • 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/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).

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.

Conclusão

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.

Compartilhe o post! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Ask
  • Bloglines
  • email
  • Facebook
  • Furl
  • Google Bookmarks
  • LinkedIn
  • Live-MSN
  • Pownce
  • Print
  • Rec6
  • Slashdot
  • Technorati
  • TwitThis

Posts relacionados:

  • Wordlists com WYD No post “Gerando sua própria wordlist com Crunch” eu te...
  • Ataques brute force com o Hydra Senhas são talvez o elo mais fraco em qualquer sistema...
  • Auditando senhas com o John The Ripper Senhas são o ponto mais fraco de qualquer sistema de...



  • 6 Comentários

    1. 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ê [...]

    2. 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

      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?????????????????

    3. Josias

      15|Dec|2011 3

      Ola Pedro blz, ja tiveste sucesso utilizando backtrack e Crunch para quebrar wpa ou wpa2? abraço

    4. Pedro Pereira

      16|Dec|2011 4

      Josias,

      Nunca tentei heheh Teste aí e me fale os resultados :)

      []‘s
      Pedro Pereira.

    5. Miguel S.

      17|Jan|2012 5

      O 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!

    6. Isac

      31|Jan|2012 6

      A 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!

      Assine o feed RSS! Me acompanhe no Twitter! Me adicione no LinkedIn!

    Creative Commons


    Mais lidos