Nenhum sistema está seguro...

O objetivo deste site é o de gerar conhecimento na área Forense, Jurídica e tecnologica.

domingo, 15 de julho de 2012

Word-List (BroteForce)

Esta, é uma cópia do conteúdo no Site/Tópico: Gerar Wordlist Crunch - Pedro Pereira


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) emhttp://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.


Parte 2

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.

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Análise da Vulnerabilidade CVE-2024-23113 no FortiGate

  Relatório Técnico: Análise da Vulnerabilidade CVE-2024-23113 no FortiGate e Medidas de Mitigação Introdução Nos últimos anos, as vulnerabi...