Atacar Alvos IPv6 com Hydra

HydraBeginner
Pratique Agora

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.

  1. 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 eth0

    Este comando adiciona o endereço IPv6 2001:db8:1::1/64 à interface eth0. O /64 especifica o comprimento do prefixo de rede, que determina o tamanho do sub-rede IPv6.

  2. Habilitar a interface eth0:

    sudo ip link set dev eth0 up

    Este comando ativa a interface eth0, permitindo que ela envie e receba tráfego de rede.

  3. Verificar a configuração do endereço IPv6:

    Para verificar se o endereço IPv6 foi configurado corretamente, use o comando ip addr novamente:

    ip addr show eth0

    A saída deve incluir o endereço IPv6 2001:db8:1::1/64 na seção inet6. 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 forever

    A linha inet6 2001:db8:1::1/64 scope global confirma 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.

  1. Pingando o endereço IPv6:

    Abra seu terminal na VM LabEx. Execute o seguinte comando:

    ping -6 2001:db8:1::1

    Este 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 ms

    Pressione Ctrl+C para interromper o comando ping após alguns pacotes.

  2. Compreendendo a opção -6:

    A opção -6 informa ao comando ping para usar IPv6. Muitas outras ferramentas de rede, como ssh, curl e wget, 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 -6 com 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.

  1. 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 ssh

    Você pode verificar se o serviço SSH está em execução verificando seu status:

    sudo systemctl status ssh

    A saída deve mostrar que o serviço está ativo e em execução.

  2. 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 :22

    Você 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_config

    Encontre a linha que contém #AddressFamily any ou AddressFamily inet e altere-a para:

    AddressFamily any

    Se 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, depois Y para confirmar a gravação e Enter para confirmar o nome do arquivo.

    Reinicie o serviço SSH para aplicar as alterações:

    sudo systemctl restart ssh

    Verifique se o SSH agora está escutando em IPv4 e IPv6:

    ss -tlnp | grep :22

    Agora você deve ver o SSH escutando em 0.0.0.0:22 (IPv4) e [::]:22 (IPv6).

  3. Criando uma lista de senhas:

    Abra seu terminal na VM LabEx. Você está atualmente no diretório ~/project. Use o editor nano para criar um arquivo chamado passwords.txt neste diretório:

    nano passwords.txt

    Adicione as seguintes senhas ao arquivo, uma senha por linha:

    password
    123456
    qwerty
    admin
    labex

    Salve o arquivo pressionando Ctrl + X, depois Y para confirmar a gravação e Enter para confirmar o nome do arquivo.

  4. 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 -6 para 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ário labex.
    • -P passwords.txt: Especifica a lista de senhas a ser usada. Neste caso, você está usando o arquivo passwords.txt que você criou no diretório atual ~/project.
    • ssh://[2001:db8:1::1]: Especifica o serviço SSH de destino. O prefixo ssh:// 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.txt contra 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 -V para 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.

  1. 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.

  2. 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 -6 para 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::1

    Quando 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::1

    O 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.

  3. 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 fail2ban para 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.