Agora colocamos a teoria em prática no cenário online: você tem um serviço vivo com autenticação — SSH, RDP, um formulário de login — e quer descobrir credenciais válidas testando candidatas contra ele. A ferramenta clássica para isso é o Hydra (THC-Hydra), um "quebrador de logins" que suporta dezenas de protocolos e automatiza o disparo de tentativas. Esta aula ensina a usá-lo — e, crucialmente, a entender por que o ataque online é tão limitado e detectável, o que molda como e quando usá-lo. Pratique na Metasploitable, que tem vários serviços com credenciais fracas.

Alvo, serviço, usuários e senhas

O conceito do Hydra é direto: você fornece um alvo, um serviço, uma lista de usuários e uma lista de senhas, e ele testa as combinações, reportando quais funcionam. A estrutura básica dos comandos:

# força bruta de SSH com um usuário conhecido e uma wordlist de senhas
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.10
#     -l usuário único   -P wordlist de senhas         serviço://alvo

# testando múltiplos usuários E múltiplas senhas
hydra -L usuarios.txt -P senhas.txt ssh://192.168.1.10
#     -L lista de usuários  -P lista de senhas

# outros serviços seguem a mesma lógica
hydra -l admin -P senhas.txt ftp://192.168.1.10
hydra -L usuarios.txt -P senhas.txt rdp://192.168.1.10

A diferença entre -l (usuário único, minúsculo) e -L (lista de usuários, maiúsculo) — e o mesmo para -p/-P de senhas — é a convenção que você memoriza rápido. Note a convergência com o Bloco VI: aquele usuarios.txt é a lista que você enumerou via SMB/LDAP/SMTP. Você não está adivinhando quem existe; está mirando contas reais.

Atacar um formulário web

Atacar formulários web é um pouco mais elaborado, porque o Hydra precisa saber como o formulário funciona — qual a URL, quais os campos, e como distinguir sucesso de falha. Isso usa o módulo http-post-form:

hydra -l admin -P senhas.txt 192.168.1.10 http-post-form \
"/login.php:usuario=^USER^&senha=^PASS^:Login incorreto"
#   caminho : campos com marcadores ^USER^/^PASS^ : texto que indica FALHA

A string de falha diz o que é sucesso

Os marcadores ^USER^ e ^PASS^ dizem ao Hydra onde inserir cada tentativa, e o texto final ("Login incorreto") é a string de falha — o Hydra sabe que uma tentativa falhou quando a resposta contém esse texto, e portanto que não contê-lo indica sucesso. Descobrir esses parâmetros (inspecionando o formulário e uma tentativa de login com o navegador ou o Burp Suite da aula Burp Suite: a bancada de trabalho do pentester web) é o trabalho que precede o comando. É mais um exemplo do "entender antes de automatizar": você precisa compreender como o login funciona para instruir a ferramenta.

As limitações severas do ataque online

Agora, o ponto que define o uso profissional do ataque online: suas limitações severas. Primeiro, é lento — cada tentativa é uma ida e volta de rede, então você testa dezenas ou centenas por segundo, não bilhões. Uma wordlist como a rockyou (14 milhões de senhas) contra um serviço online é impraticável de esgotar. Segundo, é barulhento e detectável — cada tentativa gera uma entrada de log, e uma rajada de logins falhos é a assinatura mais óbvia de ataque que existe; qualquer monitoramento decente dispara. Terceiro, e mais limitante, é o bloqueio de contas (account lockout): muitos sistemas bloqueiam uma conta após poucas tentativas falhas, o que não só interrompe seu ataque como causa uma negação de serviço ao usuário legítimo — um efeito colateral grave que você deve evitar (e que as Regras de Engajamento frequentemente proíbem explicitamente).

Password spraying: uma senha contra muitos

Essas limitações levam a uma técnica mais inteligente e furtiva, que você precisa conhecer: o password spraying. Em vez de testar muitas senhas contra um usuário (o que dispara o bloqueio), você testa uma senha comum (ou poucas) contra muitos usuários. A lógica é psicológica e estatística: numa organização com 500 funcionários, é quase certo que alguém usa "Senha@123" ou "Empresa2024" — e testar uma senha por conta fica abaixo do limiar de bloqueio de cada uma. O password spraying inverte o problema e contorna o account lockout, sendo muito mais eficaz e discreto em ambientes corporativos reais do que a força bruta clássica. É aqui que a lista de usuários enumerada rende mais: quanto mais contas você conhece, maior a chance de uma delas ter a senha fraca que você está pulverizando. Ferramentas como o crackmapexec (aula Enumeração SMB: o protocolo mais explorado do mundo Windows) fazem spraying de forma otimizada.

Bloqueio, atraso progressivo e MFA

Do lado defensivo, as contramedidas contra ataques online são claras e eficazes — este é um ataque que a defesa consegue frustrar bem: account lockout ou, melhor, atrasos progressivos após tentativas falhas (que frustram força bruta sem permitir DoS fácil); rate limiting (limitar tentativas por origem/tempo); CAPTCHA em formulários web; MFA (autenticação multifator — mesmo com a senha certa, o atacante para na segunda barreira, e é a defesa mais eficaz contra credenciais comprometidas); monitoramento e alerta de padrões de login anômalos (muitas falhas, ou — assinatura do spraying — uma tentativa em muitas contas diferentes); e, claro, políticas de senha forte que tornam as candidatas do atacante inúteis.

Fontes e leituras recomendadas

Exercícios

  1. Quais informações o Hydra precisa para conduzir um ataque, e o que diferencia as flags -l/-L e -p/-P?

    ✓ Resposta:

    Precisa de um alvo, um serviço/protocolo, uma lista de usuários e uma lista de senhas candidatas. -l especifica um único usuário e -L uma lista de usuários; -p uma única senha e -P uma lista de senhas (maiúsculas = listas).

  2. No ataque a formulários web, para que serve a "string de falha" e como o Hydra a usa para identificar sucesso?

    ✓ Resposta:

    A string de falha é o texto que a resposta contém quando o login fracassa (ex.: "Login incorreto"). O Hydra a usa para distinguir tentativas: se a resposta contém a string, falhou; se não contém, a credencial provavelmente é válida.

  3. Cite as três limitações severas do ataque online e explique por que o account lockout é especialmente problemático.

    ✓ Resposta:

    É lento (cada tentativa é uma requisição de rede), barulhento/detectável (gera logs e alertas) e sujeito a account lockout. O lockout é especialmente problemático porque, além de interromper o ataque, bloqueia o usuário legítimo, causando negação de serviço — um efeito colateral grave frequentemente proibido pelas RoE.

  4. O que é password spraying, como ele contorna o bloqueio de contas, e por que a lista de usuários enumerada o torna mais eficaz?

    ✓ Resposta:

    É testar uma (ou poucas) senha comum contra muitos usuários, em vez de muitas senhas contra um usuário. Contorna o bloqueio porque cada conta recebe poucas tentativas, ficando abaixo do limiar de lockout. A lista de usuários enumerada o torna mais eficaz porque, quanto mais contas se conhece, maior a probabilidade de alguma usar a senha fraca pulverizada.

  5. Cite três contramedidas defensivas contra ataques online e explique por que o MFA é considerado a mais eficaz.

    ✓ Resposta:

    Contramedidas: account lockout/atrasos progressivos, rate limiting, CAPTCHA, MFA, monitoramento de padrões anômalos, políticas de senha forte. O MFA é o mais eficaz porque, mesmo que o atacante descubra a senha correta, ainda precisa do segundo fator, barrando o acesso com credencial comprometida.