Como prevenir seu sistema contra ataques automatizados
Este tutorial faz parte do GUIA COMPLETO do professional em Segurança Ofensiva de Software, saiba mais.
Aula 14: Ataques contra senhas
Senhas fracas são comuns em redes locais e usuários também tendem a repetir senhas. Portanto é possível realizar ataques automatizados para descobrir essas senhas.
Ataques online, offline, de memória e físicos são muito utilizado para descobrir senhas. No caso de ataques online, o tempo de resposta do servidor pode indicar sucesso ou falha bem como deixar vazar algum tipo de dado como nome de usuário.
Existem diversas ferramentas que permitem você realizar quebra de senhas, como Hashcat, John The Ripper, Medusa, THC Hydra, Brutus, RainbowCrack, Aircrack-ng e outras. Assim é possível quebrar serviços HTTP, POP3, IMAP, VNC, SMB, RDP, SSH, LDAP, WiFi, MySQL, FTP, SSL, etc.
O processo de quebra de senha envolve modo incremental (força-bruta) ou wordlist (lista de possíveis senhas). Na internet você encontra diversos arquivos para download de senhas vazadas de serviços grandes, no Kali mesmo você pode localizar essas wordlist buscando no terminal: locate wordlist
Mas você pode criar a sua própria wordlist visando um alvo específico utilizando ferramentas geradoras de wordlist como CeWL, Wordlister e Crunch.
Senhas geralmente são armazenadas como hashes em vez de texto puro, caso um serviço que você usa lhe fornece a senha em texto puro você não deveria estar utilizando esse serviço.
No Windows as senhas são armazenadas no SAM (Security Accounts Manager) database. Este arquivo fica em "%SystemRoot%/system32/config/" e fica inacesssível enquanto o Windows está rodando. O Windows utiliza dois tipos de hash, LM e NT.
O formato hash LM processa as senhas de modo insensitivo. Já o formato NT processa o case-sensitive original da senha. Portanto quebrar senhas no formato LM é muito rápido.
Rainbow Tables (tabelas arco-íris) são tabelas com hashes pré-computadas. Portanto utilizando Rainbow Tables contra determinada hash de uma senha pode ser quebrada rapidamente se comparado com ataque por força-bruta. Para contornar isso, é recomendado adicionar salts (um valor aleatório adicionado a senha do usuário) para tornar o ataque inviável.
Então como se defender destes tipos de ataques?
Contra ataques online é recomendado que os desenvolvedores implementem autenticação em dois fatores, captcha, gerar delay na resposta do servidor, configurar um cookie de dispositivo, permitir usuários apenas de um range específico de IP.
Já do lado do cliente, melhor solução é usar um gerenciador de senhas para evitar repetição e senhas fracas.
Próxima aula, clique aqui.
COMENTÁRIOS