of 30/30
How I Cracked Millions of “pt_BR” Hashed Passwords NullByte Security Conference 2015

How i cracked millions of “pt br” hashed passwords

  • View
    260

  • Download
    4

Embed Size (px)

Text of 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 contedo aqui apresentado representa minhas prprias concluses e opinies e no as de meus empregadores, clientes e etc Senhas apresentadas nesta palestra foram inseridas como exemplo fictcio e qualquer semelhana com a realidade mera coincidncia.
  3. 3. Algumas Definies OSINT Open source intelligence ou Inteligncia de Fontes Abertas o termo usado para descrever a inteligncia no sentido de informaes, (...) obtida atravs dados disponveis para o pblico em geral, como jornais, revistas cientficas, sql injection e emisses de TV. (...) Wikipedia SQL INJECTION (...) WHAT'S THAT REALLY MEAN? People can possibly piggyback SQL commands into your statements. (...)" Puppy, Phrack 1998 PBLICO "pblico, 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 tm 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 tcnicas utilizadas Criar mecanismo para busca rpida (grep muito lento!)
  8. 8. Fcil e rpido 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 tia fnix bara CARTO chul Mengo
  12. 12. Mximo de nmeros possveis 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. Minsculas 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. Maisculas 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 smbolos 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 alm, tcnicas conhecidas Combinator Fingerprint Hybrid Rule-based Brute-Force (markov)
  19. 19. Combinator Voc tem dois dicionrios, um para cada "lado". Cada palavra do dicionrio da "direita" anexada a cada palavra do lado esquerdo. Se seu dicionrio do lado esquerdo tem 100 palavras e o dicionrio do lado direito tem 50, o nmero total de candidatos geradados 100 * 50 = 5000 ricardosaudadeseternas soeuseiminhasenha2 MarceloRoberto larissaloureno coredevices23 TheOffspring1998Americana [email protected]@ssw0rd
  20. 20. Fingerprint Automtico e Cclico Sem interao 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 Mcara + Dicionrio Dicionrio + Mscara mengo849578 thiago828486 mestre188416 13dejulho 220391jurema
  22. 22. Rule-Based Rules so como pequenas linguagens de programao, tanto Hashcat como John The Ripper tem um interpretador prprio (porm compatveis em sua grande maioria de regras) Por exemplo uma regra para inserir um caractere no comeo 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 possvel gerar rules para cada hash quebrada
  23. 23. Rule-Based Best69 Leetspeak + Toggles cat rules/* > /tmp/all.rules c1t3d0wn 325476/es [email protected] [email protected]
  24. 24. Markov Brute Usa a tool hcstatgen (hashcat-utils) para gerar arquivo hcstat Otimiza por posio atravs 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 rpida 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