Password spraying: o que é e como detectar esse ataque de senha

A maioria dos sistemas bloqueia a conta depois de cinco ou dez senhas erradas. Então o atacante faz o contrário do que você imagina: em vez de tentar mil senhas numa conta, tenta uma senha ("Verao2026!", "Empresa@123") em mil contas — e só volta à primeira depois de um intervalo. Cada conta vê uma tentativa falha e nenhum bloqueio dispara. Isso é password spraying.
O que é password spraying
O que é password spraying e como ele difere de força bruta?
Password spraying é um ataque que testa poucas senhas comuns contra muitas contas, em vez de muitas senhas contra uma só. Como cada conta recebe pouquíssimas tentativas, o bloqueio por número de erros não é acionado.
A lógica é estatística: numa empresa com milhares de usuários, sempre existe alguém com senha previsível — nome da empresa, estação do ano, "Mudar123". O atacante junta uma lista de e-mails (muitas vezes só adivinhando o padrão [email protected]), escolhe uma ou duas senhas e roda. Se um em cada mil acertar, ele já tem um ponto de entrada. A técnica está catalogada no MITRE ATT&CK como T1110.003.
Não confunda com credential stuffing: lá o atacante usa pares de e-mail e senha reais vazados em outros incidentes. No spraying não há vazamento nenhum — ele aposta na senha fraca.
Um caso real: Microsoft e o Midnight Blizzard
Em janeiro de 2024 a Microsoft informou, no blog do MSRC, que o grupo russo Midnight Blizzard entrou na rede corporativa a partir de um ataque de password spraying contra uma conta de teste antiga, de um tenant "legacy" não produtivo. Segundo a própria Microsoft, essa conta não tinha MFA. A partir dela, o grupo acessou uma pequena parte das caixas de e-mail corporativas, incluindo as de executivos e das equipes de segurança e jurídico. A empresa detectou a intrusão em 12 de janeiro de 2024; o início, segundo ela, foi no fim de novembro de 2023. O Bleeping Computer cobriu o caso na época.
A lição aqui não é "a Microsoft errou". É que a conta esquecida, sem MFA, é exatamente o alvo que o spraying procura — e ela existe em quase toda organização.
Por que passa despercebido
- Baixo volume por conta: uma ou duas tentativas por usuário parecem erro de digitação.
- Intervalos longos: o atacante espera entre rodadas para ficar abaixo do limite de bloqueio.
- IPs distribuídos: o relato do caso Midnight Blizzard menciona uso de infraestrutura residencial distribuída, o que derruba regras baseadas em um único IP.
- Protocolos antigos: serviços que não suportam MFA (autenticação legada, IMAP, SMTP básico) viram a porta preferida.
Como detectar nos logs
Como saber se minha empresa está sofrendo password spraying?
Procure um mesmo IP (ou faixa) falhando em muitas contas diferentes em pouco tempo, em vez de muitas falhas na mesma conta. Esse padrão de "um para muitos" é a assinatura do spraying.
Onde olhar:
- Active Directory: ative a auditoria de validação de credenciais e do serviço de autenticação Kerberos nos controladores de domínio. O evento
4625registra falhas de logon (NTLM) e o4771registra falha de pré-autenticação Kerberos. No4625, o substatus0xC000006Aindica senha errada para usuário que existe;0xC0000064indica usuário inexistente — muitos desses sinalizam enumeração de contas. - Microsoft Entra ID: os sign-in logs mostram cada tentativa. Códigos como
AADSTS50126(credencial inválida) espalhados por muitos usuários, vindos do mesmo IP, são o alerta. UmAADSTS50079(MFA exigido) logo após falhas pode indicar que a senha estava certa. - Cuidado com lacunas: spraying via LDAP pode não gerar
4625, então só esse evento não basta.
# Contagem de contas distintas com falha por IP (Windows, logs exportados)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-1)} |
ForEach-Object {
$x = [xml]$_.ToXml()
[pscustomobject]@{
IP = ($x.Event.EventData.Data | Where-Object Name -eq 'IpAddress').'#text'
User = ($x.Event.EventData.Data | Where-Object Name -eq 'TargetUserName').'#text'
}
} | Group-Object IP |
Select-Object Name, @{n='ContasDistintas';e={($_.Group.User | Sort-Object -Unique).Count}} |
Sort-Object ContasDistintas -Descending | Select-Object -First 10O script lista os dez IPs que mais falharam em contas diferentes na última hora. Dezenas de contas para um só IP não é usuário esquecendo senha. Para mais sobre leitura de logs, veja o guia de Get-WinEvent para investigar eventos no Windows.
Como se defender
- MFA em tudo, sem exceção: contas de teste, de serviço antigas e de ex-funcionários inclusive. Prefira métodos resistentes a MFA fatigue, como app TOTP ou passkeys.
- Bloquear autenticação legada que não suporta MFA.
- Lista de senhas banidas: impeça senhas como nome da empresa + ano. O Entra ID oferece proteção de senhas e o smart lockout, que acompanha as falhas por credencial e não só por IP — confira os limites na documentação da Microsoft.
- Inventário de contas: desative contas dormentes e de teste. Foi uma delas que abriu a porta no caso acima.
- Alertas de "um IP, muitas contas" no SIEM ou, no mínimo, na consulta periódica acima.
- Para uso pessoal: senha única e longa por serviço, em um gerenciador de senhas. Spraying só funciona contra senha previsível.
Conclusão
Password spraying não depende de vulnerabilidade, de malware nem de vazamento — depende de uma senha fraca em alguma conta sem MFA. Por isso a defesa é monótona e eficaz: segundo fator em todas as contas, senhas banidas e inventário limpo. Se quiser seguir pelo mesmo cluster, leia como funciona o credential stuffing e compare os dois ataques lado a lado.




Comentários