Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

How i cracked millions of “pt br” hashed passwords

Palestra realizado por Ulisses Castro aka thebug durante a 2a.edição da Nullbyte Security Conference em 21 de novembro de 2015.

Reumo:

Quebrar senhas é arte! Um jogo de paciência onde a cada senha quebrada um pequeno passo rumo ao 100% de uma longa lista com milhares de hashes de senha a serem quebradas. Nesta palestra farei uma retro análise sobre todas as técnicas que utilizei em ataques de força bruta contra milhares de "hashes" de senha, assim como, configurações espefícicas para obter melhores resultados e quebrar a barreira dos 80% no cracking de senhas escritas em nossa língua nativa (pt_BR)..

  • Soyez le premier à commenter

How i cracked millions of “pt br” hashed passwords

  1. 1. How I Cracked Millions of “pt_BR” Hashed Passwords NullByte Security Conference 2015
  2. 2. Aviso O conteúdo aqui apresentado representa minhas próprias conclusões e opiniões e não as de meus empregadores, clientes e etc Senhas apresentadas nesta palestra foram inseridas como exemplo fictício e qualquer semelhança com a realidade é mera coincidência.
  3. 3. Algumas Definições OSINT “Open source intelligence ou Inteligência de Fontes Abertas é o termo usado para descrever a inteligência no sentido de informações, (...) obtida através dados disponíveis para o público em geral, como jornais, revistas científicas, sql injection e emissões de TV. (...)” Wikipedia SQL INJECTION “(...) WHAT'S THAT REALLY MEAN? People can possibly piggyback SQL commands into your statements. (...)" Puppy, Phrack 1998 PÚBLICO "público, pú.bli.co, adj (lat publicu) 1 Pertencente ou relativo a um povo ou ao povo. 2 Que serve para uso de todos. 3 A que todos têm o direito de assistir." http://michaelis.uol.com.br
  4. 4. Equipamento 2x AMD Radeon HD 7970 Double Dissipation 925 Core Clock (MHz) 2048 Stream Processors 384 Bit Memory 5500 Memory Clock (MHz)
  5. 5. Ferramentas ● Bash-fu (shellscripts) ● oclHashcat ● hashcat
  6. 6. De quantos hashes estamos falando? 6.103.439 hashes MD5 provenientes somente de fontes nacionais 4.520.589 hashes únicas
  7. 7. Objetivo ❏ Documentar processo e técnicas utilizadas ❏ Criar mecanismo para busca rápida (grep é muito lento!)
  8. 8. Fácil e rápido ● Alphanumeric + Symbol ● Length < 6 ● < 10 min oclHashcat64.bin -a 3 -m 0 --increment --remove --gpu-temp-retain 75 --outfile=elasticfriends. nouniq.md5.cracked elasticfriends.nouniq.md5 ?a?a?a?a?a?a Recovered......: 489354/4520589 (0.00%) Digests, 0/1 (0.00%) Salts bc06rf ert42g
  9. 9. Demo... ● Alphanumeric + Symbol ● Length < 6 ● < 10 min
  10. 10. Incluindo Charset pt_BR (ISO-8859-1) ● Alphanumeric + Symbol + ISO-8859-1 Charset ● Length < 6 ● < 10 min oclHashcat64.bin -a 3 -m 0 --increment --remove --gpu-temp-retain 75 --outfile=elasticfriends. nouniq.md5.cracked elasticfriends.nouniq.md5 -1 charsets/standard/Portuguese/pt_ISO-8859- 1.hcchr -2 ?1?a ?2?2?2?2?2?2?2?2 Recovered......: 87/4031235 (0.00%) Digests, 0/1 (0.00%) Salts
  11. 11. Demo... ● Alphanumeric + Symbol + ISO-8859-1 Charset ● Length < 6 ● < 10 min tiça fênix barça CARTÃO chulé Mengão
  12. 12. Máximo de números possíveis ● Numeric ● Length > 6 < 13 ● < 10 min oclHashcat64.bin -a 3 -m 0 --increment --remove --gpu-temp-retain 75 --outfile=elasticfriends. nouniq.md5.cracked elasticfriends.nouniq.md5 ?d?d?d?d?d?d?d?d?d?d?d?d?d Recovered......: 248449/4031148 (0.00%) Digests, 0/1 (0.00%) Salts 24069656 344300 3492565046
  13. 13. Minúsculas pt_BR ● ISO-8859-1 Lowercase ● Length < 7 ● < 10 min oclHashcat64.bin -a 3 -m 0 --increment --remove --gpu-temp-retain 75 --outfile=elasticfriends. nouniq.md5.cracked elasticfriends.nouniq.md5 -1 /c/tools/oclHashcat-1.37 /charsets/standard/Portuguese/pt_ISO-8859-1.hcchr -2 ?1?l ?2?2?2?2?2?2?2 Recovered......: 71313/3782676 (0.00%) Digests, 0/1 (0.00%) Salts
  14. 14. Maiúsculas pt_BR ● ISO-8859-1 Uppercase ● Length > 6 < 7 ● < 10 min oclHashcat64.bin -a 3 -m 0 --increment --remove --gpu-temp-retain 75 --outfile=elasticfriends. nouniq.md5.cracked elasticfriends.nouniq.md5 -1 /c/tools/oclHashcat-1.37 /charsets/standard/Portuguese/pt_ISO-8859-1.hcchr -2 ?1?u ?2?2?2?2?2?2?2 Recovered......: 2785/3711363 (0.00%) Digests, 0/1 (0.00%) Salts
  15. 15. Só símbolos ● Symbol ● Length < 8 ● < 10 min oclHashcat64.bin -a 3 -m 0 --increment --remove --gpu-temp-retain 75 --outfile=elasticfriends. nouniq.md5.cracked elasticfriends.nouniq.md5 ?s?s?s?s?s?s?s?s Recovered......: 19/3707927 (0.00%) Digests, 0/1 (0.00%) Salts
  16. 16. Wordlists oclHashcat64.bin -a 0 -m 0 --remove --gpu-temp-retain 75 --outfile=elasticfriends.nouniq.md5. cracked elasticfriends.nouniq.md5 all_words.dic Recovered......: 980236/3707908 (0.00%) Digests, 0/1 (0.00%) Salts dazzlepod.dic movies_nospace_lower.txt proverbs_nopunct_nospace.txt tomsawyer.dic artists_nopunct.txt actors-characters_nopunct_lower.txt movies.txt proverbs_nopunct_nospace_lower.txt subjects_nospace.txt actors_nopunct_lower.txt gaming.dic eNtr0pY_ALL_sort_uniq_clean.dic authors_nospace.txt proverbs_nopunct_lower.txt works_nopunct_nospace.txt labels_nopunct_lower.txt movies_nopunct_nospace_lower.txt actors-characters_nopunct_nospace_lower.txt bigpot.pot (...)
  17. 17. Onde estamos 3 horas depois? ● Recovered......: 489354/4520589 (0.00%) Digests, 0/1 (0.00%) Salts ● Recovered......: 87/4031235 (0.00%) Digests, 0/1 (0.00%) Salts ● Recovered......: 248449/4031148 (0.00%) Digests, 0/1 (0.00%) Salts ● Recovered......: 71313/3782676 (0.00%) Digests, 0/1 (0.00%) Salts ● Recovered......: 2785/3711363 (0.00%) Digests, 0/1 (0.00%) Salts ● Recovered......: 19/3707927 (0.00%) Digests, 0/1 (0.00%) Salts ● Recovered......: 980236/3707908 (0.00%) Digests, 0/1 (0.00%) Salts 1.792.243 out of 4.520.589 = 39.66%
  18. 18. Indo além, técnicas conhecidas ● Combinator ● Fingerprint ● Hybrid ● Rule-based ● Brute-Force (markov)
  19. 19. Combinator ● Você tem dois dicionários, um para cada "lado". ● Cada palavra do dicionário da "direita" é anexada a cada palavra do lado esquerdo. ● Se seu dicionário do lado esquerdo tem 100 palavras e o dicionário do lado direito tem 50, o número total de candidatos geradados é 100 * 50 = 5000 ricardosaudadeseternas soeuseiminhasenha2 MarceloRoberto larissalourenço coredevices23 TheOffspring1998Americana P@ssw0rd194543P@ssw0rd
  20. 20. Fingerprint ● Automático e Cíclico ● Sem interação humana ● Expander sobre a lista de hashes quebradas + Combinator Ex: Palavra “nullbyte” expandida gera 66 candidatos que quando combinados podem encontrar senhas como as abaixo: null123 bytenull 123nullbyte
  21. 21. Hybrid ● Mácara + Dicionário ● Dicionário + Máscara mengo849578 thiago828486 mestre188416 13dejulho 220391jurema
  22. 22. Rule-Based ● Rules são como pequenas linguagens de programação, tanto Hashcat como John The Ripper tem um interpretador próprio (porém compatíveis em sua grande maioria de regras) ● Por exemplo uma regra para inserir um caractere no começo da palavra, inverter uma palavra, remover caracteres, etc ● Tanto John como Hashcat vem com alguns arquivos de .rule prontos para utilizar ● Utilizando o modo debug é possível gerar rules para cada hash quebrada
  23. 23. Rule-Based ● Best69 ● Leetspeak + Toggles ● cat rules/* > /tmp/all.rules c1t3d0wn 325476/es P@ssw0rd N@ty29o2
  24. 24. Markov Brute ● Usa a tool hcstatgen (hashcat-utils) para gerar arquivo hcstat ● Otimiza por posição através de “ranking” [s] [e] [n] [h] [a] 1a. s , b , t , r , p 2a. a , e , i , k , h 3a. r , t , e , w , s
  25. 25. Pipal, PACK, maskgen.... (...) Character sets loweralphanum: 826625 (42.13%) numeric: 469265 (23.92%) loweralpha: 351744 (17.93%) upperalphanum: 202274 (10.31%) mixedalphanum: 36764 (1.87%) loweralphaspecialnum: 20968 (1.07%) upperalpha: 16518 (0.84%) mixedalpha: 11328 (0.58%) loweralphaspecial: 9131 (0.47%) specialnum: 4281 (0.22%) mixedalphaspecialnum: 4019 (0.2%) mixedalphaspecial: 1290 (0.07%) upperalphaspecialnum: 863 (0.04%) upperalphaspecial: 263 (0.01%) special: 69 (0.0%)
  26. 26. Mecanismo de busca rápida Como?
  27. 27. Big Data Techniques FTW! Elasticsearch + Kibana
  28. 28. Big Data Techniques FTW! es_nullbyte_populate.py
  29. 29. Big Data Techniques FTW! es_nullbyte_search.py
  30. 30. Obrigado uss.thebug [a] gmail.com @usscastro

×