Usando o Hydra para Quebrar Senhas

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá sobre vulnerabilidades de senha e como utilizar o Hydra, uma ferramenta de segurança popular para testar a robustez de credenciais. Você simulará um ataque de força bruta (brute-force) em um site de treinamento para entender como senhas fracas podem ser facilmente comprometidas.

Esta experiência prática demonstrará por que senhas fortes são cruciais na segurança cibernética. Você adquirirá habilidades práticas na configuração do Hydra, na análise dos resultados de ataques e na avaliação de medidas de segurança de senhas.

Este é um Laboratório Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para concluir cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível intermediário com uma taxa de conclusão de 59%. Ele recebeu uma taxa de avaliação positiva de 99% dos alunos.

Explorando o Site de Destino

Nesta etapa, examinaremos o site que testaremos e introduziremos o conceito de ataques de força bruta. Antes de começarmos a usar ferramentas automatizadas, é importante entender como os sistemas básicos de autenticação funcionam e o que estamos tentando realizar.

Abra a aba Web 8080 em seu ambiente de laboratório. Isso exibirá uma interface de navegador web onde você verá uma página de login simples com campos para inserir nome de usuário e senha. Isso é semelhante às páginas de login que você encontra em muitos sites todos os dias.

Login page screenshot

Vamos tentar algumas tentativas básicas de login para entender como o sistema responde:

  1. Primeira tentativa:

    • Usuário: test
    • Senha: password123
  2. Segunda tentativa:

    • Usuário: admin
    • Senha: admin

Após cada tentativa, você receberá uma mensagem de "Invalid username or password". Essa resposta genérica é intencional — ela não informa se o nome de usuário existe ou se apenas a senha estava errada. Isso é chamado de "segurança por obscuridade" e ajuda a evitar que invasores coletem informações sobre contas válidas.

Observe que você pode continuar tentando diferentes combinações sem restrições. Em sistemas de produção, medidas de segurança como bloqueio de conta ou CAPTCHAs seriam normalmente implementadas após várias tentativas fracassadas para evitar ataques automatizados. A ausência dessas proteções em nosso ambiente de laboratório o torna ideal para demonstrar técnicas de força bruta.

O que você acabou de fazer manualmente — tentar diferentes combinações de usuário e senha — é essencialmente uma versão manual de um ataque de força bruta. Em ataques reais, os hackers usam ferramentas automatizadas para testar milhares de combinações por segundo. Este exercício mostra por que senhas simples como "password123" ou "admin" são extremamente vulneráveis e por que os sistemas precisam de medidas de segurança adequadas para prevenir tais ataques.

Examinando a Lista de Senhas

Agora que entendemos o conceito básico de um ataque de força bruta, vamos examinar uma lista de senhas comuns que invasores poderiam usar. Antes de prosseguirmos, é importante saber que os ataques de força bruta funcionam tentando sistematicamente todas as combinações de senhas possíveis até encontrar a correta. O uso de listas de senhas pré-compiladas torna esse processo muito mais rápido.

Volte para a aba Desktop Tab em seu ambiente de laboratório. É aqui que executaremos todos os nossos comandos e visualizaremos os resultados.

Abra o Xfce Terminal na Área de Trabalho clicando duas vezes em seu ícone. O terminal é nossa principal ferramenta para executar comandos neste laboratório.

Xfce Terminal on Desktop

Em cenários do mundo real, os invasores costumam usar listas extensas de senhas provenientes de vazamentos de dados passados. Essas listas contêm milhões de senhas que foram expostas em incidentes de segurança. Para o nosso laboratório, usaremos uma lista menor de senhas fracas comuns encontradas na internet para demonstrar o conceito. Esta lista já foi preparada para você e está localizada em /home/labex/project/500-worst-passwords.txt.

Vamos examinar o conteúdo do arquivo usando o comando head, que mostra as primeiras linhas de um arquivo:

head -n 10 500-worst-passwords.txt

Este comando exibirá as 10 primeiras senhas da lista. A opção -n 10 instrui o comando a mostrar exatamente 10 linhas.

123456
password
12345678
1234
12345
dragon
qwerty
567sjej
mustang
letmein

Essas senhas são escolhas comuns que muitas pessoas, infelizmente, ainda utilizam. Observe como elas são simples e previsíveis — a maioria são sequências numéricas ou palavras comuns. É precisamente por isso que os invasores costumam tentá-las primeiro em suas tentativas de obter acesso não autorizado.

Ao usar uma lista como esta, um invasor pode acelerar significativamente seu ataque de força bruta. Em vez de tentar cada combinação possível de caracteres (o que poderia levar anos), eles começam com as senhas mais prováveis, aumentando consideravelmente suas chances de sucesso rápido. Em segurança cibernética, chamamos isso de "ataque de dicionário" — uma versão mais inteligente da força bruta que utiliza senhas conhecidas em vez de suposições aleatórias.

Configurando o Hydra

Agora que temos nossa lista de senhas, vamos configurar o Hydra, a ferramenta que usaremos para automatizar nossa simulação de ataque de força bruta. O Hydra é uma ferramenta poderosa de quebra de senhas que ajuda profissionais de segurança a testar a robustez de credenciais ao tentar sistematicamente diferentes combinações.

Primeiro, criaremos um arquivo de texto simples contendo nomes de usuário comuns que desejamos testar. Isso é importante porque muitos sistemas usam nomes de usuário padrão previsíveis que os invasores podem tentar primeiro. Execute estes comandos:

cd ~/project
echo -e "admin\nuser\nroot" > ~/project/usernames.txt
cat ~/project/usernames.txt

O primeiro comando (cd ~/project) garante que estejamos no diretório de trabalho correto. O segundo comando cria um arquivo chamado usernames.txt contendo três nomes de usuário comuns (admin, user e root), cada um em uma nova linha. O terceiro comando exibe o conteúdo do arquivo para que possamos verificar se ele foi criado corretamente.

Agora, vamos garantir que o Hydra esteja instalado. Em um cenário real, você normalmente o instalaria por conta própria, mas neste ambiente de laboratório:

Nota: Usuários gratuitos não podem se conectar à internet, portanto, o Hydra já está pré-instalado no ambiente do laboratório; você pode pular este comando. Atualize para uma conta Pro para praticar a instalação do Hydra por conta própria.

Apenas para Usuários Pro
sudo apt-get update
sudo apt-get install hydra -y

O Hydra funciona recebendo listas de possíveis nomes de usuário e senhas e, em seguida, tentando autenticar cada combinação contra um serviço de destino. Ele suporta muitos protocolos, incluindo HTTP, FTP, SSH e outros. A ferramenta é particularmente útil para testadores de invasão (pentesters) identificarem senhas fracas em um sistema.

Para verificar se o Hydra está funcionando corretamente, podemos checar sua versão e as opções disponíveis com:

hydra -h

Este comando exibe o menu de ajuda do Hydra, mostrando todos os comandos e opções disponíveis. Você verá informações sobre diferentes modos de ataque, protocolos suportados e como personalizar suas tentativas de quebra de senha. Isso é útil para entender o que o Hydra pode fazer antes de começarmos a usá-lo.

Usando o Hydra para Quebra de Senhas

Agora que temos o Hydra instalado e nossa lista de senhas pronta, vamos usá-lo para simular um ataque de força bruta em nosso site de treinamento. Antes de começarmos, é importante entender que o Hydra é uma ferramenta automatizada que tenta sistematicamente diferentes combinações de usuário e senha contra uma página de login — isso é o que chamamos de ataque de força bruta.

Execute o seguinte comando do Hydra:

hydra -L ~/project/usernames.txt -P ~/project/500-worst-passwords.txt localhost -s 8080 http-post-form "/:username=^USER^&password=^PASS^:Invalid username or password" -o ~/project/hydra_results.txt

Vamos detalhar este comando parte por parte para entender o que cada uma faz:

  • hydra: Este é o comando para iniciar a ferramenta Hydra.
  • -L ~/project/usernames.txt: Especifica o arquivo que contém os possíveis nomes de usuário para testar.
  • -P ~/project/500-worst-passwords.txt: Aponta para o arquivo com senhas comuns que testaremos contra cada usuário.
  • localhost -s 8080: O endereço do servidor web de destino (localhost) e a porta (8080) que estamos testando.
  • "/:username=^USER^&password=^PASS^:Invalid username or password": Isso informa ao Hydra:
    • A URL da página de login (/)
    • Como os campos do formulário de login são nomeados (username e password)
    • Qual é a mensagem de erro exibida quando o login falha
  • -o ~/project/hydra_results.txt: Salva todas as tentativas bem-sucedidas neste arquivo de saída.

O Hydra começará a ser executado e você verá a saída conforme ele tenta cada combinação de usuário e senha. Esse processo pode levar alguns minutos, pois o Hydra percorre sistematicamente todas as combinações possíveis nos arquivos que fornecemos.

Hydra command execution output

Após o término do Hydra, podemos verificar os resultados para ver se alguma combinação funcionou:

cat ~/project/hydra_results.txt
Hydra results output

Logins bem-sucedidos aparecerão como linhas do tipo "login: [username] password: [password] found". Estas representam credenciais que concederiam acesso ao sistema.

Este exercício demonstra vários conceitos importantes de segurança:

  • O Hydra testou centenas de combinações de senhas em minutos, mostrando a rapidez com que ferramentas automatizadas podem operar.
  • Os logins bem-sucedidos provam que senhas fracas ou comuns são facilmente quebradas.
  • Em cenários do mundo real, invasores podem usar dicionários com milhões de senhas, tornando essencial o uso de senhas fortes e exclusivas.
  • A diferença entre tentativas manuais (Etapa 1) e ferramentas automatizadas destaca por que as políticas de senha são fundamentais.

Observe como a eficiência da ferramenta torna as credenciais fracas extremamente vulneráveis. É por isso que profissionais de segurança enfatizam o uso de senhas complexas e a implementação de políticas de bloqueio de conta.

Resumo

Neste laboratório, você aprendeu os fundamentos da segurança de senhas por meio de experiência prática com o Hydra, uma poderosa ferramenta de quebra de senhas. Você explorou como os ataques de força bruta funcionam e por que eles podem comprometer senhas fracas, ao mesmo tempo em que compreendeu o papel crítico das práticas de senhas fortes na segurança cibernética.

Este exercício demonstrou por que os profissionais de segurança cibernética enfatizam o uso de senhas complexas e exclusivas. Lembre-se de aplicar essas habilidades de forma ética à medida que continua explorando ferramentas e técnicas de segurança em sua jornada de aprendizado.