segunda-feira, 8 de julho de 2013

Continuando com nosso guia, vamos ver uma técnica usada em várias ocasiões para obter acesso sabendo parte ou nenhuma informação das credenciais, o Brute Force.


Brute Force

O brute force é considerado uma técnica de invasão, não muito eficaz na minha opinião, mas uma das mais antigas e conhecidas técnicas. Seu funcionamento é muito simples, o programa de brute force gera uma wordlist (lista de palavras) com milhares de possibilidades e vai tentando uma a uma, até conseguir descobrir a senha.

Wordlist


Wordlist é um arquivo de texto no formato .txt, lido por qualquer ferramenta, com várias palavras ou combinações de caracteres, um por linha e são usadas para tentar adivinhar credenciais. 

Provavelmente uma wordlist é o maior arquivo de texto puro que você verá, por exemplo, uma wordlist com todas as possibilidades de senhas de 8 a 12 caracteres vai conter milhões de combinações diferentes e vai ter mais de 1TB. Imagine quanto texto é necessário para preencher 1TB. Faça um teste, crie um arquivo no bloco de notas ou editor de texto, coloque apenas uma palavra e salve e veja o tamanho que da. Não mais que alguns KB's correto?

Criando uma wordlist

Existem vários programas e ferramentas que podem criar wordlists, o que eu vou falar aqui é um que considero simples, o crunch. A sintaxe do crunch é a seguinte:

crunch tamanho_minimo tamanho_maximo > arquivo_wordlist.txt

E um exemplo simples:

crunch 4 8 0123456789 > /root/Desktop/wordlist.txt
O comando do exemplo vai colocar no diretório do root, em um arquivo chamado wordlist.txt todas as combinações possíveis de 4 a 8 caracteres contendo apenas números. Veja este outro exemplo:


crunch 8 8 1234567890 -t joao@@@@ > /tmp/joaolist 

Neste outro exemplo, temos uma senha iniciada em joao e terminada em uma combinação de 4 números, salvando todas as possibilidades num arquivo chamado joaolist.

Já para a parte de quebrar senhas e brute force na prática vou deixar para um post separado. Já fiz um post sobre o john the ripper que é uma das melhores ferramentas para brute force.

Contras

Brute force parece algo milagroso né? Sim, o brute force sempre vai quebrar a senha, mas agora vem a notícia ruim, pode ser que isso leve alguns séculos. Quanto maior a complexidade da senha mais tempo vai levar para quebra-la, por isso que a dica de senha sempre é recomendado que tenha letras maiúsculas, minúsculas, números e símbolos. Quanto maior a quantidade de caracteres e de tipos de caracteres menor a possibilidade de quebrar. Como por exemplo no GRC, o Steve Gibson da o exemplo da senha D0g..................... que leva apenas 9.38 centenas de trilhões de trilhões de anos (pense num número grande :) ) e é uma senha relativamente simples de lembrar e usar.

Um outro detalhe que tem que se levar em conta é se o ataque vai ser online ou offline. Por exemplo, se você está fazendo brute force em um serviço como ssh, ftp e etc, você está fazendo um ataque online, se você conseguiu os hashs de senha você está executando um ataque offline.

Então, depois de tudo que vimos aqui neste post, podemos concluir que ataques de brute force devem ser usados em últimos casos, porque demandam um grande poder computacional e podem demorar e não retornar resultados interessantes. Para agilizar você pode usar técnicas das fases de levantamento de informações para gerar uma wordlist com possíveis palavras chave. Isso pode poupar bastante tempo.

Uma dica final: Baixar aquelas wordlists gigantescas com milhões de possibilidades e passar horas tentando não é uma prática muito boa.

0 comentários:

Postar um comentário

Subscribe to RSS Feed Follow me on Twitter!