Introdução
Neste laboratório, você aprenderá a atacar alvos IPv6 usando o Hydra. O laboratório se concentra na configuração de um servidor com um endereço IPv6 e, em seguida, no uso do Hydra para atacar seu serviço SSH.
O laboratório começa configurando o servidor com o endereço IPv6 2001:db8:1::1/64 na interface eth0 usando o comando ip. Em seguida, você habilitará a interface e verificará a configuração. Finalmente, você usará o Hydra com a opção -6 para atacar o serviço SSH IPv6 e verificará os resultados do ataque.
Configurar Servidor com Endereço IPv6
Neste passo, você configurará a VM LabEx com um endereço IPv6. Este é um passo crucial para habilitar a comunicação IPv6 e preparar para o ataque subsequente ao serviço SSH IPv6.
Primeiro, vamos entender os fundamentos dos endereços IPv6. Os endereços IPv6 são endereços de 128 bits, normalmente representados em notação hexadecimal. Um endereço IPv6 típico se parece com isto: 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
Para simplificar a configuração, você atribuirá o endereço 2001:db8:1::1/64 à interface eth0. A interface eth0 é um nome comum de interface de rede em sistemas Linux.
Agora, vamos configurar o endereço IPv6. Você usará o comando ip, uma ferramenta poderosa para gerenciar interfaces de rede.
Adicionar o endereço IPv6 à interface
eth0:Abra seu terminal na VM LabEx. Execute o seguinte comando:
sudo ip addr add 2001:db8:1::1/64 dev eth0Este comando adiciona o endereço IPv6
2001:db8:1::1/64à interfaceeth0. O/64especifica o comprimento do prefixo de rede, que determina o tamanho do sub-rede IPv6.Habilitar a interface
eth0:sudo ip link set dev eth0 upEste comando ativa a interface
eth0, permitindo que ela envie e receba tráfego de rede.Verificar a configuração do endereço IPv6:
Para verificar se o endereço IPv6 foi configurado corretamente, use o comando
ip addrnovamente:ip addr show eth0A saída deve incluir o endereço IPv6
2001:db8:1::1/64na seçãoinet6. Você deve ver algo semelhante ao seguinte:2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:08:6d:7a brd ff:ff:ff:ff:ff:ff altname enp0s5 altname ens5 inet 172.16.50.97/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159937sec preferred_lft 1892159937sec inet6 2001:db8:1::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe08:6d7a/64 scope link valid_lft forever preferred_lft foreverA linha
inet6 2001:db8:1::1/64 scope globalconfirma que o endereço IPv6 foi configurado com sucesso.
Preparando para Ataque SSH IPv6
Neste passo, você se preparará para o ataque ao serviço SSH IPv6, compreendendo e utilizando a opção -6 com ferramentas de rede. A opção -6 é comumente usada para especificar a preferência por IPv6 ao interagir com serviços de rede. Isso é importante porque, por padrão, algumas ferramentas podem preferir IPv4 se ambos os endereços IPv4 e IPv6 estiverem disponíveis.
Para garantir que você esteja direcionando o endereço IPv6 configurado no passo anterior, você utilizará o comando ping com a opção -6. Isso verificará se você consegue alcançar o servidor usando seu endereço IPv6.
Pingando o endereço IPv6:
Abra seu terminal na VM LabEx. Execute o seguinte comando:
ping -6 2001:db8:1::1Este comando envia pacotes ICMP Echo Request para o endereço IPv6
2001:db8:1::1. Se o servidor for alcançável via IPv6, você verá respostas do servidor. A saída deve ser semelhante a esta:PING 2001:db8:1::1(2001:db8:1::1) 56 data bytes 64 bytes from 2001:db8:1::1: icmp_seq=1 ttl=64 time=0.026 ms 64 bytes from 2001:db8:1::1: icmp_seq=2 ttl=64 time=0.041 ms 64 bytes from 2001:db8:1::1: icmp_seq=3 ttl=64 time=0.035 ms 64 bytes from 2001:db8:1::1: icmp_seq=4 ttl=64 time=0.032 ms ^C --- 2001:db8:1::1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3078ms rtt min/avg/max/mdev = 0.026/0.033/0.041/0.005 msPressione
Ctrl+Cpara interromper o comando ping após alguns pacotes.Compreendendo a opção
-6:A opção
-6informa ao comandopingpara usar IPv6. Muitas outras ferramentas de rede, comossh,curlewget, também suportam a opção-6. Usar esta opção garante que a ferramenta tente se conectar ao host de destino usando IPv6.No próximo passo, você usará o Hydra para atacar o serviço SSH. Você usará a opção
-6com o Hydra para direcionar especificamente o endereço IPv6 do servidor SSH. Isso garante que você esteja testando a segurança da configuração SSH IPv6.
Ataque ao Serviço SSH IPv6
Neste passo, você utilizará o Hydra para realizar um ataque de força bruta ao serviço SSH rodando no endereço IPv6 configurado anteriormente. O Hydra é uma poderosa ferramenta de quebra de senhas que suporta diversos protocolos, incluindo SSH.
Antes de começar, você criará uma lista simples de senhas. Esta lista conterá as senhas que o Hydra tentará usar para autenticar no serviço SSH.
Iniciando o serviço SSH:
Primeiro, você precisa garantir que o serviço SSH esteja em execução no sistema. Execute o seguinte comando para iniciar o serviço SSH:
sudo systemctl start sshVocê pode verificar se o serviço SSH está em execução verificando seu status:
sudo systemctl status sshA saída deve mostrar que o serviço está ativo e em execução.
Configurando o SSH para escutar em IPv6:
Por padrão, o SSH pode apenas escutar em endereços IPv4. Você precisa configurá-lo para também escutar em IPv6. Primeiro, verifique em quais endereços o SSH está escutando atualmente:
ss -tlnp | grep :22Você deve ver uma saída como
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*, o que significa que o SSH está apenas escutando em IPv4.Agora, edite o arquivo de configuração do SSH para habilitar a escuta em IPv6:
sudo nano /etc/ssh/sshd_configEncontre a linha que contém
#AddressFamily anyouAddressFamily inete altere-a para:AddressFamily anySe a linha não existir, adicione-a. Isso informa ao SSH para escutar em endereços IPv4 e IPv6.
Salve o arquivo pressionando
Ctrl + X, depoisYpara confirmar a gravação eEnterpara confirmar o nome do arquivo.Reinicie o serviço SSH para aplicar as alterações:
sudo systemctl restart sshVerifique se o SSH agora está escutando em IPv4 e IPv6:
ss -tlnp | grep :22Agora você deve ver o SSH escutando em
0.0.0.0:22(IPv4) e[::]:22(IPv6).Criando uma lista de senhas:
Abra seu terminal na VM LabEx. Você está atualmente no diretório
~/project. Use o editornanopara criar um arquivo chamadopasswords.txtneste diretório:nano passwords.txtAdicione as seguintes senhas ao arquivo, uma senha por linha:
password 123456 qwerty admin labexSalve o arquivo pressionando
Ctrl + X, depoisYpara confirmar a gravação eEnterpara confirmar o nome do arquivo.Executando o Hydra para atacar o serviço SSH IPv6:
Agora, você usará o Hydra para atacar o serviço SSH. Você usará a opção
-6para especificar que deseja atacar o endereço IPv6. Você também especificará o nome de usuário a ser atacado (por exemplo,labex), a lista de senhas que você criou (passwords.txt) e o endereço IPv6 do servidor SSH (2001:db8:1::1).Execute o seguinte comando:
hydra -6 -l labex -P passwords.txt ssh://[2001:db8:1::1]Vamos decompor este comando:
hydra: O comando para executar a ferramenta Hydra.-6: Especifica que o Hydra deve usar IPv6.-l labex: Especifica o nome de usuário a ser atacado. Neste caso, você está atacando o usuáriolabex.-P passwords.txt: Especifica a lista de senhas a ser usada. Neste caso, você está usando o arquivopasswords.txtque você criou no diretório atual~/project.ssh://[2001:db8:1::1]: Especifica o serviço SSH de destino. O prefixossh://indica que você está atacando um serviço SSH, e[2001:db8:1::1]é o endereço IPv6 do servidor entre colchetes (necessário para endereços IPv6 no Hydra).
O Hydra agora começará a tentar as senhas no arquivo
passwords.txtcontra o serviço SSH. Se o Hydra encontrar uma senha válida, exibirá as credenciais. A saída pode ser semelhante a esta se nenhuma senha for encontrada:(Saída omitida para concisão)
Se nenhuma senha for encontrada, você pode tentar adicionar mais senhas comuns ao seu arquivo
passwords.txt. Você também pode usar a opção-Vpara ver uma saída mais detalhada mostrando cada tentativa.(Saída omitida para concisão)
Observação importante: Forçar senhas em um sistema sem autorização é ilegal e antiético. Este laboratório é apenas para fins educacionais e você só deve usar essas técnicas em sistemas que você possui ou tem permissão explícita para testar.
Verificar Resultados do Ataque IPv6
Neste passo, você verificará os resultados do ataque Hydra ao serviço SSH IPv6. Você verificará se o Hydra quebrou a senha com sucesso e, em caso afirmativo, tentará fazer login no serviço SSH usando as credenciais descobertas.
Revisando a saída do Hydra:
Revise cuidadosamente a saída do comando Hydra do passo anterior. Procure por uma linha que indique a quebra bem-sucedida da senha. A saída deve ser semelhante a esta:
[22][ssh] host: 2001:db8:1::1 login: labex password: [found_password]Se você vir esta linha, significa que o Hydra quebrou a senha com sucesso para o usuário
labex. Se nenhuma senha foi encontrada, isso demonstra que a lista de senhas atual não contém a senha correta, o que é, na verdade, um bom sinal de segurança.Tentando fazer login no serviço SSH (se a senha foi encontrada):
Se o Hydra encontrou uma senha com sucesso, você pode tentar fazer login no serviço SSH usando o comando
ssh. Você usará a opção-6para especificar que deseja se conectar ao endereço IPv6.Execute o seguinte comando, usando a senha encontrada pelo Hydra:
ssh -6 labex@2001:db8:1::1Quando solicitado a senha, digite a senha descoberta. Se o login for bem-sucedido, você estará logado no servidor SSH.
Se o Hydra não encontrou nenhuma senha, você ainda pode testar a conectividade SSH IPv6 tentando se conectar (será solicitado uma senha, mas você pode pressionar Ctrl+C para cancelar):
ssh -6 labex@2001:db8:1::1O fato de você receber um prompt de senha confirma que o SSH está corretamente configurado para IPv6 e o Hydra conseguiu se conectar ao serviço.
Recomendações de Segurança:
Este laboratório demonstrou a importância do uso de senhas fortes e da implementação de boas práticas de segurança para proteger seu serviço SSH. Aqui estão algumas recomendações:
- Use senhas fortes: Utilize senhas com pelo menos 12 caracteres e que contenham uma mistura de letras maiúsculas, minúsculas, números e símbolos.
- Desative a autenticação por senha: Considere desabilitar a autenticação por senha e usar chaves SSH em vez disso. As chaves SSH são mais seguras que as senhas, pois são muito mais difíceis de serem quebradas.
- Implemente limitação de taxa: Utilize ferramentas como
fail2banpara implementar limitação de taxa em tentativas de login SSH. Isso impedirá que os atacantes tentem muitas senhas em um curto período de tempo. - Mantenha seu software atualizado: Certifique-se de que seu software de servidor SSH esteja atualizado com os últimos patches de segurança.
Resumo
Neste laboratório, você configurou um servidor com um endereço IPv6, um passo crucial para habilitar a comunicação IPv6. Isso envolveu a compreensão dos fundamentos de endereçamento IPv6 e o uso do comando ip para atribuir o endereço 2001:db8:1::1/64 à interface eth0.
Em seguida, você habilitou a interface e verificou a configuração usando ip addr show eth0, garantindo que o endereço IPv6 foi atribuído corretamente. Também configurou o SSH para escutar em endereços IPv6 modificando o arquivo de configuração do SSH e reiniciando o serviço.
Finalmente, você utilizou o Hydra com a opção -6 para atacar o serviço SSH IPv6 e realizou com sucesso um ataque de força bruta. Em seguida, você verificou os resultados do ataque efetuando login no serviço SSH usando as credenciais descobertas. Este laboratório demonstrou a capacidade do Hydra de atacar alvos IPv6 e destacou a importância de senhas fortes e boas práticas de segurança para serviços SSH.


