O documento discute ataques de força bruta a senhas, resumindo os principais tipos de ataques (não-eletrônicos, offline, passivos e ativos), ferramentas usadas em cada tipo (John the Ripper, TCPDump, Dsniff, Crunch, THC-Hydra) e exemplos de uso das ferramentas.
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Webinar sobre ataques de força bruta a senhas
1. Webinar #16
Ataques de Força Bruta
Rafael Soares Ferreira
Clavis Segurança da Informação
rafael@clavis.com.br
2. $ whoami
• Grupo Clavis
• Sócio Diretor Técnico
• Detecção e resposta a incidentes de segurança
• Testes de invasão em redes, sistemas e aplicações.
5. Política de Senhas
Força de uma senha
l Força da senha: Quão difícil é adivinhá-la?
l Maioria das técnicas de recuperação de senhas conta
com a fraqueza das senhas
l No entanto, não são todas
l A senha forte é capturada da mesma forma que a senha
fraca, se digitada em um local inseguro
6. Política de Senhas
Força de uma senha
l Boas práticas na escolha de senhas
l Usar senhas longas
l Usar grupos de caracteres variados
l Combinar mais de uma palavra (passphrase)
l Más práticas na escolhas de senha
l Usar senhas curtas
l Usar somente letras ou somente números ou datas
l Usar palavras de dicionários (qualquer língua)
l Usar datas oficiais registradas
l Usar palavras publicadas em páginas pessoais
7. Política de Senhas
Armazenamento de senhas
l Cuidado com o local onde senhas serão armazenadas
l Prefira o método seguro: na cabeça
l Se não for possível, use criptografia
l Senhas fortes não garantem segurança
l Não impedem ataques locais
l Não tem efeito se a autenticação for contornada
l Mas representam fator importante da segurança
8. Ataques a Senhas
Principais Tipos de Ataques a Senhas
l Ataques Não-Eletrônicos
l Não envolvem dispositivos eletrônicos ou softwares de captura
l Ataques Offline
l Executados localmente sobre hashes pré-computados
l Ataques Passivos
l Senha interceptada na rede sem enviar pacotes
l Ataques Ativos
l Interagem diretamente com o alvo na rede
9. Ataques a Senhas
Ataques Não-Eletrônicos
l Ataques que não utilizam dispositivos eletrônicos
l Exploram (maus) hábitos de pessoas
l Modalidades mais comuns
l Engenharia Social: Induzir alguém a fornecê-la voluntariamente
l Dumpster Diving: Encontrar a senha descartada em uma lixeira
l Shoulder Surfing: Observar enquanto alguém a digita
10. Ataques a Senhas
Ataques Offline
l Ataques locais sobre hashes de senhas
l Pré-requisito: Capturar o arquivo com os hashes
l Pode utilizar técnicas de processamento paralelo
l Processamento na GPU
l Processamento em clusters
l Modalidades mais comuns
l Senha → Hash: A partir de uma lista de senhas, descobrir qual
delas gera um dado hash
l Hash → Senha: A partir de uma base de hashes, descobrir que
senha corresponde o hash dado
11. Ataques a Senhas
Ataques Offline
l Tipos de ataque
l Força bruta: Gera-se hash de todas as combinações possíveis
de senha em um conjunto de caracteres
l Dicionário: Gera-se hash de todas as senhas armazenadas em
um arquivo (wordlist)
l Híbrido: Mistura força bruta e dicionário ao testar senhas da
wordlist e variá-las com outros caracteres
l Rainbow Tables: Procura o hash alvo na tabela e, caso esteja,
retorna a senha correspondente
12. Ataques a Senhas
Ferramenta para Ataques Offline
l John the Ripper
l Ferramenta para recuperar senhas fracas
l Sintaxe de uso
l john [opções] arq_hashes_1 arq_hashes_2 [...]
l Características
l Faz ataques de força bruta, de dicionário e híbrido
l Suporta diversos algoritmos de hash
l Versões recentes suportam processamento na GPU
13. Ataques a Senhas
Ferramenta para Ataques Offline
l Modos de operação
l Single: Gera uma wordlist baseada em informações do arquivo
de hashes (nome, diretório home, etc)
l Wordlist: Ataque de dicionário clássico
l Incremental: Ataque de força bruta clássico. Permite determinar
o conjunto de caracteres utilizado
l External: Testa senhas geradas por funções externas escritas
em C e implementadas pelo usuário
14. Ataques a Senhas
Ferramenta para Ataques Offline
l Exemplos de ataque com o John the Ripper
l john --single arq_hashes
Realiza o ataque de dicionário em modo “single” (o próprio john gera
l
a wordlist)
john --wordlist=“password.lst” --rules arq_hashes
l
l Realiza o ataque híbrido em modo “wordlist”
john –incremental=“alnum” arq_hashes
l
Realiza o ataque de força bruta em modo “incremental” e testa
l
combinações de senhas alfa-numéricas ([A-Za-z0-9])
15. Ataques a Senhas
Ataques Passivos
l Ataques que capturam senhas passando na rede
l Não gera ruído na rede (Indetectável)
l Depende que o usuário envie a senha na rede
l Modalidades mais comuns
l Wire Sniffing: Capturar senhas trafegando sem criptografia na
rede
l Man-in-the-Middle: Induzir alguém a pensar que está utilizando
um canal seguro
l Replay: Reproduzir sequências de login capturadas
16. Ataques a Senhas
Ferramenta para Ataques Passivos
l TCPDump
l Ferramenta para captura e analise de pacotes
l Sintaxe de uso
l tcpdump [opções] [expressão]
l Características
l Capaz de filtrar pacotes no momento da captura
l Exporta pacotes completos no formato PCAP, usado por diversos
outros analisadores de pacotes
l Captura somente os pacotes que passam pela estação
executando o TCPDump (não força modo promíscuo)
• Para forçar outros pacotes a passar pela estação execu-tando o
TCPDump, é preciso utilizar outras ferramentas
17. Ataques a Senhas
Ferramenta para Ataques Passivos
l Capturando tráfego de rede com o TCPDump
l tcpdump -ni eth0
l Captura todo o tráfego da rede e o exibe em tempo real
l tcpdump -ni eth0 -w dump_rede.pcap
l Captura todo o tráfego da rede e o armazena no arquivo
l tcpdump -ni eth0 host 192.168.0.1
• Captura o tráfego de rede que tem como origem ou destino o
endereço IP 192.168.0.1
l tcpdump -ni eth0 tcp port 80
l Captura o tráfego de rede que utiliza a porta 80/TCP
18. Ataques a Senhas
Ferramenta para Ataques Passivos
l Dsniff
• Conjunto de ferramentas para auditoria de redes
l Sintaxe de uso
• dsniff [opções] [expressão]
l Características
• Captura senhas enviadas em texto claro em tempo real
• Atua passivamente se somente o dsniff for executado
• Outras ferramentas do conjunto podem lançar ataques ativos
diversos.
19. Ataques a Senhas
Ferramenta para Ataques Passivos
l Exemplos de ataque com o Dsniff
l dsniff -ni eth0
Monitora todo o tráfego da LAN em modo promíscuo em captura
l
credenciais transmitidas em texto claro
l dsniff -np dump_rede.pcap
Busca credenciais transmitidas em texto claro em um arquivo de
l
captura
l Dsniff -ni eth0 host 192.168.0.10
• Monitora o tráfego que tem como origem ou destino o endereço IP
192.168.0.10 e busca passivamente por credenciais transmitidas em
texto claro
20. Ataques a Senhas
Ataques Ativos
l Ataques que interagem com o alvo na rede
l Gera ruído na rede (facilmente detectável)
l Modalidades mais comuns
l Tentativa/Erro Força Bruta/Dicionário/Híbrido: Testar diversas
senhas iterativamente
l Tentativa/Erro Senha Padrão: Checar se a senha de fábrica dos
dispositivos foi trocada
l Instalação de Malware: Instalar malware que captura senhas em
cache ou ao digitar
l Injeção de hashes: Injeção de um hash conhecido
21. Ataques a Senhas
Ferramenta para Ataques Ativos
l Crunch
• Ferramenta para criar wordlists por regras especificadas
l Sintaxe de uso
• crunch <tam-min> <tam-max> [opções]
l Características
• Permite criar wordlists utilizando conjuntos de caracteres e
regras de formação específicas
• Permite limitar a quantidade de senhas geradas
• Permite redirecionar a saída diretamente para outra ferramenta
22. Ataques a Senhas
Ferramenta para Ataques Ativos
l Gerando wordlists com o Crunch
l crunch 5 8
Gera senhas com o conjunto de caracteres padrão ([a-z]) de
l
tamanho entre 5 e 8, ou seja, de “aaaaa” a “zzzzzzzz”
l crunch 8 8 -t ’^clavis%’
• Gera senhas que consistem de um caractere especial, seguido da
string “clavis”, e um número
23. Ataques a Senhas
Ferramenta para Ataques Ativos
l THC-Hydra
• Ferramenta para realizar ataques de dicionário/força bruta
remotamente
l Sintaxe de uso
• hydra [opções] servidor serviço [opções_adicionais]
l Características
• Suporta ataques remotos a diversos protocolos, como, por
exemplo: FTP, HTTP, IMAP, MS-SQL, MySQL, Oracle, POP3,
POSTGRES, RDP, SMB, SMTP, SSH, Telnet, etc.
• Permite parar e retomar um ataque posteriormente
• Permite limitar a quantidade de requisições simultâneas
24. Ataques a Senhas
Ferramenta para Ataques Ativos
l Exemplos de ataque com o THC-Hydra
l hydra -l root -P password.lst 192.168.0.1 ssh
Realiza um ataque de dicionário sobre o servidor SSH em execução
l
no endereço IP 192.168.0.1 na porta padrão deste serviço (22/TCP)
sobre o usuário “root”.
l hydra -L username.lst -p 'admin12' 192.168.0.1 ldap3
Realiza um ataque de dicionário buscando descobrir se um dos
l
usuários indicados utiliza a senha “admin12” no LDAPv3.