SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
How I Cracked Millions of
“pt_BR” Hashed Passwords
NullByte Security Conference 2015
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.
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
Equipamento
2x AMD Radeon HD 7970 Double Dissipation
925 Core Clock (MHz)
2048 Stream Processors
384 Bit Memory
5500 Memory Clock (MHz)
Ferramentas
● Bash-fu (shellscripts)
● oclHashcat
● hashcat
De quantos hashes estamos falando?
6.103.439 hashes MD5 provenientes somente de fontes nacionais
4.520.589 hashes únicas
Objetivo
❏ Documentar processo e técnicas utilizadas
❏ Criar mecanismo para busca rápida (grep é muito lento!)
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
Demo...
● Alphanumeric + Symbol
● Length < 6
● < 10 min
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
Demo...
● Alphanumeric + Symbol + ISO-8859-1 Charset
● Length < 6
● < 10 min
tiça
fênix
barça
CARTÃO
chulé
Mengão
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
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
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
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
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
(...)
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%
Indo além, técnicas conhecidas
● Combinator
● Fingerprint
● Hybrid
● Rule-based
● Brute-Force (markov)
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
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
Hybrid
● Mácara + Dicionário
● Dicionário + Máscara
mengo849578
thiago828486
mestre188416
13dejulho
220391jurema
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
Rule-Based
● Best69
● Leetspeak + Toggles
● cat rules/* > /tmp/all.rules
c1t3d0wn
325476/es
P@ssw0rd
N@ty29o2
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
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%)
Mecanismo de busca rápida
Como?
Big Data Techniques FTW!
Elasticsearch + Kibana
Big Data Techniques FTW!
es_nullbyte_populate.py
Big Data Techniques FTW!
es_nullbyte_search.py
Obrigado
uss.thebug [a] gmail.com
@usscastro

Más contenido relacionado

Destacado

Rootkits em kernel space - Redshift, um rootkit para o kernel do FreeBSD
Rootkits em kernel space - Redshift, um rootkit para o kernel do FreeBSDRootkits em kernel space - Redshift, um rootkit para o kernel do FreeBSD
Rootkits em kernel space - Redshift, um rootkit para o kernel do FreeBSDNullbyte Security Conference
 
Evitando execução de códigos arbitrários com GRsecurity e PaX
Evitando execução de códigos arbitrários com GRsecurity e PaXEvitando execução de códigos arbitrários com GRsecurity e PaX
Evitando execução de códigos arbitrários com GRsecurity e PaXNullbyte Security Conference
 
Maslows need hierarchy
Maslows need hierarchyMaslows need hierarchy
Maslows need hierarchyrojiya93
 
Actividad de-aprendizaje-1 y 2-joseph-calva
Actividad de-aprendizaje-1 y 2-joseph-calvaActividad de-aprendizaje-1 y 2-joseph-calva
Actividad de-aprendizaje-1 y 2-joseph-calvaJOSEPHCALVA
 
Xmas Revolution Manualen
Xmas Revolution ManualenXmas Revolution Manualen
Xmas Revolution ManualenJack Pot
 
Abdelfattah Khaled Mohamed Khaled - Civil Engineer
Abdelfattah Khaled Mohamed Khaled - Civil EngineerAbdelfattah Khaled Mohamed Khaled - Civil Engineer
Abdelfattah Khaled Mohamed Khaled - Civil EngineerAbdelfattah Khaled
 
Impuesto iva cap 2
Impuesto iva cap 2Impuesto iva cap 2
Impuesto iva cap 2Vivian Marca
 
Aplicaciones para el desarrollo de tic’s en la educación
Aplicaciones para el desarrollo de tic’s en la educaciónAplicaciones para el desarrollo de tic’s en la educación
Aplicaciones para el desarrollo de tic’s en la educaciónMichael Garrido
 
Macau Science Museum PPT
Macau Science Museum PPTMacau Science Museum PPT
Macau Science Museum PPTCatherine Lao
 
презентація досвіду роботи вікторенко з обдарованими дітьми
презентація досвіду роботи вікторенко з обдарованими дітьмипрезентація досвіду роботи вікторенко з обдарованими дітьми
презентація досвіду роботи вікторенко з обдарованими дітьмиНадія Вікторенко
 
Actividad de-aprendizaje-1 y 2-joseph-calva
Actividad de-aprendizaje-1 y 2-joseph-calvaActividad de-aprendizaje-1 y 2-joseph-calva
Actividad de-aprendizaje-1 y 2-joseph-calvaJOSEPHCALVA
 

Destacado (18)

Rootkits em kernel space - Redshift, um rootkit para o kernel do FreeBSD
Rootkits em kernel space - Redshift, um rootkit para o kernel do FreeBSDRootkits em kernel space - Redshift, um rootkit para o kernel do FreeBSD
Rootkits em kernel space - Redshift, um rootkit para o kernel do FreeBSD
 
Stealth post-exploitation with phpsploit
Stealth post-exploitation with phpsploitStealth post-exploitation with phpsploit
Stealth post-exploitation with phpsploit
 
Hacking cable modems the later years
Hacking cable modems the later yearsHacking cable modems the later years
Hacking cable modems the later years
 
Evitando execução de códigos arbitrários com GRsecurity e PaX
Evitando execução de códigos arbitrários com GRsecurity e PaXEvitando execução de códigos arbitrários com GRsecurity e PaX
Evitando execução de códigos arbitrários com GRsecurity e PaX
 
Maslows need hierarchy
Maslows need hierarchyMaslows need hierarchy
Maslows need hierarchy
 
Tema 1.9
Tema 1.9Tema 1.9
Tema 1.9
 
Actividad de-aprendizaje-1 y 2-joseph-calva
Actividad de-aprendizaje-1 y 2-joseph-calvaActividad de-aprendizaje-1 y 2-joseph-calva
Actividad de-aprendizaje-1 y 2-joseph-calva
 
Xmas Revolution Manualen
Xmas Revolution ManualenXmas Revolution Manualen
Xmas Revolution Manualen
 
Abdelfattah Khaled Mohamed Khaled - Civil Engineer
Abdelfattah Khaled Mohamed Khaled - Civil EngineerAbdelfattah Khaled Mohamed Khaled - Civil Engineer
Abdelfattah Khaled Mohamed Khaled - Civil Engineer
 
Digital
DigitalDigital
Digital
 
Impuesto iva cap 2
Impuesto iva cap 2Impuesto iva cap 2
Impuesto iva cap 2
 
Calzada ppt
Calzada pptCalzada ppt
Calzada ppt
 
Aplicaciones para el desarrollo de tic’s en la educación
Aplicaciones para el desarrollo de tic’s en la educaciónAplicaciones para el desarrollo de tic’s en la educación
Aplicaciones para el desarrollo de tic’s en la educación
 
portfolio-web
portfolio-webportfolio-web
portfolio-web
 
Macau Science Museum PPT
Macau Science Museum PPTMacau Science Museum PPT
Macau Science Museum PPT
 
Documentos académicos.
Documentos académicos.Documentos académicos.
Documentos académicos.
 
презентація досвіду роботи вікторенко з обдарованими дітьми
презентація досвіду роботи вікторенко з обдарованими дітьмипрезентація досвіду роботи вікторенко з обдарованими дітьми
презентація досвіду роботи вікторенко з обдарованими дітьми
 
Actividad de-aprendizaje-1 y 2-joseph-calva
Actividad de-aprendizaje-1 y 2-joseph-calvaActividad de-aprendizaje-1 y 2-joseph-calva
Actividad de-aprendizaje-1 y 2-joseph-calva
 

Similar a Cracking Millions of Hashed Passwords Using Big Data Techniques

Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Cristiano Rafael Steffens
 
TDC2016SP - Programando PHP com mais segurança!
TDC2016SP - Programando PHP com mais segurança!TDC2016SP - Programando PHP com mais segurança!
TDC2016SP - Programando PHP com mais segurança!tdc-globalcode
 
Programando php com mais segurança
Programando php com mais segurançaProgramando php com mais segurança
Programando php com mais segurançaMichael Douglas
 
Aula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEAula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEEvandro Júnior
 
Slide curso metasploit
Slide curso metasploitSlide curso metasploit
Slide curso metasploitRoberto Soares
 
Análise de malware com software livre
Análise de malware com software livreAnálise de malware com software livre
Análise de malware com software livreDiego Santos
 
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfINTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfIvanSaboia1
 
Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Cesar Augusto
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao cprofwtelles
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceLuca Bastos
 
Revista programar php -iniciação
Revista programar php -iniciaçãoRevista programar php -iniciação
Revista programar php -iniciaçãoempalamado software
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shellMarcio Pereira
 

Similar a Cracking Millions of Hashed Passwords Using Big Data Techniques (20)

Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)
 
TDC2016SP - Programando PHP com mais segurança!
TDC2016SP - Programando PHP com mais segurança!TDC2016SP - Programando PHP com mais segurança!
TDC2016SP - Programando PHP com mais segurança!
 
Programando php com mais segurança
Programando php com mais segurançaProgramando php com mais segurança
Programando php com mais segurança
 
Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
Workshop Python
Workshop PythonWorkshop Python
Workshop Python
 
Aula VHDL
Aula VHDLAula VHDL
Aula VHDL
 
Aula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEAula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SE
 
Slide curso metasploit
Slide curso metasploitSlide curso metasploit
Slide curso metasploit
 
Análise de malware com software livre
Análise de malware com software livreAnálise de malware com software livre
Análise de malware com software livre
 
Minicurso do Terminal ao Python
Minicurso do Terminal ao PythonMinicurso do Terminal ao Python
Minicurso do Terminal ao Python
 
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfINTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
 
Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ce
 
Revista programar php -iniciação
Revista programar php -iniciaçãoRevista programar php -iniciação
Revista programar php -iniciação
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
 

Más de Nullbyte Security Conference

Windows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objectsWindows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objectsNullbyte Security Conference
 
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)Nullbyte Security Conference
 

Más de Nullbyte Security Conference (6)

Speeding up Red Team engagements with carnivorall
Speeding up Red Team engagements with carnivorallSpeeding up Red Team engagements with carnivorall
Speeding up Red Team engagements with carnivorall
 
Gitminer 2.0 - Advance Search on Github
Gitminer 2.0 - Advance Search on GithubGitminer 2.0 - Advance Search on Github
Gitminer 2.0 - Advance Search on Github
 
Automatizando o abuso de repositórios expostos
Automatizando o abuso de repositórios expostosAutomatizando o abuso de repositórios expostos
Automatizando o abuso de repositórios expostos
 
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objectsWindows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
 
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
 
Is rust language really safe?
Is rust language really safe? Is rust language really safe?
Is rust language really safe?
 

Cracking Millions of Hashed Passwords Using Big Data Techniques

  • 1. How I Cracked Millions of “pt_BR” Hashed Passwords NullByte Security Conference 2015
  • 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. 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. Equipamento 2x AMD Radeon HD 7970 Double Dissipation 925 Core Clock (MHz) 2048 Stream Processors 384 Bit Memory 5500 Memory Clock (MHz)
  • 6. De quantos hashes estamos falando? 6.103.439 hashes MD5 provenientes somente de fontes nacionais 4.520.589 hashes únicas
  • 7. Objetivo ❏ Documentar processo e técnicas utilizadas ❏ Criar mecanismo para busca rápida (grep é muito lento!)
  • 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. Demo... ● Alphanumeric + Symbol ● Length < 6 ● < 10 min
  • 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. Demo... ● Alphanumeric + Symbol + ISO-8859-1 Charset ● Length < 6 ● < 10 min tiça fênix barça CARTÃO chulé Mengão
  • 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. 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. 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. 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. 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. 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. Indo além, técnicas conhecidas ● Combinator ● Fingerprint ● Hybrid ● Rule-based ● Brute-Force (markov)
  • 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. 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. Hybrid ● Mácara + Dicionário ● Dicionário + Máscara mengo849578 thiago828486 mestre188416 13dejulho 220391jurema
  • 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. Rule-Based ● Best69 ● Leetspeak + Toggles ● cat rules/* > /tmp/all.rules c1t3d0wn 325476/es P@ssw0rd N@ty29o2
  • 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. 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. Mecanismo de busca rápida Como?
  • 27. Big Data Techniques FTW! Elasticsearch + Kibana
  • 28. Big Data Techniques FTW! es_nullbyte_populate.py
  • 29. Big Data Techniques FTW! es_nullbyte_search.py