Baixe o app para aproveitar ainda mais
Prévia do material em texto
Brute Force Objetivos Conhecer os mecanismos de geração de wordlist Conhecer ferramentas de bruteforce Entender o que é boa política de senhas Introdução Bruteforce é uma das mais conhecidas técnicas de invasão de sistemas e ainda funciona com frequencia São geradas várias tentativas de conexão a partir do nome de um provável usuário da máquina alvo. A técnica consiste em gerar várias combinações de senhas para esse usuário, na tentativa de ”adivinhar” a senha dele. Wordlist Uma boa wordlist é fundamental para o sucesso de um ataque de brute force. Onde podemos obter? Sites na internet Comprar Também podemos gerar nossa própria wordlist Exemplos de wordlists públicas Site: http://www1.harenet.ne.jp/~waring/vocab/wordlists/vocfreq .html http://www.outpost9.com/files/WordLists.html http://wordlist.sourceforge.net/ P2P: eMule Kazaa Torrent Geração de wordlist Também podemos optar por gerar nossa wordlist. Existem diversas ferramentas que auxiliam na geração de uma wordlist: crunch wyd Geração de Wordlist - Exemplos # crunch 5 8 12345678 > /tmp/wordlist-numeric Data de aniversario: # crunch 10 10 1234567890 -t junior@@@@ > /tmp/juniorlist #wget www.kernel.org # wyd.pl -o /tmp/wordlist index.html # cat /tmp/wordlist | sort -u > /tmp/wordlist- inteligente Geração de Wordlist - Exemplos Ferramentas para Bruteforce Em nosso treinamento, iremos usar as duas principais ferramentas de bruteforce existentes: John The Ripper – Usada para bruteforce local, onde tentamos descobrir uma senha com base em um hash ou na senha criptografada THC-Hydra – Usada para bruteforce remoto, com suporte nativo a diversos protocolos, tais como FTP, Telnet, SSH, dentre outros. Esse programa enviará as senhas e usuários para o serviço remoto, objetivando a autenticação no mesmo John The Ripper Acesse o diretório: #cd /usr/local/john john.conf → Principal arquivo de configuração. john.log → Arquivo de logs. john.pot → Arquivo que armazena as senhas reveladas. Devemos excluí-lo caso desejamos realizar uma nova verificação. password.lst → wordlist padrão que pode ser alterada. John The Ripper - Exemplo Descobrindo senha de arquivo passwd: # unshadow /etc/passwd /etc/shadow > password # john passwd Interrompendo o processo: ^C Visualizando os resultados: # john –show passwd Restaurando o processo: # john --restore John the Ripper Especificando uma wordlist: # john --wordlist=sualista passwd Para realizar o restore, o JTH, utiliza-se do arquivo padrão john.rec. Mas podemos alterá-lo: # john --session=hawai --wordlist=sualista /etc/passwd Caso seja interrompido: #john --restore=hawai THC-Hydra O Hydra é a principal ferramenta que existe para realizar bruteforce remoto. É uma ferramenta gratuíta e criada pelo grupo THC. Assim como o John The Ripper, também é possível recompilar com mais opções Para baixar: http://freeworld.thc.org/releases/hydra-5.8-src.tar.gz THC-Hydra Serviços suportados pelo Hydra: TELNET, FTP, Firebird, HTTP-GET, HTTP-HEAD, HTTPS-GET, HTTP- HEAD, HTTP-PROXY, HTTP-PROXY-NTLM, HTTP-FORM-GET, HTTP- FORM-POST, HTTPS-FORM-GET, HTTPS-FORM-POSTLDAP2, LADP3, SMB, SMBNT, MS-SQL, MYSQL, POSTGRES, POP3 NTLM, IMAP, IMAP-NTLM, NCP, NNTP, PCNFS, ICQ, SAP/R3, Cisco auth, Cisco enable, SMTP-AUTH, SMTP-AUTH NTLM, SSH2, SNMP, CVS, Cisco AAA, REXEC, SOCKS5, VNC, POP3 e VMware-Auth HydraGTK HydraGTK Após baixar o arquivo, execute os seguinte comando para descompactá-lo e compilá-lo: #tar -xzvf hydra-5.8-src.tar.gz #cd hydra-5.8-src #./configure; make; make install #cd hydra-gtk #./configure; make; make install Para executar o programa na interface gráfica, basta chamarmos o binário, que já estará no path do sistema, e informar o path do seu código fonte com o parâmetro –hydra-path: #xhydra --hydra-path [caminho-completo]/hydra-5.8-src/ Hydra no terminal O software é de fácil utilização, precisando somente informar um usuário ou arquivo com vários nomes de usuários, uma senha ou arquivo com várias senhas, o endereço do alvo e o protocolo a ser atacado. # hydra -L /tmp/usuarios -P /tmp/pass -o /tmp/resultado 192.168.0.100 ftp Hydra no terminal O comando mais complexo que o Hydra possui é para realizar bruteforce em formulários web. A única parte onde podemos ter um pouco mais de dificuldade está em identificar os campos do formulário. # hydra -l hydra -P password.lst -s 80 <IP> http-post-form "/administrador/index.php:usuario=^USER^&senha=^PASS^&su bmit=Login:Incorrect Username“ O parâmetro ^USER^ será substituído pelos usuários, no nosso caso, o valor passado para a opção –l, no nosso caso o valor “hydra”, e o parâmetro ^PASS^ será substituído pelos valores passanos na opção –P, no nosso caso, uma wordlist chamada password.lst. BruteSSH2 O BruteSSH2 é um script, que pode ser encontrado em C, Perl ou Python, que realiza ataques de força bruta na porta 22 e utiliza wordlists para descobrir senhas. Para executar é só entrar como root e digitar: # chmod 777 brutessh2.py # ./brutessh2.py Rainbow Crack Um ótimo programa para utilizarmos para quebrar senhas Windows com rainbow tables é o Ophcrack #aptitude install ophcrack Outro programa, que quebra inclusive hashs MD5, SHA1, SHA2 e etc, é o Cain (que roda em Windows). Para baixar Rainbow Tables: •http://rainbowtables.shmoo.com/ Para entender mais: http://www.ethicalhacker.net/content/view/94/24/ Rainbow Crack Utilizando o Rainbow Crack para criação de Rainbow Tables Passo 1: usar o rtgen para gerar as rainbow tables. Passo 2: usar o rtsort para organizar as rainbow tables geradas pelo rtgen. Passo 3: usar o rcrack para buscar o conteúdo das rainbow tables organizadas pelo rtsort. Rainbow Crack Passo 1: usar o rtgen para gerar as rainbow tables Sintaxe: rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index Os comandos do rtgen usados para gerar as rainbow tables são: # rtgen md5 loweralpha-numeric 1 7 0 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 1 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 2 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 3 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 4 3800 33554432 0 # rtgen md5 loweralpha-numeric 1 7 5 3800 33554432 0 Rainbow Crack Passo 2: usar o rtsort para organizar as rainbow tables Utilize os seguintes comandos: # rtsort md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt # rtsort md5_loweralpha-numeric#1-7_1_3800x33554432_0.rt # rtsort md5_loweralpha-numeric#1-7_2_3800x33554432_0.rt # rtsort md5_loweralpha-numeric#1-7_3_3800x33554432_0.rt # rtsort md5_loweralpha-numeric#1-7_4_3800x33554432_0.rt # rtsort md5_loweralpha-numeric#1-7_5_3800x33554432_0.rt Rainbow Crack Passo 3: usar o rcrack para buscar o conteúdo das rainbow tables O programa rcrack é utilizado para acessar as rainbow tables. Ele aceita apenas rainbow tables organizadas. Assumindo que as rainbow tables organizadas estejam no mesmo diretório do programa, para quebrar hashes únicos a linha de comando será: # rcrack *.rt -h aqui_vai_o_hash_para_ser_quebrado Para quebrar múltiplos hashs, coloque todos os hashsem um arquivo de texto, com um hash por linha. E então especifique o nome do arquivo na linha de comando do programa rcrack: # rcrack *.rt -l arquivo_com_lista_de_hashes Laboratório Utilizando o arquivo shadow passado pelo instrutor, vamos executar o John The Ripper para quebrar as senhas. Com o THC-Hydra, vamos executar ataques de força bruta contra um servidor SSH. Bruteforce - Contramedidas Uma boa política de senhas, de forma a garantir que: Senhas são trocadas periodicamente A senha deve ter no mínimo 8 caracteres A senha deve ser complexa, com caracteres especiais, letras e números A mesma senha não pode ser usada dentro de um período mínimo
Compartilhar