Introdução
Neste laboratório, aprenderá a controlar os intervalos de conexão da ferramenta de quebra de senha Hydra. O laboratório demonstra como configurar o Hydra para introduzir atrasos entre as tentativas de conexão, permitindo gerenciar o ritmo do ataque e potencialmente evitar a detecção.
O laboratório começa configurando um servidor SSH básico na VM LabEx usando o OpenSSH. Você instalará o servidor, verificará seu status e confirmará que ele está escutando na porta 22. Posteriormente, executará o Hydra com o tempo padrão e, em seguida, modificará o comando para incluir a opção -W 5, que introduz um intervalo de 5 segundos entre as tentativas de conexão. Finalmente, observará o impacto desta alteração de tempo no ritmo geral do ataque.
Configurar o Servidor SSH
Neste passo, configuraremos um servidor SSH básico na VM LabEx. SSH (Secure Shell) é um protocolo de rede criptográfico para operar serviços de rede de forma segura através de uma rede não segura. É comumente usado para login remoto por linha de comando e execução remota de comandos.
Primeiro, precisamos instalar o servidor OpenSSH. O OpenSSH é um conjunto de ferramentas de rede relacionadas à segurança baseadas no protocolo Secure Shell, e é a implementação SSH mais comum.
Abra um terminal na VM LabEx. Você pode usar o terminal Xfce padrão.
Execute o comando a seguir para atualizar as listas de pacotes:
sudo apt update
Este comando sincroniza os arquivos de índice de pacotes de suas fontes. É uma boa prática executar isso antes de instalar qualquer novo software. Você poderá ser solicitado a inserir sua senha, mas lembre-se que o usuário labex possui privilégios sudo sem senha.
Em seguida, instale o servidor OpenSSH:
sudo apt install openssh-server -y
O sinalizador -y responde automaticamente "sim" a quaisquer solicitações durante a instalação, tornando o processo não interativo.
Após a conclusão da instalação, o servidor SSH deve iniciar automaticamente. Você pode verificar seu status usando o seguinte comando:
sudo service ssh status
Para confirmar que o servidor SSH está em execução, você pode verificar se a porta SSH (porta 22) está escutando. Use o comando netstat:
netstat -tulnp | grep 22
Você deve ver uma saída semelhante a esta:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
Isso indica que o servidor SSH está escutando na porta 22 para conexões IPv4 e IPv6.
Agora que o servidor SSH está configurado, você pode se conectar a ele de outra máquina usando um cliente SSH. No entanto, neste laboratório, nos concentraremos em usar o Hydra para quebrar a senha SSH.
Executar o Hydra com Temporização Padrão
Neste passo, executaremos o Hydra para tentar quebrar a senha SSH. Usaremos uma lista simples de nomes de usuário e senhas e observaremos o ritmo do ataque com as configurações de tempo padrão.
Primeiro, criaremos um arquivo de lista de nomes de usuário chamado users.txt no diretório ~/project. Este arquivo conterá um único nome de usuário: labex.
Em seu terminal, execute o seguinte comando para criar o arquivo users.txt:
echo "labex" > ~/project/users.txt
Em seguida, crie um arquivo de lista de senhas chamado passwords.txt no diretório ~/project. Este arquivo conterá algumas senhas comuns, incluindo a senha correta para o usuário labex.
Importante: Você deve executar os comandos a seguir no terminal da área de trabalho, pois a variável de ambiente PASSWORD só está disponível no ambiente da área de trabalho.

Em seu terminal da área de trabalho, execute os seguintes comandos para criar o arquivo passwords.txt:
echo "password" > ~/project/passwords.txt
echo "123456" >> ~/project/passwords.txt
echo "$PASSWORD" >> ~/project/passwords.txt
A variável de ambiente $PASSWORD contém a senha real do usuário labex neste ambiente.
Agora, podemos executar o Hydra com as configurações de tempo padrão. A sintaxe básica para o Hydra é:
hydra [options] <target> <service> [MODULE-OPTIONS]
No nosso caso, o alvo é localhost (a própria VM LabEx), o serviço é ssh e usaremos as listas de nomes de usuário e senhas que acabamos de criar.
Execute o seguinte comando em seu terminal:
hydra -L ~/project/users.txt -P ~/project/passwords.txt localhost ssh
Vamos decompor este comando:
hydra: O comando para executar a ferramenta Hydra.-L ~/project/users.txt: Especifica o arquivo de lista de nomes de usuário localizado em~/project/users.txt.-P ~/project/passwords.txt: Especifica o arquivo de lista de senhas localizado em~/project/passwords.txt.localhost: O host de destino (neste caso, a máquina local).ssh: O serviço a ser atacado (SSH).
O Hydra agora começará a tentar fazer login no servidor SSH usando os nomes de usuário e senhas das listas. Você verá uma saída mostrando o progresso do ataque. Ele tentará cada combinação de nome de usuário e senha. Como a senha correta da variável de ambiente $PASSWORD está no arquivo passwords.txt, o Hydra deve encontrá-la relativamente rápido.

A saída será algo como isto:
Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff
Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost login: labex password: [senha_real]
Hydra finished.
A linha importante é [22][ssh] host: localhost login: labex password: [senha_real]. Isso indica que o Hydra encontrou com sucesso a senha do usuário labex.
Observe a velocidade com que o Hydra está tentando as senhas. Este é o tempo padrão. No próximo passo, modificaremos o tempo para ver como isso afeta o ritmo do ataque.
Adicionar -W 5 para Intervalos de 5 Segundos
Neste passo, adicionaremos a opção -W 5 ao comando Hydra. Esta opção introduz um atraso de 5 segundos entre cada tentativa de login. Isto é útil para evitar bloqueios de contas ou deteção por sistemas de deteção de intrusões.
A opção -W no Hydra especifica o tempo limite para aguardar uma resposta do serviço alvo. Por defeito, o Hydra utiliza um tempo limite muito curto. Aumentar este tempo limite pode ajudar quando o serviço alvo demora a responder ou quando existem problemas de latência de rede.
Execute o seguinte comando no seu terminal:
hydra -L ~/project/users.txt -P ~/project/passwords.txt -W 5 localhost ssh
A única diferença entre este comando e o anterior é a adição da opção -W 5.
Agora, o Hydra tentará fazer login no servidor SSH, mas aguardará 5 segundos após cada tentativa de login falhada antes de tentar a próxima senha.
Observe a saída. Notará que o ritmo do ataque é significativamente mais lento do que no passo anterior. O Hydra ainda encontrará a senha correta ("labex"), mas levará mais tempo para o fazer.
A saída será algo semelhante a isto:
Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff
Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost login: labex password: labex
Hydra finished.
No entanto, a diferença chave é o tempo que leva para atingir a mensagem Hydra finished.. Com a opção -W 5, levará pelo menos 10 segundos (2 tentativas falhadas * 5 segundos/tentativa) antes que o Hydra encontre a senha correta.
No próximo passo, discutiremos o impacto desta alteração no ritmo do ataque e as implicações para os testes de segurança.
Observar o Impacto na Velocidade do Ataque
Neste passo, analisaremos o impacto da opção -W 5 no ritmo do ataque do Hydra.
Como observou nos passos anteriores, a adição de -W 5 diminuiu significativamente o ritmo do ataque. Sem a opção -W 5, o Hydra tenta logins o mais rápido possível, limitado apenas pela latência da rede e pelo tempo de resposta do servidor. Com -W 5, o Hydra pausa por 5 segundos após cada tentativa de login falhada.
Esta diferença no ritmo do ataque tem várias implicações importantes:
Bloqueio de Conta: Muitos sistemas têm políticas de bloqueio de conta que desativam uma conta após um determinado número de tentativas de login falhadas. Diminuindo o ritmo do ataque com
-W 5, pode reduzir o risco de ativar estas políticas de bloqueio e evitar ficar bloqueado da conta alvo.Sistemas de Detecção de Intrusões (IDS): Os IDS monitorizam o tráfego de rede em busca de atividades suspeitas, como ataques de força bruta. Uma série rápida de tentativas de login falhadas é um forte indicador de um ataque de força bruta e pode disparar um alerta. Diminuindo o ritmo do ataque, pode tornar mais difícil para um IDS detectar o ataque.
Consumo de Recursos: Um ritmo de ataque rápido pode consumir recursos significativos tanto na máquina atacante como no servidor alvo. Diminuir o ritmo do ataque pode reduzir o consumo de recursos e tornar o ataque menos perceptível.
Tempo de Conclusão: O impacto mais óbvio é o aumento do tempo necessário para concluir o ataque. Se tiver uma lista grande de senhas, adicionar um atraso entre as tentativas pode aumentar significativamente o tempo total necessário para quebrar a senha.
Em resumo, a opção -W no Hydra permite controlar o ritmo do ataque e equilibrar a necessidade de velocidade com o risco de deteção e bloqueio de conta. A escolha do valor correto para -W depende do alvo específico e dos objetivos do ataque. Para testes de penetração, geralmente é melhor ser sigiloso e evitar a deteção, mesmo que isso signifique que o ataque demore mais.
Este laboratório demonstrou um exemplo básico de utilização do Hydra para quebrar uma senha SSH. Em cenários do mundo real, os atacantes frequentemente utilizam listas de nomes de utilizador e senhas muito maiores e técnicas mais sofisticadas para contornar as medidas de segurança. É crucial utilizar senhas fortes e únicas e implementar medidas de segurança apropriadas para se proteger contra ataques de força bruta.
Resumo
Neste laboratório, aprendeu a controlar os intervalos de conexão do Hydra para gerir o ritmo do ataque e evitar a deteção.
Passos-chave concluídos:
- Configurar um servidor SSH usando OpenSSH e verificar se estava a escutar na porta 22
- Criar listas de nomes de utilizador e senhas para testes com o Hydra
- Executar o Hydra com o tempo padrão para observar o ritmo rápido do ataque
- Adicionar a opção
-W 5para introduzir atrasos de 5 segundos entre as tentativas de conexão - Observar como o controlo de tempo impacta a velocidade do ataque e ajuda a evitar bloqueios de contas e sistemas de deteção
A opção -W permite equilibrar a velocidade do ataque com a discrição, tornando-a um parâmetro crucial para testes de penetração eficazes, minimizando o risco de ativar medidas de segurança.


