Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare una empresa de Scribd logo
Password Cracking
correct horse battery staple
Hello!I am Javier Junquera
Investigador en ciberseguridad, y profesor
asociado en la Universidad de Alcalá
You can find me at javier.junquera@uah.es
@junquera
2
Cybersecurity Research
Group UAH
I am Kevin Van Liebergen
Becario de investigación en cátedra
ISDEFE
You can find me at @KevinLiebergen
3
Hello!
Contraseñas
Almacenamiento de contraseñas
➔ Codificar no es cifrar
◆ Reversible sin dificultad
➔ Cifrar no es hashear
◆ Reversible
➔ Hashear es hashear, pero no lo es todo
Codificaciones ¿Son seguras?
❖ Tipos
➢ Base64
➢ Base32
➢ ASCII
No existe clave,
únicamente es conversión
Codificaciones. Usos
● Parámetro HTTP en los formularios
● Datos binarios en URL
$ printf “ciberseg” | base64
Y2liZXJzZWc=
$ printf “Y2liZXJzZWc=” | base64 -d
ciberseg
Almacenamiento de contraseñas
➔ Las contraseñas se deben almacenar protegidas
◆ En claro: No están protegidas
◆ En base64: No están protegidas
◆ En base32: Tampoco
Es una función matemática que comprime la
información de forma rápida para que sea identificable.
Hashing: ¿Qué es un hash?
❖ Siempre del mismo tamaño
❖ No es reversible
❖ Los mismos datos dan siempre
el mismo hash
H(0000010111110010)
=
0110
Checksum
0000
0101
1111
+ 0010
10110
H(0000010111110010)
=
0110
Checksum
0000
0101
1111
+ 0010
10110
Es una función matemática que comprime la
información de forma rápida para que sea identificable.
Hashing: ¿Qué es un hash?
❖ Siempre del mismo tamaño
❖ No es reversible
❖ Los mismos datos dan siempre
el mismo hash
Es una función matemática que comprime la
información de forma rápida para que sea identificable.
¿Qué es un hash criptográfico?
❖ Siempre del mismo tamaño
❖ No es reversible
❖ Los mismos datos dan siempre
el mismo hash
❖ Dos datos distintos dan
siempre dos hashes
diferentes
Hash criptográfico
1. H(A) = H(A)
2. H(A) != H(B)
3. | H(A) - H(A + ϵ) | > δ
4. H-1
(H(A)) = ∅
Hashes criptográficos
❖ MD5
❖ SHA1
❖ SHA256
❖ SHA-3 (Keccak)
Hashes criptográficos
$ printf 'jajaja' | openssl dgst -md5
(stdin)= 655faa8ba799a3a1ae309c2b40d142fc
$ printf 'jajaja' | openssl dgst -sha1
(stdin)= 4598cfd1cfe70d29e5c9d77b51002f272790ba66
$ printf 'jajaja' | openssl dgst -sha256
(stdin)= 0a887c3cb3de97b3968be5c7fb81ed9e452928db71d66620b7766bf7c5413878
$ printf 'jajaja' | openssl dgst -sha3-512
(stdin)=
c88fbe79ca2e809915a6ab2e8fd8461c15180ac28cd7b4dab0fbca9f8812169089305890a6e468
bcde9f08e4cc3eaa00775ab9c9ec28c8cfb54d4de9493676fd
Hashes
➔ Las contraseñas se deben almacenar protegidas
➔ ¿Están protegidas con MD5, SHA1, SHA256… ?
◆ No lo suficiente
Hashes
Pongamos que tenemos la siguiente contraseña:
Passw0rd!
➔ a-z → 26 caracteres
➔ A-Z → 26 caracteres
➔ Caracteres especiales → 32 caracteres
➔ Total: 84 caracteres; Tamaño: 9;
➔ Coste medio: (849
)/2 ~ 104.107.874.265.464.832
Hashes
➔ Coste medio: (849
)/2 ~
104.107.874.265.464.832
➔ Si tenemos 240GH/s
◆ 240.000.000H/s
◆ 13 años en obtenerlo
¡PERO!
1. password → Mayus/Minus → 28
=256
2. Password → 1337 → 24
x 256 = 4096
3. Passw0rd → Append/Prepend →
2 x 32 x 4096 = 262144
4. Passw0rd!
262.144 / 240.000.000 ~ 0,001 segundos
Hashes
➔ Collection#1 → 21.000.000
➔ En GPU
◆ 21.000.000/240.000.000
● 0,0875 s
➔ En una CPU
◆ 21.000.000/200.000
● 87,5 s
➔ En cada entrada i del diccionario
MD5(diccionario[i]) ==
MD5(Passw0rd!)
➔ Hay diccionarios de hashes
(RainbowTables)
diccionario[i] ==
MD5(Passw0rd!)
Rainbow Tables
➔ Primer paso para protegerlas más:
◆ +SALT (no valen RainbowTables)
◆ Passw0rd! + Número del 1 al 1024 →
● MD5(Passw0rd! + Número del 1 al 1024) +
Número del 1 al 1024
➔ Coste con diccionario: Tamaño del diccionario
Hashes
Hashes
➔ Primer paso para protegerlas más:
◆ +PEPPER
◆ Passw0rd! + Número del 1 al 1024 →
● MD5(Passw0rd! + Número del 1 al 1024)
➔ Coste con diccionario: Tamaño del diccionario * 1024
Hashes
➔ Las contraseñas se deben almacenar protegidas
➔ ¿Están protegidas con MD5, SHA1, SHA256… ? + (
SALT | PEPPER )
◆ No lo suficiente → ¡Paralelizable!
Hashing
Mensaje original
Bloque 2Bloque 1 Bloque 3
Hash 2Hash 1 Hash 3
Hash
Mensaje original
Bloque 2Bloque 1 Bloque 3
Hash 2
Hash 1
Hash
Paralelizable Completamente paralelizable
Hashes
➔ Las contraseñas se deben almacenar protegidas
◆ Hashes seguros
● PBKDF2
● BCRYPT
● ARGON2
Hashes
➔ PBKDF2
◆ Sistema de generación de claves
◆ Incluye salt, y se indica factor de esfuerzo
Hashes
➔ PBKDF2
Protegemos Passw0rd! con SALT 0xdeadbeef, y
esfuerzo 1.000:
◆ K0
= HASH(“Passw0rd!xdexadxbexef”)
◆ K1
= HASH(K0
+ “xdexadxbexef”)
◆ …
◆ K1000
= HASH(K999
+ “xdexadxbexef”)
Hashes
➔ Argon2
◆ Especial contra GPUs
◆ Uso intensivo de memoria
◆ Aleatorización de pasos dependiente de la
password
➔ Modo i → Contra side-channels
➔ Modo d → Contra GPU
➔ Modo id → Mixto
PHC 2015
➔ Hay ciertos hashes
especialmente críticos
◆ NTLM
Hashes
Hashes
➔ Hay ciertos hashes
especialmente
críticos
◆ JWT
Hashes
➔ Hay ciertos hashes
especialmente críticos
◆ Handshake WPA2
● HMAC (código MIC)
● ~PBKDF2 (códigos
PTK y PMK)
Enfoque
1. Ataque por diccionario
2. Ataque por patrones
3. Ataque por heurística
4. Ataque por fuerza bruta
5. Rubber hose cryptanalysis
Puesta a punto
$ git clone
https://gitlab.com/ciberseg_uah/public
/password-cracking.git
$ cd password-cracking
$ git submodule init
$ git submodule update --recursive
Puesta a punto
$ sudo apt-get -y install 
git build-essential libssl-dev 
zlib1g-dev yasm pkg-config 
libgmp-dev libpcap-dev libbz2-dev 
ocl-icd-opencl-dev opencl-headers 
pocl-opencl-icd
Puesta a punto
$ cd JohnTheRipper/src/
$ ./configure
$ make -s clean && make -sj16
Diccionarios
➔ Públicos
◆ SecLists (rockyou, openwall)
➔ “Ocultos”
◆ Pwndb
➔ Reglas
◆ Best64, d3ad0ne, T0X1C, dive → Jumbo
➔ Rainbow Tables
Diccionarios
➔ Diccionario público (ejemplo 1)
$ tar xvfz 
SecLists/Passwords/Leaked-Databases/ 
rockyou.txt.tar.gz
$ JohnTheRipper/run/john 
--wordlist=rockyou.txt ARCHIVO
Diccionarios
➔ Diccionario público (ejemplo 1)
$ JohnTheRipper/run/john 
--show ARCHIVO
Diccionarios
➔ Diccionario + Reglas (ejemplo 2)
$ printf 'Passw0rd!' | md5sum | cut
-d' ' -f1 > password.txt
$ echo ‘password’ > dict1.txt
$ JohnTheRipper/run/john
--wordlist=dict1.txt --rules=best64
--stdout > dict2.txt
Diccionarios
➔ Diccionario + Reglas (ejemplo 2)
$ JohnTheRipper/run/john
--wordlist=dict2.txt --rules=best64
--stdout > dict3.txt
$ JohnTheRipper/run/john
--format=raw-md5 --wordlist=dict3.txt
--rules=jumbo password.txt
Estadísticas
➔ Media 7-9 caracteres
➔ Mayúscula suele ser la primera. Número al final
➔ Mujeres más nombres personales
➔ Hombres más hobbies
➔ $ ! #
➔ 1,2. Si son más de dos números suele ser progresión.
Patrones
➔ Ingeniería social
➔ Datos de evidencias forenses
➔ CUPP
➔ Combinaciones secuenciales (1234, qwerty)
comunes
Patrones
➔ Pwndb
◆ Visitar http://pwndb2am4tzkvold.onion/
◆ Buscar un usuario con patrón
➔ En el repo tenéis una API para pwndb
Patrones
➔ Diccionario de usuario
◆ Herramienta cupp:
https://github.com/Mebus/cupp
◆ También lo tenéis en el repo
Patrones
➔ Crear máscara + Diccionario (ejemplo 3)
$ JohnTheRipper/run/john
--wordlist=dict.txt --mask=’1234?w’
--stdout
$ JohnTheRipper/run/john
--wordlist=dict.txt
--mask=’?d?d?d?d?w’ --stdout
Heurísticas
➔ Modelos de Markov en John
$ printf 'jajaja' | sha256sum | cut
-d' ' -f1 > password.txt
$ JohnTheRipper/run/john
--format=raw-sha256 --markov
password.txt
Fuerza bruta
$ printf 'jajaja' | sha1sum | cut -d' ' -f1 > password.txt
$ JohnTheRipper/run/john --list=inc-modes
digits upper lower lowerspace uppernum
lowernum alpha alnum custom alnumspace
lanman lm_ascii ascii latin1 utf8
Fuerza bruta
$ JohnTheRipper/run/john --inc=alpha password.txt
$ JohnTheRipper/run/john --inc=alnum password.txt
$ JohnTheRipper/run/john --inc=utf8 password.txt
Aplicaciones
➔ *2john
◆ Además de todas las herramientas de generación
de diccionarios y ruptura de contraseñas, tenemos
las herramientas de tratamiento de archivos
Aplicaciones
➔ *2john
$ chmod +x JohnTheRipper/run/*2john*
$ JohnTheRipper/run/keepass2john
KEEPASS.database
database:$keepass$*2*60000*0*f8f8072b4
e5b2bb61498393294538d3ed33d7c1093c04cb
07540ece1eb3da4b8*fdcaa85383c...
Aplicaciones
1. Romper KeepassX
2. Romper ZIP
3. Romper PDF
Optimización por GPU
Optimización por GPU
JohnTheRipper/run/john 
--fork=8 --format=KeePass-opencl 
--wordlist=rockyou.txt 
keepass-hash.txt
Aplicaciones
1. Romper KeepassX
a. Rockyou
2. Romper ZIP
3. Romper PDF
1. Romper KeepassX
a. Rockyou
2. Romper ZIP
a. Rockyou + Patrón
3. Romper PDF
Aplicaciones
Aplicaciones
1. Romper KeepassX
a. Rockyou
2. Romper ZIP
a. Rockyou + Patrón
3. Romper PDF
a. alnum ([a-z][0-9]) < 10 caracteres
Soluciones en la nube
➔ Crackstation
➔ OnlineHashCrack
➔ AWS
Recomendaciones
➔ Longitud: Mínimo 10 caracteres
➔ ¡No repetirlas!
➔ Juego de caracteres
◆ ¿Necesitas recordarla?
● Mejor frase larga
◆ Si no, usa un gestor de contraseñas
➔ Segundo factor de autenticación
Recomendaciones
➔ Comprobar seguridad de
contraseña
◆ No está en un volcado o
diccionario
➔ Sobre el cambio periódico
de contraseñas… No :)
◆ Subscripción a servicios
de detección de leaks
▹ ProTego is focused in provide a toolkit for health care
organisations to better assess and reduce cybersecurity
risk
▸ https://protego-project.eu/
▸ @protego_project
Acknowledgment
Research and innovation programme under grant agreement No. 826284.
Bibliografía
➔ The Ultimate Guide to Passwords in 2019: Length, Complexity & More!
➔ iphelix/pack: PACK (Password Analysis and Cracking Kit)
➔ Mebus/cupp: Common User Passwords Profiler (CUPP)
➔ Password Hashing: Scrypt, Bcrypt and ARGON2 - Michele Preziuso
➔ Rubber-Hose Cryptanalysis
➔ how does NTLM authentication work | What is Active Directory? Microsoft
Active Directory Fundamentals with Video Tutorials
➔ I know your P4$$w0rd (and if i don´t, I will guess it) (J. Sánchez y P. Caro,
Telefónica)
63
Thanks!Any questions?
You can find us at
javier.junquera@uah.es
kevin.van@edu.uah.es

Más contenido relacionado

La actualidad más candente

Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Cloudera Japan
 
十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則
Philip Zheng
 
Introduction to Cassandra Architecture
Introduction to Cassandra ArchitectureIntroduction to Cassandra Architecture
Introduction to Cassandra Architecture
nickmbailey
 
MySQL Index Cookbook
MySQL Index CookbookMySQL Index Cookbook
MySQL Index Cookbook
MYXPLAIN
 
Fully Utilizing Spark for Data Validation
Fully Utilizing Spark for Data ValidationFully Utilizing Spark for Data Validation
Fully Utilizing Spark for Data Validation
Databricks
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
Jurriaan Persyn
 
Consistent hash
Consistent hashConsistent hash
Consistent hash
paulowniaceae
 
Introduction to Cassandra Basics
Introduction to Cassandra BasicsIntroduction to Cassandra Basics
Introduction to Cassandra Basics
nickmbailey
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
NTT DATA Technology & Innovation
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio NakamuraInsight Technology, Inc.
 
Supporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsSupporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability Improvements
DataWorks Summit
 
The Apache Spark File Format Ecosystem
The Apache Spark File Format EcosystemThe Apache Spark File Format Ecosystem
The Apache Spark File Format Ecosystem
Databricks
 
20150219 初めての「embulk」
20150219 初めての「embulk」20150219 初めての「embulk」
20150219 初めての「embulk」
Hideto Masuoka
 
Data Discovery at Databricks with Amundsen
Data Discovery at Databricks with AmundsenData Discovery at Databricks with Amundsen
Data Discovery at Databricks with Amundsen
Databricks
 
Spark Autotuning Talk - Strata New York
Spark Autotuning Talk - Strata New YorkSpark Autotuning Talk - Strata New York
Spark Autotuning Talk - Strata New York
Holden Karau
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Burpで指定文字列を検索
Burpで指定文字列を検索Burpで指定文字列を検索
Burpで指定文字列を検索
abend_cve_9999_0001
 
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB DayAmazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Web Services Korea
 
Hive: Loading Data
Hive: Loading DataHive: Loading Data
Hive: Loading Data
Benjamin Leonhardi
 

La actualidad más candente (20)

Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
 
十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則
 
Introduction to Cassandra Architecture
Introduction to Cassandra ArchitectureIntroduction to Cassandra Architecture
Introduction to Cassandra Architecture
 
MySQL Index Cookbook
MySQL Index CookbookMySQL Index Cookbook
MySQL Index Cookbook
 
Fully Utilizing Spark for Data Validation
Fully Utilizing Spark for Data ValidationFully Utilizing Spark for Data Validation
Fully Utilizing Spark for Data Validation
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Consistent hash
Consistent hashConsistent hash
Consistent hash
 
Introduction to Cassandra Basics
Introduction to Cassandra BasicsIntroduction to Cassandra Basics
Introduction to Cassandra Basics
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
 
Supporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsSupporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability Improvements
 
The Apache Spark File Format Ecosystem
The Apache Spark File Format EcosystemThe Apache Spark File Format Ecosystem
The Apache Spark File Format Ecosystem
 
20150219 初めての「embulk」
20150219 初めての「embulk」20150219 初めての「embulk」
20150219 初めての「embulk」
 
Data Discovery at Databricks with Amundsen
Data Discovery at Databricks with AmundsenData Discovery at Databricks with Amundsen
Data Discovery at Databricks with Amundsen
 
Spark Autotuning Talk - Strata New York
Spark Autotuning Talk - Strata New YorkSpark Autotuning Talk - Strata New York
Spark Autotuning Talk - Strata New York
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 
Burpで指定文字列を検索
Burpで指定文字列を検索Burpで指定文字列を検索
Burpで指定文字列を検索
 
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB DayAmazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
 
Hive: Loading Data
Hive: Loading DataHive: Loading Data
Hive: Loading Data
 

Similar a Password cracking

PHPVigo #17 - lightning password hash
PHPVigo #17 - lightning password hashPHPVigo #17 - lightning password hash
PHPVigo #17 - lightning password hash
Rolando Caldas
 
Taller Esteganografia FLISoL Celaya 2011
Taller Esteganografia FLISoL Celaya 2011Taller Esteganografia FLISoL Celaya 2011
Taller Esteganografia FLISoL Celaya 2011
hecky NeobitsOrg
 
The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0
Remigio Salvador Sánchez
 
Optimizando Sitios webs con Memcached
Optimizando Sitios webs con MemcachedOptimizando Sitios webs con Memcached
Optimizando Sitios webs con Memcached
rodasc
 
Php
PhpPhp
Php
cecusme
 
Cómo crear una distribución Linux
Cómo crear una distribución LinuxCómo crear una distribución Linux
Cómo crear una distribución Linux
Mauro Parra-Miranda
 
CPMX5 - Hacking like a boss por Roberto Salgado
CPMX5 - Hacking like a boss por Roberto SalgadoCPMX5 - Hacking like a boss por Roberto Salgado
CPMX5 - Hacking like a boss por Roberto Salgado
Websec México, S.C.
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
David J. Brenes
 
José Ramón Palanco - NoSQL Security [RootedCON 2011]
José Ramón Palanco - NoSQL Security [RootedCON 2011]José Ramón Palanco - NoSQL Security [RootedCON 2011]
José Ramón Palanco - NoSQL Security [RootedCON 2011]
RootedCON
 
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Alejandro Ramos
 
Python Securidad and Criptografia
Python Securidad and CriptografiaPython Securidad and Criptografia
Python Securidad and Criptografia
Jose Manuel Ortega Candel
 
I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)
I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)
I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)
Jaime Sánchez
 
Pablo Caro & Jaime Sánchez - I know your P4$$w0rd (and if I don’t, I will gue...
Pablo Caro & Jaime Sánchez - I know your P4$$w0rd (and if I don’t, I will gue...Pablo Caro & Jaime Sánchez - I know your P4$$w0rd (and if I don’t, I will gue...
Pablo Caro & Jaime Sánchez - I know your P4$$w0rd (and if I don’t, I will gue...
RootedCON
 
32773 php-basico
32773 php-basico32773 php-basico
32773 php-basico
Luis Gatica Espina
 
Introducción Nivelación PHP
Introducción Nivelación PHPIntroducción Nivelación PHP
Introducción Nivelación PHP
Rodrigo Miranda
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
wcuestas
 
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirusNoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
INCIDE
 
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
RootedCON
 
Presentacion password cracking_madrid_2019
Presentacion password cracking_madrid_2019Presentacion password cracking_madrid_2019
Presentacion password cracking_madrid_2019
Labs CSL
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la Debian
Leonardo Cezar
 

Similar a Password cracking (20)

PHPVigo #17 - lightning password hash
PHPVigo #17 - lightning password hashPHPVigo #17 - lightning password hash
PHPVigo #17 - lightning password hash
 
Taller Esteganografia FLISoL Celaya 2011
Taller Esteganografia FLISoL Celaya 2011Taller Esteganografia FLISoL Celaya 2011
Taller Esteganografia FLISoL Celaya 2011
 
The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0
 
Optimizando Sitios webs con Memcached
Optimizando Sitios webs con MemcachedOptimizando Sitios webs con Memcached
Optimizando Sitios webs con Memcached
 
Php
PhpPhp
Php
 
Cómo crear una distribución Linux
Cómo crear una distribución LinuxCómo crear una distribución Linux
Cómo crear una distribución Linux
 
CPMX5 - Hacking like a boss por Roberto Salgado
CPMX5 - Hacking like a boss por Roberto SalgadoCPMX5 - Hacking like a boss por Roberto Salgado
CPMX5 - Hacking like a boss por Roberto Salgado
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
 
José Ramón Palanco - NoSQL Security [RootedCON 2011]
José Ramón Palanco - NoSQL Security [RootedCON 2011]José Ramón Palanco - NoSQL Security [RootedCON 2011]
José Ramón Palanco - NoSQL Security [RootedCON 2011]
 
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
Mecanismos de autenticación-identificación. Vulneración y cracking de contras...
 
Python Securidad and Criptografia
Python Securidad and CriptografiaPython Securidad and Criptografia
Python Securidad and Criptografia
 
I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)
I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)
I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)
 
Pablo Caro & Jaime Sánchez - I know your P4$$w0rd (and if I don’t, I will gue...
Pablo Caro & Jaime Sánchez - I know your P4$$w0rd (and if I don’t, I will gue...Pablo Caro & Jaime Sánchez - I know your P4$$w0rd (and if I don’t, I will gue...
Pablo Caro & Jaime Sánchez - I know your P4$$w0rd (and if I don’t, I will gue...
 
32773 php-basico
32773 php-basico32773 php-basico
32773 php-basico
 
Introducción Nivelación PHP
Introducción Nivelación PHPIntroducción Nivelación PHP
Introducción Nivelación PHP
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
 
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirusNoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
NoCONName 2014 (Ncn2k14) Abraham Pasamar - Desmitificando el AntiVirus
 
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
 
Presentacion password cracking_madrid_2019
Presentacion password cracking_madrid_2019Presentacion password cracking_madrid_2019
Presentacion password cracking_madrid_2019
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la Debian
 

Más de Javier Junquera

GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Don’t go breaking my heart: hacking medical devices (RootedCON 2023)
Don’t go breaking my heart:  hacking medical devices (RootedCON 2023)Don’t go breaking my heart:  hacking medical devices (RootedCON 2023)
Don’t go breaking my heart: hacking medical devices (RootedCON 2023)
Javier Junquera
 
Al-Kindi convirtió tu dataset en mi keylogger (RootedCON Criptored 2023)
Al-Kindi convirtió tu dataset en mi keylogger (RootedCON Criptored 2023)Al-Kindi convirtió tu dataset en mi keylogger (RootedCON Criptored 2023)
Al-Kindi convirtió tu dataset en mi keylogger (RootedCON Criptored 2023)
Javier Junquera
 
De PARCHE a Vysion: construyendo un ecosistema CTI sobre la Darknet (RootedC...
De PARCHE  a Vysion: construyendo un ecosistema CTI sobre la Darknet (RootedC...De PARCHE  a Vysion: construyendo un ecosistema CTI sobre la Darknet (RootedC...
De PARCHE a Vysion: construyendo un ecosistema CTI sobre la Darknet (RootedC...
Javier Junquera
 
El caso Solorigate: la exposición de SolarWinds, de SUNBURST a Supernova
El caso Solorigate: la exposición de SolarWinds, de SUNBURST a SupernovaEl caso Solorigate: la exposición de SolarWinds, de SUNBURST a Supernova
El caso Solorigate: la exposición de SolarWinds, de SUNBURST a Supernova
Javier Junquera
 
The day I ruled the world (RootedCON 2020)
The day I ruled the world (RootedCON 2020)The day I ruled the world (RootedCON 2020)
The day I ruled the world (RootedCON 2020)
Javier Junquera
 
Conferencia Internet Society: El FBI El reabre el debate sobre backdoors y ci...
Conferencia Internet Society: El FBI El reabre el debate sobre backdoors y ci...Conferencia Internet Society: El FBI El reabre el debate sobre backdoors y ci...
Conferencia Internet Society: El FBI El reabre el debate sobre backdoors y ci...
Javier Junquera
 
Tecnologías avanzadas de descubrimiento y análisis de la Dark Net
Tecnologías avanzadas de descubrimiento y análisis de la Dark NetTecnologías avanzadas de descubrimiento y análisis de la Dark Net
Tecnologías avanzadas de descubrimiento y análisis de la Dark Net
Javier Junquera
 

Más de Javier Junquera (8)

GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Don’t go breaking my heart: hacking medical devices (RootedCON 2023)
Don’t go breaking my heart:  hacking medical devices (RootedCON 2023)Don’t go breaking my heart:  hacking medical devices (RootedCON 2023)
Don’t go breaking my heart: hacking medical devices (RootedCON 2023)
 
Al-Kindi convirtió tu dataset en mi keylogger (RootedCON Criptored 2023)
Al-Kindi convirtió tu dataset en mi keylogger (RootedCON Criptored 2023)Al-Kindi convirtió tu dataset en mi keylogger (RootedCON Criptored 2023)
Al-Kindi convirtió tu dataset en mi keylogger (RootedCON Criptored 2023)
 
De PARCHE a Vysion: construyendo un ecosistema CTI sobre la Darknet (RootedC...
De PARCHE  a Vysion: construyendo un ecosistema CTI sobre la Darknet (RootedC...De PARCHE  a Vysion: construyendo un ecosistema CTI sobre la Darknet (RootedC...
De PARCHE a Vysion: construyendo un ecosistema CTI sobre la Darknet (RootedC...
 
El caso Solorigate: la exposición de SolarWinds, de SUNBURST a Supernova
El caso Solorigate: la exposición de SolarWinds, de SUNBURST a SupernovaEl caso Solorigate: la exposición de SolarWinds, de SUNBURST a Supernova
El caso Solorigate: la exposición de SolarWinds, de SUNBURST a Supernova
 
The day I ruled the world (RootedCON 2020)
The day I ruled the world (RootedCON 2020)The day I ruled the world (RootedCON 2020)
The day I ruled the world (RootedCON 2020)
 
Conferencia Internet Society: El FBI El reabre el debate sobre backdoors y ci...
Conferencia Internet Society: El FBI El reabre el debate sobre backdoors y ci...Conferencia Internet Society: El FBI El reabre el debate sobre backdoors y ci...
Conferencia Internet Society: El FBI El reabre el debate sobre backdoors y ci...
 
Tecnologías avanzadas de descubrimiento y análisis de la Dark Net
Tecnologías avanzadas de descubrimiento y análisis de la Dark NetTecnologías avanzadas de descubrimiento y análisis de la Dark Net
Tecnologías avanzadas de descubrimiento y análisis de la Dark Net
 

Último

codigo de colores referenciado en la norma tecnica peruana G 050
codigo de colores referenciado en la norma tecnica peruana G 050codigo de colores referenciado en la norma tecnica peruana G 050
codigo de colores referenciado en la norma tecnica peruana G 050
ssuser9eb1c31
 
Mano de Obra en construcción civil (3).pptx
Mano de Obra en construcción civil (3).pptxMano de Obra en construcción civil (3).pptx
Mano de Obra en construcción civil (3).pptx
Melanina4
 
Bacterias plantas. en la microbilogia ss
Bacterias plantas. en la microbilogia ssBacterias plantas. en la microbilogia ss
Bacterias plantas. en la microbilogia ss
MarietaVargas1
 
Informe grupal diagrama de pareto grado 11-2
Informe grupal diagrama de pareto grado 11-2Informe grupal diagrama de pareto grado 11-2
Informe grupal diagrama de pareto grado 11-2
LauraSReyesE
 
El nombre de los motores diésel proviene del apellido de su inventor, Rudol_2...
El nombre de los motores diésel proviene del apellido de su inventor, Rudol_2...El nombre de los motores diésel proviene del apellido de su inventor, Rudol_2...
El nombre de los motores diésel proviene del apellido de su inventor, Rudol_2...
gersonmarrero6
 
EXPOSICION EN REPRODUCCION DE CUYES.pptx
EXPOSICION EN REPRODUCCION DE CUYES.pptxEXPOSICION EN REPRODUCCION DE CUYES.pptx
EXPOSICION EN REPRODUCCION DE CUYES.pptx
cesarquispeledesma
 
tipos de investigación mapa conceptual.pdf
tipos de investigación mapa conceptual.pdftipos de investigación mapa conceptual.pdf
tipos de investigación mapa conceptual.pdf
LovieL1
 
Pruebas Destructivas y No Destructivas.pdf
Pruebas Destructivas y No Destructivas.pdfPruebas Destructivas y No Destructivas.pdf
Pruebas Destructivas y No Destructivas.pdf
ArturoBautista31
 
INFOGRAFIA MANEJO DEL CONCRETO VICTOR NARANJO.pdf
INFOGRAFIA MANEJO DEL CONCRETO VICTOR NARANJO.pdfINFOGRAFIA MANEJO DEL CONCRETO VICTOR NARANJO.pdf
INFOGRAFIA MANEJO DEL CONCRETO VICTOR NARANJO.pdf
VictorNaranjo25
 
Solucion de ejercicios de fundamentos .pdf
Solucion de ejercicios de fundamentos .pdfSolucion de ejercicios de fundamentos .pdf
Solucion de ejercicios de fundamentos .pdf
JhonyCY
 
Manual de Implementación de BIM para la Ciudad de La Paz – Bolivia.docx
Manual de Implementación de BIM para la Ciudad de La Paz – Bolivia.docxManual de Implementación de BIM para la Ciudad de La Paz – Bolivia.docx
Manual de Implementación de BIM para la Ciudad de La Paz – Bolivia.docx
Joaquin398967
 
control cultural cultivo de platano-2020.pdf
control cultural cultivo de platano-2020.pdfcontrol cultural cultivo de platano-2020.pdf
control cultural cultivo de platano-2020.pdf
RoyerKisami
 
Propuesta de ejercicios Telemática Escenarios
Propuesta de ejercicios Telemática EscenariosPropuesta de ejercicios Telemática Escenarios
Propuesta de ejercicios Telemática Escenarios
AdrianaMarcelaCaizaQ
 
Sesion Estructuras 190548464554871424.pdf
Sesion Estructuras 190548464554871424.pdfSesion Estructuras 190548464554871424.pdf
Sesion Estructuras 190548464554871424.pdf
45595782
 
GUIA_LEGAL_CAP_9_MERCADO ELÉCTRICO_COLOMBIANO.pdf
GUIA_LEGAL_CAP_9_MERCADO ELÉCTRICO_COLOMBIANO.pdfGUIA_LEGAL_CAP_9_MERCADO ELÉCTRICO_COLOMBIANO.pdf
GUIA_LEGAL_CAP_9_MERCADO ELÉCTRICO_COLOMBIANO.pdf
ProexportColombia1
 
INSTALACIONES INFORME-instalaciones-sanitarias.docx
INSTALACIONES INFORME-instalaciones-sanitarias.docxINSTALACIONES INFORME-instalaciones-sanitarias.docx
INSTALACIONES INFORME-instalaciones-sanitarias.docx
SUAREZVALLEJOSMARCOR
 
LO QUE TODO CONSTRUCTOR DEBE SABER - ING. GENARO DELGADO CONTRERAS.pdf
LO QUE TODO CONSTRUCTOR DEBE SABER - ING. GENARO DELGADO CONTRERAS.pdfLO QUE TODO CONSTRUCTOR DEBE SABER - ING. GENARO DELGADO CONTRERAS.pdf
LO QUE TODO CONSTRUCTOR DEBE SABER - ING. GENARO DELGADO CONTRERAS.pdf
PATRICKKEWINAMBROCIO
 
Que es Disciplina operativa en las empresas.pdf
Que es Disciplina operativa en las empresas.pdfQue es Disciplina operativa en las empresas.pdf
Que es Disciplina operativa en las empresas.pdf
Tomas Martinez
 
COMPORTAMIENTO SEGURO COMO ACTORES VIALES EN LAS VIAS
COMPORTAMIENTO SEGURO COMO ACTORES VIALES EN LAS VIASCOMPORTAMIENTO SEGURO COMO ACTORES VIALES EN LAS VIAS
COMPORTAMIENTO SEGURO COMO ACTORES VIALES EN LAS VIAS
sstalejandragarcia
 
Regularizaciones La Florida - Peñalolén - La Reina
Regularizaciones La Florida - Peñalolén - La ReinaRegularizaciones La Florida - Peñalolén - La Reina
Regularizaciones La Florida - Peñalolén - La Reina
Juan Luis Menares, Arquitecto
 

Último (20)

codigo de colores referenciado en la norma tecnica peruana G 050
codigo de colores referenciado en la norma tecnica peruana G 050codigo de colores referenciado en la norma tecnica peruana G 050
codigo de colores referenciado en la norma tecnica peruana G 050
 
Mano de Obra en construcción civil (3).pptx
Mano de Obra en construcción civil (3).pptxMano de Obra en construcción civil (3).pptx
Mano de Obra en construcción civil (3).pptx
 
Bacterias plantas. en la microbilogia ss
Bacterias plantas. en la microbilogia ssBacterias plantas. en la microbilogia ss
Bacterias plantas. en la microbilogia ss
 
Informe grupal diagrama de pareto grado 11-2
Informe grupal diagrama de pareto grado 11-2Informe grupal diagrama de pareto grado 11-2
Informe grupal diagrama de pareto grado 11-2
 
El nombre de los motores diésel proviene del apellido de su inventor, Rudol_2...
El nombre de los motores diésel proviene del apellido de su inventor, Rudol_2...El nombre de los motores diésel proviene del apellido de su inventor, Rudol_2...
El nombre de los motores diésel proviene del apellido de su inventor, Rudol_2...
 
EXPOSICION EN REPRODUCCION DE CUYES.pptx
EXPOSICION EN REPRODUCCION DE CUYES.pptxEXPOSICION EN REPRODUCCION DE CUYES.pptx
EXPOSICION EN REPRODUCCION DE CUYES.pptx
 
tipos de investigación mapa conceptual.pdf
tipos de investigación mapa conceptual.pdftipos de investigación mapa conceptual.pdf
tipos de investigación mapa conceptual.pdf
 
Pruebas Destructivas y No Destructivas.pdf
Pruebas Destructivas y No Destructivas.pdfPruebas Destructivas y No Destructivas.pdf
Pruebas Destructivas y No Destructivas.pdf
 
INFOGRAFIA MANEJO DEL CONCRETO VICTOR NARANJO.pdf
INFOGRAFIA MANEJO DEL CONCRETO VICTOR NARANJO.pdfINFOGRAFIA MANEJO DEL CONCRETO VICTOR NARANJO.pdf
INFOGRAFIA MANEJO DEL CONCRETO VICTOR NARANJO.pdf
 
Solucion de ejercicios de fundamentos .pdf
Solucion de ejercicios de fundamentos .pdfSolucion de ejercicios de fundamentos .pdf
Solucion de ejercicios de fundamentos .pdf
 
Manual de Implementación de BIM para la Ciudad de La Paz – Bolivia.docx
Manual de Implementación de BIM para la Ciudad de La Paz – Bolivia.docxManual de Implementación de BIM para la Ciudad de La Paz – Bolivia.docx
Manual de Implementación de BIM para la Ciudad de La Paz – Bolivia.docx
 
control cultural cultivo de platano-2020.pdf
control cultural cultivo de platano-2020.pdfcontrol cultural cultivo de platano-2020.pdf
control cultural cultivo de platano-2020.pdf
 
Propuesta de ejercicios Telemática Escenarios
Propuesta de ejercicios Telemática EscenariosPropuesta de ejercicios Telemática Escenarios
Propuesta de ejercicios Telemática Escenarios
 
Sesion Estructuras 190548464554871424.pdf
Sesion Estructuras 190548464554871424.pdfSesion Estructuras 190548464554871424.pdf
Sesion Estructuras 190548464554871424.pdf
 
GUIA_LEGAL_CAP_9_MERCADO ELÉCTRICO_COLOMBIANO.pdf
GUIA_LEGAL_CAP_9_MERCADO ELÉCTRICO_COLOMBIANO.pdfGUIA_LEGAL_CAP_9_MERCADO ELÉCTRICO_COLOMBIANO.pdf
GUIA_LEGAL_CAP_9_MERCADO ELÉCTRICO_COLOMBIANO.pdf
 
INSTALACIONES INFORME-instalaciones-sanitarias.docx
INSTALACIONES INFORME-instalaciones-sanitarias.docxINSTALACIONES INFORME-instalaciones-sanitarias.docx
INSTALACIONES INFORME-instalaciones-sanitarias.docx
 
LO QUE TODO CONSTRUCTOR DEBE SABER - ING. GENARO DELGADO CONTRERAS.pdf
LO QUE TODO CONSTRUCTOR DEBE SABER - ING. GENARO DELGADO CONTRERAS.pdfLO QUE TODO CONSTRUCTOR DEBE SABER - ING. GENARO DELGADO CONTRERAS.pdf
LO QUE TODO CONSTRUCTOR DEBE SABER - ING. GENARO DELGADO CONTRERAS.pdf
 
Que es Disciplina operativa en las empresas.pdf
Que es Disciplina operativa en las empresas.pdfQue es Disciplina operativa en las empresas.pdf
Que es Disciplina operativa en las empresas.pdf
 
COMPORTAMIENTO SEGURO COMO ACTORES VIALES EN LAS VIAS
COMPORTAMIENTO SEGURO COMO ACTORES VIALES EN LAS VIASCOMPORTAMIENTO SEGURO COMO ACTORES VIALES EN LAS VIAS
COMPORTAMIENTO SEGURO COMO ACTORES VIALES EN LAS VIAS
 
Regularizaciones La Florida - Peñalolén - La Reina
Regularizaciones La Florida - Peñalolén - La ReinaRegularizaciones La Florida - Peñalolén - La Reina
Regularizaciones La Florida - Peñalolén - La Reina
 

Password cracking

  • 2. Hello!I am Javier Junquera Investigador en ciberseguridad, y profesor asociado en la Universidad de Alcalá You can find me at javier.junquera@uah.es @junquera 2 Cybersecurity Research Group UAH
  • 3. I am Kevin Van Liebergen Becario de investigación en cátedra ISDEFE You can find me at @KevinLiebergen 3 Hello!
  • 5. Almacenamiento de contraseñas ➔ Codificar no es cifrar ◆ Reversible sin dificultad ➔ Cifrar no es hashear ◆ Reversible ➔ Hashear es hashear, pero no lo es todo
  • 6. Codificaciones ¿Son seguras? ❖ Tipos ➢ Base64 ➢ Base32 ➢ ASCII No existe clave, únicamente es conversión
  • 7. Codificaciones. Usos ● Parámetro HTTP en los formularios ● Datos binarios en URL $ printf “ciberseg” | base64 Y2liZXJzZWc= $ printf “Y2liZXJzZWc=” | base64 -d ciberseg
  • 8. Almacenamiento de contraseñas ➔ Las contraseñas se deben almacenar protegidas ◆ En claro: No están protegidas ◆ En base64: No están protegidas ◆ En base32: Tampoco
  • 9. Es una función matemática que comprime la información de forma rápida para que sea identificable. Hashing: ¿Qué es un hash? ❖ Siempre del mismo tamaño ❖ No es reversible ❖ Los mismos datos dan siempre el mismo hash
  • 12. Es una función matemática que comprime la información de forma rápida para que sea identificable. Hashing: ¿Qué es un hash? ❖ Siempre del mismo tamaño ❖ No es reversible ❖ Los mismos datos dan siempre el mismo hash
  • 13. Es una función matemática que comprime la información de forma rápida para que sea identificable. ¿Qué es un hash criptográfico? ❖ Siempre del mismo tamaño ❖ No es reversible ❖ Los mismos datos dan siempre el mismo hash ❖ Dos datos distintos dan siempre dos hashes diferentes
  • 14. Hash criptográfico 1. H(A) = H(A) 2. H(A) != H(B) 3. | H(A) - H(A + ϵ) | > δ 4. H-1 (H(A)) = ∅
  • 15. Hashes criptográficos ❖ MD5 ❖ SHA1 ❖ SHA256 ❖ SHA-3 (Keccak)
  • 16. Hashes criptográficos $ printf 'jajaja' | openssl dgst -md5 (stdin)= 655faa8ba799a3a1ae309c2b40d142fc $ printf 'jajaja' | openssl dgst -sha1 (stdin)= 4598cfd1cfe70d29e5c9d77b51002f272790ba66 $ printf 'jajaja' | openssl dgst -sha256 (stdin)= 0a887c3cb3de97b3968be5c7fb81ed9e452928db71d66620b7766bf7c5413878 $ printf 'jajaja' | openssl dgst -sha3-512 (stdin)= c88fbe79ca2e809915a6ab2e8fd8461c15180ac28cd7b4dab0fbca9f8812169089305890a6e468 bcde9f08e4cc3eaa00775ab9c9ec28c8cfb54d4de9493676fd
  • 17. Hashes ➔ Las contraseñas se deben almacenar protegidas ➔ ¿Están protegidas con MD5, SHA1, SHA256… ? ◆ No lo suficiente
  • 18. Hashes Pongamos que tenemos la siguiente contraseña: Passw0rd! ➔ a-z → 26 caracteres ➔ A-Z → 26 caracteres ➔ Caracteres especiales → 32 caracteres ➔ Total: 84 caracteres; Tamaño: 9; ➔ Coste medio: (849 )/2 ~ 104.107.874.265.464.832
  • 19. Hashes ➔ Coste medio: (849 )/2 ~ 104.107.874.265.464.832 ➔ Si tenemos 240GH/s ◆ 240.000.000H/s ◆ 13 años en obtenerlo ¡PERO! 1. password → Mayus/Minus → 28 =256 2. Password → 1337 → 24 x 256 = 4096 3. Passw0rd → Append/Prepend → 2 x 32 x 4096 = 262144 4. Passw0rd! 262.144 / 240.000.000 ~ 0,001 segundos
  • 20. Hashes ➔ Collection#1 → 21.000.000 ➔ En GPU ◆ 21.000.000/240.000.000 ● 0,0875 s ➔ En una CPU ◆ 21.000.000/200.000 ● 87,5 s ➔ En cada entrada i del diccionario MD5(diccionario[i]) == MD5(Passw0rd!) ➔ Hay diccionarios de hashes (RainbowTables) diccionario[i] == MD5(Passw0rd!)
  • 22. ➔ Primer paso para protegerlas más: ◆ +SALT (no valen RainbowTables) ◆ Passw0rd! + Número del 1 al 1024 → ● MD5(Passw0rd! + Número del 1 al 1024) + Número del 1 al 1024 ➔ Coste con diccionario: Tamaño del diccionario Hashes
  • 23. Hashes ➔ Primer paso para protegerlas más: ◆ +PEPPER ◆ Passw0rd! + Número del 1 al 1024 → ● MD5(Passw0rd! + Número del 1 al 1024) ➔ Coste con diccionario: Tamaño del diccionario * 1024
  • 24. Hashes ➔ Las contraseñas se deben almacenar protegidas ➔ ¿Están protegidas con MD5, SHA1, SHA256… ? + ( SALT | PEPPER ) ◆ No lo suficiente → ¡Paralelizable!
  • 25. Hashing Mensaje original Bloque 2Bloque 1 Bloque 3 Hash 2Hash 1 Hash 3 Hash Mensaje original Bloque 2Bloque 1 Bloque 3 Hash 2 Hash 1 Hash Paralelizable Completamente paralelizable
  • 26. Hashes ➔ Las contraseñas se deben almacenar protegidas ◆ Hashes seguros ● PBKDF2 ● BCRYPT ● ARGON2
  • 27. Hashes ➔ PBKDF2 ◆ Sistema de generación de claves ◆ Incluye salt, y se indica factor de esfuerzo
  • 28. Hashes ➔ PBKDF2 Protegemos Passw0rd! con SALT 0xdeadbeef, y esfuerzo 1.000: ◆ K0 = HASH(“Passw0rd!xdexadxbexef”) ◆ K1 = HASH(K0 + “xdexadxbexef”) ◆ … ◆ K1000 = HASH(K999 + “xdexadxbexef”)
  • 29. Hashes ➔ Argon2 ◆ Especial contra GPUs ◆ Uso intensivo de memoria ◆ Aleatorización de pasos dependiente de la password ➔ Modo i → Contra side-channels ➔ Modo d → Contra GPU ➔ Modo id → Mixto PHC 2015
  • 30. ➔ Hay ciertos hashes especialmente críticos ◆ NTLM Hashes
  • 31. Hashes ➔ Hay ciertos hashes especialmente críticos ◆ JWT
  • 32. Hashes ➔ Hay ciertos hashes especialmente críticos ◆ Handshake WPA2 ● HMAC (código MIC) ● ~PBKDF2 (códigos PTK y PMK)
  • 33. Enfoque 1. Ataque por diccionario 2. Ataque por patrones 3. Ataque por heurística 4. Ataque por fuerza bruta 5. Rubber hose cryptanalysis
  • 34. Puesta a punto $ git clone https://gitlab.com/ciberseg_uah/public /password-cracking.git $ cd password-cracking $ git submodule init $ git submodule update --recursive
  • 35. Puesta a punto $ sudo apt-get -y install git build-essential libssl-dev zlib1g-dev yasm pkg-config libgmp-dev libpcap-dev libbz2-dev ocl-icd-opencl-dev opencl-headers pocl-opencl-icd
  • 36. Puesta a punto $ cd JohnTheRipper/src/ $ ./configure $ make -s clean && make -sj16
  • 37. Diccionarios ➔ Públicos ◆ SecLists (rockyou, openwall) ➔ “Ocultos” ◆ Pwndb ➔ Reglas ◆ Best64, d3ad0ne, T0X1C, dive → Jumbo ➔ Rainbow Tables
  • 38. Diccionarios ➔ Diccionario público (ejemplo 1) $ tar xvfz SecLists/Passwords/Leaked-Databases/ rockyou.txt.tar.gz $ JohnTheRipper/run/john --wordlist=rockyou.txt ARCHIVO
  • 39. Diccionarios ➔ Diccionario público (ejemplo 1) $ JohnTheRipper/run/john --show ARCHIVO
  • 40. Diccionarios ➔ Diccionario + Reglas (ejemplo 2) $ printf 'Passw0rd!' | md5sum | cut -d' ' -f1 > password.txt $ echo ‘password’ > dict1.txt $ JohnTheRipper/run/john --wordlist=dict1.txt --rules=best64 --stdout > dict2.txt
  • 41. Diccionarios ➔ Diccionario + Reglas (ejemplo 2) $ JohnTheRipper/run/john --wordlist=dict2.txt --rules=best64 --stdout > dict3.txt $ JohnTheRipper/run/john --format=raw-md5 --wordlist=dict3.txt --rules=jumbo password.txt
  • 42. Estadísticas ➔ Media 7-9 caracteres ➔ Mayúscula suele ser la primera. Número al final ➔ Mujeres más nombres personales ➔ Hombres más hobbies ➔ $ ! # ➔ 1,2. Si son más de dos números suele ser progresión.
  • 43. Patrones ➔ Ingeniería social ➔ Datos de evidencias forenses ➔ CUPP ➔ Combinaciones secuenciales (1234, qwerty) comunes
  • 44. Patrones ➔ Pwndb ◆ Visitar http://pwndb2am4tzkvold.onion/ ◆ Buscar un usuario con patrón ➔ En el repo tenéis una API para pwndb
  • 45. Patrones ➔ Diccionario de usuario ◆ Herramienta cupp: https://github.com/Mebus/cupp ◆ También lo tenéis en el repo
  • 46. Patrones ➔ Crear máscara + Diccionario (ejemplo 3) $ JohnTheRipper/run/john --wordlist=dict.txt --mask=’1234?w’ --stdout $ JohnTheRipper/run/john --wordlist=dict.txt --mask=’?d?d?d?d?w’ --stdout
  • 47. Heurísticas ➔ Modelos de Markov en John $ printf 'jajaja' | sha256sum | cut -d' ' -f1 > password.txt $ JohnTheRipper/run/john --format=raw-sha256 --markov password.txt
  • 48. Fuerza bruta $ printf 'jajaja' | sha1sum | cut -d' ' -f1 > password.txt $ JohnTheRipper/run/john --list=inc-modes digits upper lower lowerspace uppernum lowernum alpha alnum custom alnumspace lanman lm_ascii ascii latin1 utf8
  • 49. Fuerza bruta $ JohnTheRipper/run/john --inc=alpha password.txt $ JohnTheRipper/run/john --inc=alnum password.txt $ JohnTheRipper/run/john --inc=utf8 password.txt
  • 50. Aplicaciones ➔ *2john ◆ Además de todas las herramientas de generación de diccionarios y ruptura de contraseñas, tenemos las herramientas de tratamiento de archivos
  • 51. Aplicaciones ➔ *2john $ chmod +x JohnTheRipper/run/*2john* $ JohnTheRipper/run/keepass2john KEEPASS.database database:$keepass$*2*60000*0*f8f8072b4 e5b2bb61498393294538d3ed33d7c1093c04cb 07540ece1eb3da4b8*fdcaa85383c...
  • 52. Aplicaciones 1. Romper KeepassX 2. Romper ZIP 3. Romper PDF
  • 54. Optimización por GPU JohnTheRipper/run/john --fork=8 --format=KeePass-opencl --wordlist=rockyou.txt keepass-hash.txt
  • 55. Aplicaciones 1. Romper KeepassX a. Rockyou 2. Romper ZIP 3. Romper PDF
  • 56. 1. Romper KeepassX a. Rockyou 2. Romper ZIP a. Rockyou + Patrón 3. Romper PDF Aplicaciones
  • 57. Aplicaciones 1. Romper KeepassX a. Rockyou 2. Romper ZIP a. Rockyou + Patrón 3. Romper PDF a. alnum ([a-z][0-9]) < 10 caracteres
  • 58. Soluciones en la nube ➔ Crackstation ➔ OnlineHashCrack ➔ AWS
  • 59. Recomendaciones ➔ Longitud: Mínimo 10 caracteres ➔ ¡No repetirlas! ➔ Juego de caracteres ◆ ¿Necesitas recordarla? ● Mejor frase larga ◆ Si no, usa un gestor de contraseñas ➔ Segundo factor de autenticación
  • 60. Recomendaciones ➔ Comprobar seguridad de contraseña ◆ No está en un volcado o diccionario ➔ Sobre el cambio periódico de contraseñas… No :) ◆ Subscripción a servicios de detección de leaks
  • 61. ▹ ProTego is focused in provide a toolkit for health care organisations to better assess and reduce cybersecurity risk ▸ https://protego-project.eu/ ▸ @protego_project Acknowledgment Research and innovation programme under grant agreement No. 826284.
  • 62. Bibliografía ➔ The Ultimate Guide to Passwords in 2019: Length, Complexity & More! ➔ iphelix/pack: PACK (Password Analysis and Cracking Kit) ➔ Mebus/cupp: Common User Passwords Profiler (CUPP) ➔ Password Hashing: Scrypt, Bcrypt and ARGON2 - Michele Preziuso ➔ Rubber-Hose Cryptanalysis ➔ how does NTLM authentication work | What is Active Directory? Microsoft Active Directory Fundamentals with Video Tutorials ➔ I know your P4$$w0rd (and if i don´t, I will guess it) (J. Sánchez y P. Caro, Telefónica)
  • 63. 63 Thanks!Any questions? You can find us at javier.junquera@uah.es kevin.van@edu.uah.es