SlideShare una empresa de Scribd logo
1 de 103
MÓDULO 3: COMUNICACIONES CRÍTICAS E
IDENTIFICACIÓN EN ENTORNOS DE ALTA
SEGURIDAD.
MECANISMOS DE AUTENTICACIÓN-
IDENTIFICACIÓN. VULNERACIÓN Y CRACKING
DE CONTRASEÑAS
ALEJANDRO RAMOS – SEPTIEMBRE 2013
WWW.SECURITYBYDEFAULT.COM
CONCURSOS
MORRIS WORM
• 3 Métodos de ataque:
• Contraseña = usuario, contraseña=
usuariousuario y contraseña =
emanresu
• Diccionario de palabras
• Usar diccionario del propio sistema
cracksome.c
…
/* Check for 'username', 'usernameusername' and
'emanresu' as passwds. */
…
char *wds[] =
{
"academia", "aerobics", "airplane",
"albany",
"albatross", "albert", "alex", "alexander",
"algebra", "aliases", "alphabet",
…
x27f30 = fopen(XS("/usr/dict/words"), XS("r"));
¿PROBLEMAS DE USUARIOS EN 2013?
• Estudio de políticas de contraseñas
• «Nuevas» técnicas:
• Usos distribuidos
• GPGPU
• La nube, servidores en Internet
• Una contraseña suele ser válida para varios sitios
• «un anillo para gobernarlos a todos»
• Para qué ASLR, DEP, IPS, Antivirus, proxies… si la contraseña
es el nombre de la compañía
• Because There Is No Patch To Human Stupidity
CONCURSOS ACTUALES
http://contest-2013.korelogic.com/
CONFERENCIAS ESPECÍFICAS
http://passwordscon.org/
INCIDENTES – ROCKYOU
Contraseña Num
123456 290729
12345 79076
123456789 76786
password 59462
iloveyou 49952
princess 33291
1234567 21725
rockyou 20901
12345678 20553
abc123 16648
 Diciembre 2009
 Obtenidas mediante SQL
Injection
 32.603.387 usuarios
 14.344.391 contraseñas
 Contraseñas en texto plano
 Diccionario de gran utilidad
INCIDENTES – SINGLES.ORG
Contraseña Num
123456 221
jesus 63
password 58
12345679 46
christ 36
love 29
princess 27
jesus1 25
sushine 24
1234567 23
 Red social de citas para
religiosos (?)
 Acceso al perfil del usuario
con su ID de 6 dígitos
 En el perfil se muestra la
contraseña.
 16.250 usuarios
 12.234 contraseñas
INCIDENTES – ROOTKIT
Contraseña Num
123456 1023
password 384
rootkit 329
111111 190
12345678 181
qwerty 174
123456789 170
123123 99
qwertyui 91
12345 89
 Portal de RCE
 Ingeniería social con el
incidente HBGary
 81.450 usuarios
 58,675 contraseñas distintas
 54,372 encontradas (93%)
 4,303 Pendientes
INCIDENTES – GAWKER
Contraseña Num
123456 4162
password 3332
12345678 1444
lifehack 861
qwerty 765
abc123 529
12345 503
monkey 471
111111 439
12345 410
 Sin detalles del ataque
 Lifehacker / Gizmodo
 748.557 usuarios / hashes
 DES, salt (8 caracteres max)
 Muchas pass son HEX (spam)
 674,690 encontrados (91%)
GAWKER – NO-LATIN
http://seclists.org/bugtraq/2010/Feb/5
LINKEDIN
FUNCIONES DE HASH O RESUMEN
• Resumen un conjunto de elementos en una cadena de bytes.
• No son reversibles. Dado el resultado no se debe poder
obtener el conjunto de elementos.
• Es común su aplicación para comprobar la integridad ficheros
o el almacenamiento de contraseñas.
Gato
Perro
Cocodrilo
Función hash
Función hash
Función hash
D4F6AA
C2E6B1
DDA90E
CONTRASEÑAS EN APPS WEB
• Las contraseñas se suelen almacenar de forma segura en las
aplicaciones web
• El método más común es utilizar funciones de hash
• Ejemplos MD5, MD5, SHA1, SHA256
• En ocasiones se guardan en texto claro :-(
• En ocasiones se almacenan usando semillas.
Registro en
web
Contraseña
«hola»
4d186321c1a7f0f354b297e8914a
b240
Acceso:
Contraseña:
«hola»
4d186321c1a7f0f354b
297e8914ab240
md5(hola)
md5(hola)
FUNCIONES DE HASH CON SEMILLA
• Al conjunto de elementos se le añade un texto al azar
• El texto al azar es escogido en el momento de la creación y
almacenado junto al resultado de la función
• Evita que dos conjuntos de elementos tengan el mismo
resultado
Gato
Gato
Gato
Función hash
Función hash
Función hash
Df,BA6D3E
G3,98H7E1
Z7,A8D48C
Df$gGato
G3$Gato
Z7$Gato
CONTRASEÑAS EN SSOO
• Los algoritmos más comunes son: NTLM, 3DES, SHA1,
SHA256, SHA512 con semilla.
• La semilla es una cadena de caracteres generada
aleatoriamente.
• También en aplicaciones web
Crear nueva
contraseña
Contraseña
«adios»
DzdFz,0edfd414c0ea0c7e8ff934
33673…
Acceso:
Contraseña:
«adios»
0edfd414c0ea0c7e8f
f93433673
sha512(DzdFz,a
dios)
sha512(DzdFz,a
dios)
TIPOS DE ATAQUE
• Si el algoritmo no es reversible existen varios tipos de ataque:
por diccionario, por fuerza bruta o tablas precomputadas.
1. Fuerza bruta: se generan todas las posibles palabras de un
determinado juego de caracteres.
Ejemplo: [a-z]{1,8} [aA-zZ]{1,10}
2. Por diccionario: se utiliza una lista de palabras
3. Tablas precomputadas: dado un juego de caracteres, se
crea un conjunto de ficheros en los que consultar un hash.
DICCIONARIOS
• Fichero con una lista de palabras que son contraseñas comunes:
• 123456
• password
• ….
• Uso de diccionarios creados a medida:
• Navegación y creación de listas en base a la web
• Palabras del mismo entorno, sector, etc
• http://www.digininja.org/projects/cewl.php
• Sitios hackeados anteriormente
• Uso de diccionarios de nombres de usuario (como facebook)
CREAR UN DICCIONARIO. EJEMPLO:
IMDB
• Títulos de películas:
$ wget ftp://ftp.fu-
berlin.de/pub/misc/movies/database/movies.list.gz
$ zcat movies.list.gz | sed -e 's|(.*||g' >
movies.dict
$ sort –R movies.dict |head -1 movies.dict
Magic in the Sky
$ zcat movies.list.gz | sed -e 's|(.*||g' -e
's/<(.)([^ ]*)/1/g' -e 's| ||g' |sort –u>
moviesacron.dict
$ sort –R movies.dict |head -1
YWNitMP
DICCIONARIOS
• Existen largas colecciones de diccionarios en Internet
• El más popular a día de hoy es el generado de RockYou.
• Descargas:
• http://www.skullsecurity.org/wiki/index.php/Passwords
• ftp://ftp.openwall.com/pub/wordlists/
• https://crackstation.net/buy-crackstation-wordlist-password-
cracking-dictionary.htm
• http://packetstormsecurity.com/Crackers/wordlists/
DICCIONARIOS: REGLAS
• Permutan palabras de un diccionario: Ej «ninja»
• Ninja2010, ninja!, NiNjA, $$ninja$$, n1nj4, ninjaaa!
• Herramientas: oclhashcat+, hashcat y JtR
• Reglas creadas por Korelogic:
• JtR: http://contest.korelogic.com/rules.html
• Ocl/hashcat: http://contest-2010.korelogic.com/rules-hashcat.html
john.conf:
[List.Rules:UPMRulesAppendupm]
cAz"[uU][pP][mM]"
[List.Rules:UPMRulesPrependupm]
A0"[uU][pP][mM]"
EJEMPLO JTR / HASHCAT
DICCIONARIOS: FINGERPRINT
• Dado un diccionario de contraseñas válidas, generar otras
combinaciones:
FINGERPRINT
PASSWORD GUESSING / CRACKING
• Password guessing (ataque online)
• Adivinar usuarios y contraseñas válidos en sistemas remotos
• Genera demasiado tráfico y ruido
• Puede bloquear cuentas
• Siempre efectivo pero poco elegante
• Password cracking (ataque offline)
• Hace falta tener permisos de administrador/root
• Obtener el resultado de una contraseña cifrada/hash
• Se ejecuta localmente (o red de servidores)
• No bloquea cuentas
• Es más rápido
PASSWORDS
GUESSING
INTRODUCCIÓN
• Un usuario válido lo puede ser en muchos sistemas
• Una contraseña válida, lo puede ser para muchos usuarios
• Almacenar ambas listas durante toda la ejecución
• Utilizar más de un equipo/conexión para ganar velocidad
BLOQUEO DE CUENTAS
• Protección del sistema para evitar ataques.
• Denegación de servicio si se bloquean todos!!
• Con un ataque de Password Guessing se pueden bloquear
TODAS las cuentas
• Antes de realizarlo se ha de comprobar:
• Número de intentos antes de bloqueo
• Duración del bloqueo
• Duración antes de reinicio del contador de bloqueo
• Pruebas inversas
WINDOWS
LINUX
• El bloqueo de usuarios no está habilitado por defecto.
• Configurado vía PAM en el archivo: /etc/pam.d/system-
auth
auth required pam_tally.so onerr=fail
deny=5 unlock_time=21600
• En remoto no se puede ver el fichero, se averigua mediante
prueba y error.
• Por defecto el usuario root no se bloquea
THC HYDRA
• Prueba de usuarios y contraseñas con diccionario
• Es multiplataforma: Windows, Linux, Palm, ARM …
• Protocolos soportados:
TELNET SMTP-AUTH LDAP3 MYSQL
FTP SOCKS5 Postgres REXEC
HTTP VNC Teamspeak RSH
HTTPS POP3 Cisco auth RLOGIN
HTTP-PROXY IMAP Cisco enable CVS
SMB NNTP LDAP2 SNMP
SMBNT PCNFS Cisco AAA LDAP2
MS-SQL ICQ SAP/R3
THC HYDRA
MEDUSA
• Opciones muy flexibles
• Múltiples hosts
• Linux, Solaris, BSD, Mac OSX, Win
AFP REXEC NNTP VNC MySQL
CVS RLOGIN PcAnywhere
Generic
Wrapper
SNMP
FTP RSH POP3 VMAuthd Telnet
HTTP SMBNT PostgreSQL SSHv2
Subversion
(SVN)
IMAP SMTP-AUTH Web Form NetWare NCP SMTP-VRFY
MS-SQL
• Ncrack
• Versión Alpha con pocos protocolos soportados
• Herramienta incluida en el paquete de Nmap
• Soporte para: FTP, SSH, TELNET, HTTP(S), POP3(S), SMB, RDP,
VNC
• http://nmap.org/ncrack/
• Patator
• Desarrollado en Python
• Genera fuerza bruta de usuarios y contraseñas o protocolos
• https://code.google.com/p/patator/
OTRAS HERRAMIENTAS
FORMULARIOS WEB
• Se analiza la petición HTTP que se hace
• Con un proxy
• Usando las opciones de debug del navegador
• Se detecta la cadena de contraseña incorrecta o correcta
• Código HTTP
• Mensaje de texto
• Se configura la herramienta con las opciones, hydra o medusa
soportan formularios web.
• Brutus
• Burp Proxy
• curl, etc..
MITIGAR
• Las medidas generales para mitigar los ataques de password
guessing son:
• Ralentización en cada intento.
• Ejemplo: PIN de iPhone
• Bloqueo de cuentas (puede generar Denegación de Servicio)
• Sistemas Windows
• Uso de CAPTCHAS.
• Ejemplo: Aplicaciones web
• Herramientas específicas de Privileged Identity Management
como Cyber-Ark, CA, Quest, BeyondTrust
• Cambio del método de autenticación: certificados
• Doble factor de autenticación.
DIGG.COM
DIGG.COM
•Envío usuario y contraseña mediante un POST
•El servidor crea una sesión y devuelve un 302 (redirección) a otra página que
comprueba si la sesión es correcta o incorrecta en base al usuario y contraseña
•Si la contraseña es válida paso, si no es válida me envía a la página de
autenticación con un error y la misma sesión que suma 1 error fallido.
•Elimino la sesión (y con ello el contador) y repito el envío de usuario y contraseña,
volviendo al punto 1. Por lo que el captcha no aparecerá nunca al no sumar los
cuatro intentos.
http://www.securitybydefault.com/2009/04/aplicando-fuerza-espartana-digg.html
DIGG.COM
POST con
u/p
Se comprueba session
generada
Validado
Cookie: fallos =1
302
Set-Cookie
Hay Cookie
Cookie?
Valido?
Fallos = 3
CAPTCHA
NO
DIGG.COM
POST con
u/p
Se comprueba session
generada
Validado
Cookie: fallos =2
302
Set-Cookie
Hay Cookie
Cookie?
Valido?
Fallos = 3
CAPTCHA
NO
DIGG.COM
POST con
u/p
Se comprueba session
generada
Validado
Cookie: fallos =3
302
Set-Cookie
Hay Cookie
Cookie?
Valido?
Fallos = 3
CAPTCHA
NO
DIGG.COM
POST con
u/p
Se comprueba session
generada
Validado
Cookie: fallos =1
302
Set-Cookie
Hay Cookie
Cookie?
Valido?
Fallos = 3
CAPTCHA
NO
Se borra la Cookie
ATAQUE
DIGG.COM
Usuarios demócratas: (nicknames == usernames)
Password “123456” (nadie la usa)
for i in `seq 1 1018`; do
curl –d "getdpage=$i&id=10&page=3&friends=0"
"http://digg.com/politics/Bobama_s_44th_Amer/who” |
grep users|sed -e 's|.*href="/users/(.*)">.*|1|g’
done
for pass in password 123456; do
for i in `cat USUARIOSOBAMA`; do
echo -n $i:$pass
curl -c digg.txt -s -L -D - -d "username=$i&password=123456&persistent=on"
'http://digg.com/login/prepare/digg'| grep -Ei "D.meta.user.loggedIn|incorrect";
done
done |tee -a passwd2.digg
DIGG.COM
http://www.enriquedans.com/2009/04/digg-0wned.html
PASSWORD
CRACKING
INTRODUCCIÓN
• Dado una cadena de texto cifrada o una función de resumen,
se trata de obtener el texto que la produce: la contraseña.
• Ataque offline: no se ejecuta contra un servicio
• Se lleva a cabo en:
• Ficheros de contraseñas de sistemas operativos y aplicaciones
(NTLM, SHA, Oracle, SQL Server, LDAP, Cisco, etc)
• Ficheros ofimáticos (zip, office, pdf, etc)
• Funciones de resumen: aplicaciones web, WPA, EFS…
FICHEROS DE CONTRASEÑAS
COMUNES
• Unix:
• Linux, Solaris:/etc/passwd, /etc/shadow
• AIX /etc/security/passwd
• HPUX: /tcb/files/auth/*
• Funciones de resumen:
• 3Des
• MD5 - $1$
• BSDi - DES extendido - _
• SHA256, SHA512 - $5$ ó $6$
• Windows
• C:windowssystem32configSAM
• LANMAN (no en 2008, vista y win7)
• NT Hash
VOLCADO DE CONTRASEÑAS
• Unix/Linux
• Volcado de fichero (se requiere root)
• Ficheros core
• Windows
• Herramientas tipo pwdump/hashdump (requieren
administrador)
• Aplicaciones web vulnerables
• SQL Injections
• Command Execution, LFI, etc
• Protocolos:
• Capturas de red
• Ficheros de configuración
VOLCADO DE FICHERO SAM
<username>:<uid>:<LM-hash>:<NTLM-hash>:<comment>:<homedir>:
Administrator:500:cb5f77772e5178b77b9fbd79429286db:b78fe104983b5c754a27c1784544fda7:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
rAWjAW:1003:aad3b435b51404eeaad3b435b51404ee:117a2f6059824c686e7a16a137768a20:::
rAWjAW2:1004:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c:::
Administrator:500:NO PASSWORD*********************:C2DDC6E8F19AD9212F9DE3CDD7CED452:::
Adminss:1019:NO PASSWORD*********************:5CEC01E98616554A67B388B44B33B4FF:::
ASPNET:1018:NO PASSWORD*********************:B3972D81B72D1CE5ED836D40C5FDE207:::
berlhw:1021:NO PASSWORD*********************:40925983E156C0386D8D6323B3793F60:::
LM Deshabilitado:
LM Y NTLM
• LM está habilitado hasta Vista/2008 por compatibilidad.
• Contraseñas máximas de 14 caracteres.
• El hash está compuesto por dos mitades de 7 bytes cada una, y se
rellena con bytes null hasta llegar a ese tamaño.
• Si el hash acaba en AAD3B435B51404EE, es que la contraseña
ocupa menos de 8 caracteres.
• Se convierte a mayúscula.
• Se usa una constante “KGS!@#$%” para cifrar
• Junto a WEP, es un buen ejemplo de como no hacer las cosas.
• NTLMv1 y NTLMv2 se considera igualmente inseguro
• Ataques de tipo “replay”
L0PHTCRACK
http://www.l0phtcrack.com/
• Inicialmente hecha por grupo
de hackers l0pht
• Herramienta comercial para
romper hashes, en especial
LM/NTLM
• De las primeras que se crearon
para este propósito.
/ETC/PASSWD Y /ETC/SHADOW
• /etc/passwd:
• root:x:0:0:root:/root:/bin/bash
• Usuario, contraseña, UID, GUID, Desc, home, Shell
• /etc/shadow
• root:$1$f6DDDbz$pdfzVKQGN/:14828:0:99999:7:::
• Usuario
• Contraseña cifrada
• Fecha modificación contraseña,
• Mínimos días antes de que se le cambiar la contraseña
• Máximos días para cambiar la contraseña, día siguiente, se le solicitará
cambio
• Días previos al máximo que será avisado el usuario
• Días máximos que una contraseña expirada será válida
• Fecha de expiración
FUNCIONES DE RESUMEN EN
APLICACIONES WEB
• Históricamente se ha usado MD5 o incluso texto plano
• También dobles hashes del estilo md5(md5($password)).
Prácticamente igual de inseguros.
• En la actualidad los principales productos opensource
(Wordpress, Drupal, Joomla) soportan hashes fuertes:
• phpass, bcrypt, scrypt.
• Nunca se debe tratar de diseñar una nueva función de hash.
VELOCIDAD
DE
PASSWORD
CRACKING
Oclhashcat-plus
PC3: Ubuntu 12.04.1, 64
bit, Catalyst 13.1
1x AMD hd6990
NTLM 9.096.000.000
MD5 6.956.000.000
SHA1 3.081.000.000
SHA256 1.101.000.000
SHA512 152.000.000
LM 992.000.000
phpass $P$ 308.700.000
descrypt 7.894.100.000
md5crypt $1$ 503.300.000
bcrypt $2a$ 3.877
sha512crypt $6$ 18.536
Password Safe (SHA-256) 60.800.000
IKE-PSK (MD5) 324.000.000
Oracle (DES) 167.000.000
DCC (MD4) 5.194.000.000
Joomla (MD5) 6.188.000.000
MSSQL (SHA1) 2.730.000.000
WPA/WPA2 (PBKDF2) 18.400.000
http://hashcat.net/oclhashcat-plus/
JOHN THE RIPPER
• Multiplataforma: Windows, Linux, etc
• Soporte de cifrados: Lanman, NT Hash, NTLMv1, Kerberos,
MySQL, MD5, 3Des, Netscape LDAP, etc
• Configuración: john.ini / john.conf
• Mucho de su potencial en el «jumbo patch»
• Modos de uso:
• Single
• Diccionario
• Incremental
• Externo
JOHN THE RIPPER, EJEMPLO
HASHCAT
• Herramienta gratuita pero no opensource
• Multiplataforma: Windows, Linux
• Soporta más de 85 cifrados distintos.
• Varios ataques: Straight, Combination, Toggle-Case, Brute-Force, Permutation,
Table-Lookup
MD5 md5($salt.md5($pass.$salt)) OS X v10.8 HMAC-SHA256(key = $pass)
md5($pass.$salt) md5($username.0.$pass) GRUB 2 HMAC-SHA256(key = $salt)
md5($salt.$pass) md5(strtoupper(md5($pass))) IPMI2 RAKP HMAC-SHA1 md5apr1, MD5(APR), Apache MD5
md5(unicode($pass).$salt) md5(sha1($pass)) Plaintext SHA512
md5($salt.unicode($pass)) sha1(sha1($pass)) Joomla sha512($pass.$salt)
HMAC-MD5(key = $pass) sha1(sha1(sha1($pass))) osCommerce, xt:Commerce sha512($salt.$pass)
HMAC-MD5(key = $salt) sha1(md5($pass))
nsldap, SHA-1(Base64), Netscape
LDAP SHA
HMAC-SHA512(key = $pass)
SHA1 MD5(Chap)
nsldaps, SSHA-1(Base64), Netscape
LDAP SSHA
HMAC-SHA512(key = $salt)
sha1($pass.$salt) SHA-3(Keccak) Oracle 11g SHA-512(Unix)
sha1($salt.$pass) Half MD5 SMF > v1.1 Cisco-PIX MD5
sha1(unicode($pass).$salt) Password Safe SHA-256 OS X v10.4, v10.5, v10.6 WPA/WPA2
sha1($salt.unicode($pass)) IKE-PSK MD5 MSSQL(2000) Double MD5
HMAC-SHA1 (key = $pass) IKE-PSK SHA1 MSSQL(2005) bcrypt, Blowfish(OpenBSD)
HMAC-SHA1 (key = $salt)
NetNTLMv1-VANILLA /
NetNTLMv1+ESS
EPiServer 6.x MD5(Sun)
MySQL NetNTLMv2 OS X v10.7 md5(md5(md5($pass)))
MySQL4.1/MySQL5 Cisco-IOS SHA256 MSSQL 2012 md5(md5($salt).$pass)
phpass, MD5(Wordpress),
MD5(phpBB3)
AIX {smd5} vBulletin < v3.8.5 md5($salt.md5($pass))
md5crypt, MD5(Unix), FreeBSD MD5,
Cisco-IOS MD5
AIX {ssha256} vBulletin > v3.8.5 md5($pass.md5($salt))
SHA-1(Django) AIX {ssha512} IPB2+, MyBB1.2+ md5($salt.$pass.$salt)
MD4 AIX {ssha1} WebEdition CMS md5(md5($pass).md5($salt))
NTLM Samsung Android Password/PIN sha256($pass.$salt) md5($salt.md5($salt.$pass))
Domain Cached Credentials, mscash GOST, GOST R 34.11-94 sha256($pass.$salt) sha256($salt.$pass)
SHA256 Fortigate (FortiOS)
ATAQUES HASHCAT
• Brute-Force: prueba todo el conjunto de posibilidades.
• Dictionary: usa una lista de palabras
• Combination: mezcla palabras de un mismo diccionario creándolas
compuestas.
• Fingerprint: descompone un diccionario creando nuevas palabras.
• Mask: usa máscaras del tipo ?l?l?l?d?s ([a-z][a-z][a-z][0-9][special]
• Hybrid: diccionario + mascáras
• Permutation: combina letras de cada palabra de un diccionario
• Rule-based: basado en reglas, modifica palabras.
• Table-Lookup: modifica diccionarios basados en una tabla
• Toggle-Case: sustituye de un diccionario creando letras mayusculas
CAIN & ABEL
• Conjunto de herramientas para Windows con sección de
contraseñas
• Muchos algoritmos soportados
• Lento
Cisco-IOS Type-5 enable passwords MS-Kerberos5 Pre-Auth WPA-PSK-AUTH
Cisco PIX enable passwords RADIUS Shared Secrets CHAP-MD5
APOP-MD5 IKE Pre-Shared Keys MS-CHAPv1
CRAM-MD5 Microsoft SQL Server 2000 MS-CHAPv2.
LM Microsoft SQL Server 2005 OSPF-MD5
LM + Challenge Oracle VRRP-HMAC-96
NTLM Oracle-TNS-DES VNC-3DES
NTLM + Challenge Oracle-TNS-3DES MySQLSHA1
NTLM Session Security Oracle-TNS-AES128 SIP-MD5
NTLMv2 Oracle-TNS-AES192 WPA-PSK
RIPv2-MD5 MySQL323
CAIN & ABEL
FICHEROS CON CONTRASEÑAS
• Contraseñas en ficheros ofimáticos:
• Comprimidos: ZIP, RAR
• OFFICE: XLS, DOC, PPT, XLSX, DOCX, PPTX, etc
• PDF
• Ficheros de correo: PST, Lotus
• Otros ficheros o hashes como EFS, WPA/PSK
• Gran soporte en herramientas comerciales
• GPU
• Distribuido.
• Pocas y no avanzadas herramientas gratuitas/opensource.
MODELOS DISTRIBUIDOS
• Algunas herramientas disponen la capacidad para distribuir la
carga entre varios sistemas haciendo uso de sus recursos:
• John the ripper
• Elcomsoft
• hashcat
RAINBOW TABLES
• Ataque denominado “Time-Memory Trade-Off”
• Se almacenan TODAS las posibles contraseñas con una técnica
de resumen en disco duro para luego consultarlas.
• El tiempo de generarlas es largo pero el rendimiento y
efectividad posterior muy alto
TAMAÑO EN DISCO
• Rainbow table "lm_ascii-32-65-123-4#1-7“
• Size: 32 GB Success rate: 99.9%
• Password charset: space and !"#$%&'()*+,-
./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghij
klmnopqrstuvwxyz{|}~
• Rainbow table "ntlm_numeric#1-12“
• Size: 8.75 GB
• Password charset: 0123456789
• Rainbow table "ntlm_mixalpha-numeric#1-8"
• Password charset:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456
789
• Size: 80 GB
HERRAMIENTAS
• Existen distintos formatos y herramientas de tablas Rainbow
• RainbowCrack original RT y con compresión RTC
• Ophcrack: bin/index/start
• FreeRainbow Tables: RTI2
• Cryptohaze (gpu)
• Algunas herramientas permiten la búsqueda usando GPU (no
la generación)
• Generalmente el cuello de botella está en la lectura a disco
OBTENCIÓN DE TABLAS RAINBOW
• Generarlas:
• rtgen: http://project-rainbowcrack.com/
• Cain&Abel (winrtgen): http://www.oxid.it
• Precomp (Ophcrack): http://ophcrack.sourceforge.net/
• Descargarlas
• Free Rainbow Tables: http://www.freerainbowtables.com/
• Shmoo group: http://rainbowtables.shmoo.com/
• Ophcrack: http://ophcrack.sourceforge.net/
• Online
• http://passcracking.com/
• http://md5pass.info/add.php
EJEMPLO OPHCRACK
• Descargar desde: http://secby.me/hX5sDg
INTRODUCCIÓN – GPU/GPGPU
• Se usa la potencia de la GPU (graphics
processing unit) o GPGPU (general purpose
graphics processing unit) para hacer cálculos
más rápidamente.
• Una GPU/GPGPU tiene centenares de
procesadores que multiplican el rendimiento
HERRAMIENTAS GRATUITAS (GPU)
• OclHashcat, oclhashcat+, oclhashcat-lite
• http://www.hashcat.net
• IGHASHGPU
• http://www.golubev.com/hashgpu.htm
• BarsWF
• http://3.14.by/en/md5
• Whitepixel
• http://whitepixel.zorinaq.com/
• Hashkill
• http://www.gat3way.eu/hashkill/index.php
OCLHASHCAT+ Y OCLHASHCAT-LITE
• Oclhashcat-lite
• Centrado en ser el más rápido analizando un único hash
• Menos algoritmos
• No soporta distintos ataques, solo máscaras.
• Optimizado y el más rápido para: NTLM, MD5, SHA1, SHA256 y
descrypt
• Oclhashcat-plus
• Soporta más algoritmos (+30)
• Distintos ataques: Straight, Combination, Brute-force, Hybrid dict
+ mask y Hybrid mask + dict
• El más rápido para: md5crypt, phpass, mscash2 and WPA / WPA2
cracker
HERRAMIENTAS COMERCIALES
• ElcomSoft: http://www.elcomsoft.es/products.html
• InsidePro: http://www.insidepro.com/eng/passwordspro.shtml
• AccentSoft: http://www.accentsoft.com/
• Passware: http://www.lostpassword.com/hardware-
acceleration.htm
• Passcovery Suite: http://gpupasswordrecovery.net/
• Password Recovery Tools: http://passwordrecoverytools.com/
• OctoPass: http://lastbit.com/octopass.asp
• HashSuite: http://hashsuite.openwall.net/performance
¿ AMD O NVIDIA ?
• Nvidia:
• CUDA históricamente estaba mejor soportado
• Más popular para videojuegos
• AMD:
• Drivers históricamente problemáticos
• Mucho más rápido
• Más económicas
0 2000 4000 6000 8000 10000 12000
Radeon HD 6990
Radeon HD 5970
Radeon HD 7970
Radeon HD 6970
Radeon HD 7870
GeForce GTX690
Radeon HD 6930
Radeon HD 5850
Radeon HD 7850
GeForce GTX590
Radeon HD 5830
Radeon HD 5770
GeForce GTX680
GeForce GTX570
GeForce GTX480
Radeon HD 4890
Radeon HD 7750
GeForce GTX560
GeForce GTX660
Radeon HD 4770
Radeon HD 6570
Radeon HD 5670
GeForce GTX285
Radeon HD 4670
GeForce GTX260
GeForce GT640
GeForce GT430
Millones de contraseñas por segundo
SHA1 MD5
PRUEBA GPU
Comparativa de tarjetas
gráficas con funciones
de hash SHA1 y MD5
PRUEBAS DE
GPU
Comparativa entre las
distintas tarjetas
gráficas para
documentos Office y
hashes WPA
0 20000 40000 60000 80000 100000120000140000160000180000
Radeon HD 6990
Radeon HD 5970
Radeon HD 7970
Radeon HD 6970
Radeon HD 7870
GeForce GTX690
Radeon HD 6930
Radeon HD 5850
Radeon HD 7850
GeForce GTX590
Radeon HD 5830
Radeon HD 5770
GeForce GTX680
GeForce GTX570
GeForce GTX480
Radeon HD 4890
Radeon HD 7750
GeForce GTX560
GeForce GTX660
Radeon HD 4770
Radeon HD 6570
Radeon HD 5670
GeForce GTX285
Radeon HD 4670
GeForce GTX260
GeForce GT640
GeForce GT430
Contraseñas por segundo
WPA MS Office 2007
CLUSTERS
• Fabricantes: Cubix
• 16 slots pci express
• 28.500$ (ups!)
http://www.cubixgpu.com/ca
talog/buy-xpander-desktop
HARDWARE
HARDWARE
VIRTUALCL
• Montar cluster
virtual para
aplicaciones OpenCL
(solo AMD)
http://www.mosix.org
/txt_vcl.html
http://hashcat.net/wi
ki/doku.php?id=vcl_cl
uster_howto
http://www.bindshell.nl/pub/Password_Cracking_HPC.pdf
AMAZON
• Ofrece Instancia con 2 Nvidia TESLA a 2$ la hora = 410M/s
• Velocidad similar a 1 Geforce GT 240 (70$)
 8 instancias
durante una
semana = 4 ATI
5790
 4 ATI =36.000M/s
 8 Instancias =
1.640M/s
FPGAS
• field-programmable gate array
• No ejecutan código como una CPU/GPU, los chips ejecutan
tareas específicas.
SERVICIOS ONLINE
• http://www.cmd5.org/
• https://www.cloudcracker.com/
• http://www.hash-database.net/
• http://www.onlinehashcrack.com/
• https://crackstation.net/
• http://leakdb.abusix.com/
• http://www.md5decrypter.co.uk/
HTTP://WWW.MD5DECRYPTER.CO.UK/
SERVICIOS ONLINE COMERCIALES
• https://www.cloudcracker.com/
• http://www.onlinehashcrack.com/
• http://www.password-online.com/index.php
• http://www.password-find.com/
HERRAMIENTAS ONLINE
• FindmyHash: Busca mediante consultas HTTP en varios sitios
online un hash
• Diferentes algoritmos soportados:
MD4, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, RMD160,
GOST, Whirlpool, LM, NTLM, MySQL, Cisco7, Juniper, LDAP_MD5, L
DAP_SHA1
• https://code.google.com/p/findmyhash/
• BozoCrack: busca en Google un hash MD5
• https://github.com/juuso/BozoCrack
CONCLUSIONES
APLICACIONES QUE COMPRUEBAN
CONTRASEÑAS
https://www.microsoft.com/security/pc-security/password-checker.aspx
http://www.passwordmeter.com/
Alejandro2011
Alejandro2011
POLÍTICAS DE CONTRASEÑAS
Long. Min Dígitos Caráct.Esp. Ej válidos
8 No No 1234567ab
6 No No qwerty
6 No No qwerty
6 No No asdfgh
8 No No qwertyui
6 No No qwerty
6 No No qwerty1234
CONSEJOS DE SEGURIDAD
CONCLUSIONES
• El mero uso de usuario y contraseña para el acceso a
información sensible se debería considerar un riesgo.
• Para este propósito se debe usar otro factor de autenticación:
token, OTP, biometría, etc.
• Su uso extendido y la falta de adopción de otras medidas hace
que sea muy difícil su eliminación.
• Incluso una correcta política de contraseñas no soluciona el
problema.
CUESTIONARIO
1. ¿Una función de resumen o hash es reversible?
A. Si
B. No
C. Depende del algoritmo empleado.
2. En un ataque por fuerza bruta:
A. Se usa una lista de palabras y se prueban como contraseñas.
B. Se crean contraseñas modificando una lista de palabras
C. Se generan todas las posibles combinaciones dado un juego de
carácteres.
3. Las tablas rainbow consisten en:
A. Atacar con la aplicación Rainbow un servicio vulnerable
B. Pre-computar todas las posibles combinaciones de un algoritmo
para un juego de caracteres almacenan en ficheros el resultado.
C. Usar un diccionario que ocupa mucho en el disco duro.
CUESTIONARIO
4. El password guessing consiste en:
A. Atacar un servicio probando usuarios y contraseñas en busca
de un par válido.
B. Adivinar una función de resumen en base a la información que
se ha obtenido previamente.
C. Usar la aplicación John The Ripper para obtener las
contraseñas de un sistema Unix.
5. Para prevenir ataques de contraseñas ¿Cuál es la mejor
opción?
A. Se deben establecer políticas de contraseñas, por ejemplo: 8
caracteres, una mayúscula, una minúscula y un número.
B. Las cuentas deben bloquearse si se detectan errores fallidos.
C. Usar frases como contraseñas: “mi perro tiene una pata azul”

Más contenido relacionado

La actualidad más candente

42 seguridad y autenticación
42  seguridad y autenticación42  seguridad y autenticación
42 seguridad y autenticación
Aprende Viendo
 
44 seguridad y se linux
44  seguridad y se linux44  seguridad y se linux
44 seguridad y se linux
Aprende Viendo
 
Pablo González y Francisco Ramirez - Anatomy of a modern malware. How easy th...
Pablo González y Francisco Ramirez - Anatomy of a modern malware. How easy th...Pablo González y Francisco Ramirez - Anatomy of a modern malware. How easy th...
Pablo González y Francisco Ramirez - Anatomy of a modern malware. How easy th...
RootedCON
 
Ataques Y Vulnerabilidades
Ataques Y VulnerabilidadesAtaques Y Vulnerabilidades
Ataques Y Vulnerabilidades
lamugre
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
jhon_f
 
Trabajo de seguridad informatica 1
Trabajo de seguridad informatica 1Trabajo de seguridad informatica 1
Trabajo de seguridad informatica 1
Carlos Alderete
 

La actualidad más candente (17)

6.1 Proteccion y Seguridad
6.1 Proteccion y Seguridad6.1 Proteccion y Seguridad
6.1 Proteccion y Seguridad
 
Cer tuy capacitaciones2011_v1
Cer tuy capacitaciones2011_v1Cer tuy capacitaciones2011_v1
Cer tuy capacitaciones2011_v1
 
Ayuda Web Seguridad Romero Gt
Ayuda Web Seguridad Romero GtAyuda Web Seguridad Romero Gt
Ayuda Web Seguridad Romero Gt
 
42 seguridad y autenticación
42  seguridad y autenticación42  seguridad y autenticación
42 seguridad y autenticación
 
44 seguridad y se linux
44  seguridad y se linux44  seguridad y se linux
44 seguridad y se linux
 
Seguridad en el desarrollo de aplicaciones web
Seguridad en el desarrollo de aplicaciones webSeguridad en el desarrollo de aplicaciones web
Seguridad en el desarrollo de aplicaciones web
 
Cybersecurity
CybersecurityCybersecurity
Cybersecurity
 
Pablo González y Francisco Ramirez - Anatomy of a modern malware. How easy th...
Pablo González y Francisco Ramirez - Anatomy of a modern malware. How easy th...Pablo González y Francisco Ramirez - Anatomy of a modern malware. How easy th...
Pablo González y Francisco Ramirez - Anatomy of a modern malware. How easy th...
 
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013Desarrollo Seguro en Drupal - DrupalCamp Spain 2013
Desarrollo Seguro en Drupal - DrupalCamp Spain 2013
 
Final andres rodriguez_ieee
Final andres rodriguez_ieeeFinal andres rodriguez_ieee
Final andres rodriguez_ieee
 
Ataques Y Vulnerabilidades
Ataques Y VulnerabilidadesAtaques Y Vulnerabilidades
Ataques Y Vulnerabilidades
 
Taller de Hacking (EXIT 2014)
Taller de Hacking (EXIT 2014)Taller de Hacking (EXIT 2014)
Taller de Hacking (EXIT 2014)
 
Ataques de denegacion de servicio
Ataques de denegacion de servicioAtaques de denegacion de servicio
Ataques de denegacion de servicio
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
 
Curso introducción a la seguridad informática: 04 Seguridad lógica
Curso introducción a la seguridad informática: 04 Seguridad lógicaCurso introducción a la seguridad informática: 04 Seguridad lógica
Curso introducción a la seguridad informática: 04 Seguridad lógica
 
Trabajo de seguridad informatica 1
Trabajo de seguridad informatica 1Trabajo de seguridad informatica 1
Trabajo de seguridad informatica 1
 
4.test de penetración pentest
4.test de penetración   pentest4.test de penetración   pentest
4.test de penetración pentest
 

Destacado

Seguridad informatica mecanismo de seguridad informática
Seguridad informatica   mecanismo de seguridad informáticaSeguridad informatica   mecanismo de seguridad informática
Seguridad informatica mecanismo de seguridad informática
Jose Quiroz
 
Integridad Y Seguridad En Las Bases De Datos
Integridad Y Seguridad En Las Bases De DatosIntegridad Y Seguridad En Las Bases De Datos
Integridad Y Seguridad En Las Bases De Datos
Drakonis11
 
Capitulo 3 protocolo de red
Capitulo 3 protocolo de redCapitulo 3 protocolo de red
Capitulo 3 protocolo de red
ScoutES7
 
Presentacion Protocolos
Presentacion ProtocolosPresentacion Protocolos
Presentacion Protocolos
astrologia
 
Proyecto: Arquitectura AAA
Proyecto: Arquitectura AAAProyecto: Arquitectura AAA
Proyecto: Arquitectura AAA
Francesc Perez
 
Seguridadwifi
SeguridadwifiSeguridadwifi
Seguridadwifi
Oscar Fdo
 

Destacado (20)

Mecanismos de autenticación e identificación
Mecanismos de autenticación e identificaciónMecanismos de autenticación e identificación
Mecanismos de autenticación e identificación
 
MYSQL
MYSQLMYSQL
MYSQL
 
Seguridad informatica mecanismo de seguridad informática
Seguridad informatica   mecanismo de seguridad informáticaSeguridad informatica   mecanismo de seguridad informática
Seguridad informatica mecanismo de seguridad informática
 
Mecanismos
MecanismosMecanismos
Mecanismos
 
Mecanismos de seguridad en redes
Mecanismos de seguridad en redesMecanismos de seguridad en redes
Mecanismos de seguridad en redes
 
LOS MECANISMOS DE SEGURIDAD
LOS MECANISMOS DE SEGURIDADLOS MECANISMOS DE SEGURIDAD
LOS MECANISMOS DE SEGURIDAD
 
Mecanismos de seguridad informática
Mecanismos de seguridad informáticaMecanismos de seguridad informática
Mecanismos de seguridad informática
 
Integridad Y Seguridad En Las Bases De Datos
Integridad Y Seguridad En Las Bases De DatosIntegridad Y Seguridad En Las Bases De Datos
Integridad Y Seguridad En Las Bases De Datos
 
Gestión de usuarios y autenticación en GNU/Linux
Gestión de usuarios y autenticación en GNU/LinuxGestión de usuarios y autenticación en GNU/Linux
Gestión de usuarios y autenticación en GNU/Linux
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
La arquitectura de elibom.com
La arquitectura de elibom.comLa arquitectura de elibom.com
La arquitectura de elibom.com
 
Capitulo 3 protocolo de red
Capitulo 3 protocolo de redCapitulo 3 protocolo de red
Capitulo 3 protocolo de red
 
Presentacion Protocolos
Presentacion ProtocolosPresentacion Protocolos
Presentacion Protocolos
 
¿El fin de las contraseñas? La autenticación simple cada vez más amenazada
¿El fin de las contraseñas? La autenticación simple cada vez más amenazada¿El fin de las contraseñas? La autenticación simple cada vez más amenazada
¿El fin de las contraseñas? La autenticación simple cada vez más amenazada
 
Proyecto: Arquitectura AAA
Proyecto: Arquitectura AAAProyecto: Arquitectura AAA
Proyecto: Arquitectura AAA
 
Seguridadwifi
SeguridadwifiSeguridadwifi
Seguridadwifi
 
Mecanismos de seguridad-BY JORDY
Mecanismos de seguridad-BY JORDYMecanismos de seguridad-BY JORDY
Mecanismos de seguridad-BY JORDY
 
Apache Cassandra en SmartPolitech
Apache Cassandra en SmartPolitech Apache Cassandra en SmartPolitech
Apache Cassandra en SmartPolitech
 
OSI - CISCO
OSI - CISCOOSI - CISCO
OSI - CISCO
 
Informe cassandra
Informe cassandraInforme cassandra
Informe cassandra
 

Similar a Mecanismos de autenticación-identificación. Vulneración y cracking de contraseñas

Pentest - El Arte de la Guerra
Pentest - El Arte de la GuerraPentest - El Arte de la Guerra
Pentest - El Arte de la Guerra
Luis Cortes Zavala
 
Análisis Forense Memoria RAM
Análisis Forense Memoria RAMAnálisis Forense Memoria RAM
Análisis Forense Memoria RAM
Conferencias FIST
 
Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2
Terrafx9
 

Similar a Mecanismos de autenticación-identificación. Vulneración y cracking de contraseñas (20)

Hack & beers lleida seguridad en desarrollo fullstack
Hack & beers lleida   seguridad en desarrollo fullstackHack & beers lleida   seguridad en desarrollo fullstack
Hack & beers lleida seguridad en desarrollo fullstack
 
Web cryptography
Web cryptographyWeb cryptography
Web cryptography
 
webminar ataques de fuerza bruta kali linux
webminar ataques de fuerza bruta kali linux webminar ataques de fuerza bruta kali linux
webminar ataques de fuerza bruta kali linux
 
Seguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASPSeguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASP
 
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
 
Recomendaciones de seguridad informática
Recomendaciones de seguridad informáticaRecomendaciones de seguridad informática
Recomendaciones de seguridad informática
 
Pentest - El Arte de la Guerra
Pentest - El Arte de la GuerraPentest - El Arte de la Guerra
Pentest - El Arte de la Guerra
 
OWASP Top 10 2017
OWASP Top 10 2017OWASP Top 10 2017
OWASP Top 10 2017
 
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
 
Cookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internetCookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internet
 
Las cronicas de redis
Las cronicas de redisLas cronicas de redis
Las cronicas de redis
 
Los 10 principales riesgos en aplicaciones web #CPMX5
Los 10 principales riesgos en aplicaciones web #CPMX5Los 10 principales riesgos en aplicaciones web #CPMX5
Los 10 principales riesgos en aplicaciones web #CPMX5
 
Cómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebCómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación Web
 
Seguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoSeguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio Electrónico
 
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
 
Análisis Forense Memoria RAM
Análisis Forense Memoria RAMAnálisis Forense Memoria RAM
Análisis Forense Memoria RAM
 
Pecha kucha
Pecha kuchaPecha kucha
Pecha kucha
 
Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2Pecha Kucha Mod_Security Apache2
Pecha Kucha Mod_Security Apache2
 
Tripwire 2006
Tripwire 2006Tripwire 2006
Tripwire 2006
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con Alfresco
 

Más de Alejandro Ramos

Te pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLiteTe pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLite
Alejandro Ramos
 
Jornada de ciberdefensa stuxnet
Jornada de ciberdefensa   stuxnetJornada de ciberdefensa   stuxnet
Jornada de ciberdefensa stuxnet
Alejandro Ramos
 

Más de Alejandro Ramos (20)

Cookies y privacidad, tocino y velocidad - sh3llcon (Enero 2015)
Cookies y privacidad, tocino y velocidad - sh3llcon (Enero 2015)Cookies y privacidad, tocino y velocidad - sh3llcon (Enero 2015)
Cookies y privacidad, tocino y velocidad - sh3llcon (Enero 2015)
 
Ejemplos de seguridad en aplicaciones moviles (IOS)
Ejemplos de seguridad en aplicaciones moviles (IOS) Ejemplos de seguridad en aplicaciones moviles (IOS)
Ejemplos de seguridad en aplicaciones moviles (IOS)
 
Te pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLiteTe pique lo que te pique, analiza un SQLite
Te pique lo que te pique, analiza un SQLite
 
Shodab
ShodabShodab
Shodab
 
Forense en windows - Resolución Reto I de Dragonjar
Forense en windows -  Resolución Reto I de DragonjarForense en windows -  Resolución Reto I de Dragonjar
Forense en windows - Resolución Reto I de Dragonjar
 
Análisis forense en linux - Compromised Linux Server
Análisis forense en linux - Compromised Linux ServerAnálisis forense en linux - Compromised Linux Server
Análisis forense en linux - Compromised Linux Server
 
Advanced password cracking
Advanced password crackingAdvanced password cracking
Advanced password cracking
 
Seguridad en PDF: Adobe ¬¬
Seguridad en PDF: Adobe ¬¬Seguridad en PDF: Adobe ¬¬
Seguridad en PDF: Adobe ¬¬
 
Wargame
WargameWargame
Wargame
 
Jornada de ciberdefensa stuxnet
Jornada de ciberdefensa   stuxnetJornada de ciberdefensa   stuxnet
Jornada de ciberdefensa stuxnet
 
Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0
 
Pentest curso de verano - valencia 2010
Pentest curso de verano - valencia 2010Pentest curso de verano - valencia 2010
Pentest curso de verano - valencia 2010
 
Seguridad en PDF - Adobe ¬¬
Seguridad en PDF - Adobe ¬¬Seguridad en PDF - Adobe ¬¬
Seguridad en PDF - Adobe ¬¬
 
Rooted2010 Otp
Rooted2010 OtpRooted2010 Otp
Rooted2010 Otp
 
Owasp Top10 FireFox
Owasp Top10 FireFoxOwasp Top10 FireFox
Owasp Top10 FireFox
 
Fist - Negocio Pirateria
Fist - Negocio PirateriaFist - Negocio Pirateria
Fist - Negocio Pirateria
 
Seguridad en Bluetooth
Seguridad en BluetoothSeguridad en Bluetooth
Seguridad en Bluetooth
 
DNI-E
DNI-EDNI-E
DNI-E
 
DoS En La Ciberguerra
DoS En La CiberguerraDoS En La Ciberguerra
DoS En La Ciberguerra
 
Crapcha Sv1.0 Slide Share
Crapcha Sv1.0   Slide ShareCrapcha Sv1.0   Slide Share
Crapcha Sv1.0 Slide Share
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Mecanismos de autenticación-identificación. Vulneración y cracking de contraseñas

  • 1. MÓDULO 3: COMUNICACIONES CRÍTICAS E IDENTIFICACIÓN EN ENTORNOS DE ALTA SEGURIDAD. MECANISMOS DE AUTENTICACIÓN- IDENTIFICACIÓN. VULNERACIÓN Y CRACKING DE CONTRASEÑAS ALEJANDRO RAMOS – SEPTIEMBRE 2013 WWW.SECURITYBYDEFAULT.COM
  • 3. MORRIS WORM • 3 Métodos de ataque: • Contraseña = usuario, contraseña= usuariousuario y contraseña = emanresu • Diccionario de palabras • Usar diccionario del propio sistema cracksome.c … /* Check for 'username', 'usernameusername' and 'emanresu' as passwds. */ … char *wds[] = { "academia", "aerobics", "airplane", "albany", "albatross", "albert", "alex", "alexander", "algebra", "aliases", "alphabet", … x27f30 = fopen(XS("/usr/dict/words"), XS("r"));
  • 4. ¿PROBLEMAS DE USUARIOS EN 2013? • Estudio de políticas de contraseñas • «Nuevas» técnicas: • Usos distribuidos • GPGPU • La nube, servidores en Internet • Una contraseña suele ser válida para varios sitios • «un anillo para gobernarlos a todos» • Para qué ASLR, DEP, IPS, Antivirus, proxies… si la contraseña es el nombre de la compañía • Because There Is No Patch To Human Stupidity
  • 7. INCIDENTES – ROCKYOU Contraseña Num 123456 290729 12345 79076 123456789 76786 password 59462 iloveyou 49952 princess 33291 1234567 21725 rockyou 20901 12345678 20553 abc123 16648  Diciembre 2009  Obtenidas mediante SQL Injection  32.603.387 usuarios  14.344.391 contraseñas  Contraseñas en texto plano  Diccionario de gran utilidad
  • 8. INCIDENTES – SINGLES.ORG Contraseña Num 123456 221 jesus 63 password 58 12345679 46 christ 36 love 29 princess 27 jesus1 25 sushine 24 1234567 23  Red social de citas para religiosos (?)  Acceso al perfil del usuario con su ID de 6 dígitos  En el perfil se muestra la contraseña.  16.250 usuarios  12.234 contraseñas
  • 9. INCIDENTES – ROOTKIT Contraseña Num 123456 1023 password 384 rootkit 329 111111 190 12345678 181 qwerty 174 123456789 170 123123 99 qwertyui 91 12345 89  Portal de RCE  Ingeniería social con el incidente HBGary  81.450 usuarios  58,675 contraseñas distintas  54,372 encontradas (93%)  4,303 Pendientes
  • 10. INCIDENTES – GAWKER Contraseña Num 123456 4162 password 3332 12345678 1444 lifehack 861 qwerty 765 abc123 529 12345 503 monkey 471 111111 439 12345 410  Sin detalles del ataque  Lifehacker / Gizmodo  748.557 usuarios / hashes  DES, salt (8 caracteres max)  Muchas pass son HEX (spam)  674,690 encontrados (91%)
  • 13. FUNCIONES DE HASH O RESUMEN • Resumen un conjunto de elementos en una cadena de bytes. • No son reversibles. Dado el resultado no se debe poder obtener el conjunto de elementos. • Es común su aplicación para comprobar la integridad ficheros o el almacenamiento de contraseñas. Gato Perro Cocodrilo Función hash Función hash Función hash D4F6AA C2E6B1 DDA90E
  • 14. CONTRASEÑAS EN APPS WEB • Las contraseñas se suelen almacenar de forma segura en las aplicaciones web • El método más común es utilizar funciones de hash • Ejemplos MD5, MD5, SHA1, SHA256 • En ocasiones se guardan en texto claro :-( • En ocasiones se almacenan usando semillas. Registro en web Contraseña «hola» 4d186321c1a7f0f354b297e8914a b240 Acceso: Contraseña: «hola» 4d186321c1a7f0f354b 297e8914ab240 md5(hola) md5(hola)
  • 15. FUNCIONES DE HASH CON SEMILLA • Al conjunto de elementos se le añade un texto al azar • El texto al azar es escogido en el momento de la creación y almacenado junto al resultado de la función • Evita que dos conjuntos de elementos tengan el mismo resultado Gato Gato Gato Función hash Función hash Función hash Df,BA6D3E G3,98H7E1 Z7,A8D48C Df$gGato G3$Gato Z7$Gato
  • 16. CONTRASEÑAS EN SSOO • Los algoritmos más comunes son: NTLM, 3DES, SHA1, SHA256, SHA512 con semilla. • La semilla es una cadena de caracteres generada aleatoriamente. • También en aplicaciones web Crear nueva contraseña Contraseña «adios» DzdFz,0edfd414c0ea0c7e8ff934 33673… Acceso: Contraseña: «adios» 0edfd414c0ea0c7e8f f93433673 sha512(DzdFz,a dios) sha512(DzdFz,a dios)
  • 17. TIPOS DE ATAQUE • Si el algoritmo no es reversible existen varios tipos de ataque: por diccionario, por fuerza bruta o tablas precomputadas. 1. Fuerza bruta: se generan todas las posibles palabras de un determinado juego de caracteres. Ejemplo: [a-z]{1,8} [aA-zZ]{1,10} 2. Por diccionario: se utiliza una lista de palabras 3. Tablas precomputadas: dado un juego de caracteres, se crea un conjunto de ficheros en los que consultar un hash.
  • 18. DICCIONARIOS • Fichero con una lista de palabras que son contraseñas comunes: • 123456 • password • …. • Uso de diccionarios creados a medida: • Navegación y creación de listas en base a la web • Palabras del mismo entorno, sector, etc • http://www.digininja.org/projects/cewl.php • Sitios hackeados anteriormente • Uso de diccionarios de nombres de usuario (como facebook)
  • 19. CREAR UN DICCIONARIO. EJEMPLO: IMDB • Títulos de películas: $ wget ftp://ftp.fu- berlin.de/pub/misc/movies/database/movies.list.gz $ zcat movies.list.gz | sed -e 's|(.*||g' > movies.dict $ sort –R movies.dict |head -1 movies.dict Magic in the Sky $ zcat movies.list.gz | sed -e 's|(.*||g' -e 's/<(.)([^ ]*)/1/g' -e 's| ||g' |sort –u> moviesacron.dict $ sort –R movies.dict |head -1 YWNitMP
  • 20.
  • 21. DICCIONARIOS • Existen largas colecciones de diccionarios en Internet • El más popular a día de hoy es el generado de RockYou. • Descargas: • http://www.skullsecurity.org/wiki/index.php/Passwords • ftp://ftp.openwall.com/pub/wordlists/ • https://crackstation.net/buy-crackstation-wordlist-password- cracking-dictionary.htm • http://packetstormsecurity.com/Crackers/wordlists/
  • 22. DICCIONARIOS: REGLAS • Permutan palabras de un diccionario: Ej «ninja» • Ninja2010, ninja!, NiNjA, $$ninja$$, n1nj4, ninjaaa! • Herramientas: oclhashcat+, hashcat y JtR • Reglas creadas por Korelogic: • JtR: http://contest.korelogic.com/rules.html • Ocl/hashcat: http://contest-2010.korelogic.com/rules-hashcat.html john.conf: [List.Rules:UPMRulesAppendupm] cAz"[uU][pP][mM]" [List.Rules:UPMRulesPrependupm] A0"[uU][pP][mM]"
  • 23. EJEMPLO JTR / HASHCAT
  • 24.
  • 25. DICCIONARIOS: FINGERPRINT • Dado un diccionario de contraseñas válidas, generar otras combinaciones:
  • 27.
  • 28. PASSWORD GUESSING / CRACKING • Password guessing (ataque online) • Adivinar usuarios y contraseñas válidos en sistemas remotos • Genera demasiado tráfico y ruido • Puede bloquear cuentas • Siempre efectivo pero poco elegante • Password cracking (ataque offline) • Hace falta tener permisos de administrador/root • Obtener el resultado de una contraseña cifrada/hash • Se ejecuta localmente (o red de servidores) • No bloquea cuentas • Es más rápido
  • 30. INTRODUCCIÓN • Un usuario válido lo puede ser en muchos sistemas • Una contraseña válida, lo puede ser para muchos usuarios • Almacenar ambas listas durante toda la ejecución • Utilizar más de un equipo/conexión para ganar velocidad
  • 31. BLOQUEO DE CUENTAS • Protección del sistema para evitar ataques. • Denegación de servicio si se bloquean todos!! • Con un ataque de Password Guessing se pueden bloquear TODAS las cuentas • Antes de realizarlo se ha de comprobar: • Número de intentos antes de bloqueo • Duración del bloqueo • Duración antes de reinicio del contador de bloqueo • Pruebas inversas
  • 33. LINUX • El bloqueo de usuarios no está habilitado por defecto. • Configurado vía PAM en el archivo: /etc/pam.d/system- auth auth required pam_tally.so onerr=fail deny=5 unlock_time=21600 • En remoto no se puede ver el fichero, se averigua mediante prueba y error. • Por defecto el usuario root no se bloquea
  • 34. THC HYDRA • Prueba de usuarios y contraseñas con diccionario • Es multiplataforma: Windows, Linux, Palm, ARM … • Protocolos soportados: TELNET SMTP-AUTH LDAP3 MYSQL FTP SOCKS5 Postgres REXEC HTTP VNC Teamspeak RSH HTTPS POP3 Cisco auth RLOGIN HTTP-PROXY IMAP Cisco enable CVS SMB NNTP LDAP2 SNMP SMBNT PCNFS Cisco AAA LDAP2 MS-SQL ICQ SAP/R3
  • 36.
  • 37. MEDUSA • Opciones muy flexibles • Múltiples hosts • Linux, Solaris, BSD, Mac OSX, Win AFP REXEC NNTP VNC MySQL CVS RLOGIN PcAnywhere Generic Wrapper SNMP FTP RSH POP3 VMAuthd Telnet HTTP SMBNT PostgreSQL SSHv2 Subversion (SVN) IMAP SMTP-AUTH Web Form NetWare NCP SMTP-VRFY MS-SQL
  • 38.
  • 39. • Ncrack • Versión Alpha con pocos protocolos soportados • Herramienta incluida en el paquete de Nmap • Soporte para: FTP, SSH, TELNET, HTTP(S), POP3(S), SMB, RDP, VNC • http://nmap.org/ncrack/ • Patator • Desarrollado en Python • Genera fuerza bruta de usuarios y contraseñas o protocolos • https://code.google.com/p/patator/ OTRAS HERRAMIENTAS
  • 40. FORMULARIOS WEB • Se analiza la petición HTTP que se hace • Con un proxy • Usando las opciones de debug del navegador • Se detecta la cadena de contraseña incorrecta o correcta • Código HTTP • Mensaje de texto • Se configura la herramienta con las opciones, hydra o medusa soportan formularios web. • Brutus • Burp Proxy • curl, etc..
  • 41.
  • 42. MITIGAR • Las medidas generales para mitigar los ataques de password guessing son: • Ralentización en cada intento. • Ejemplo: PIN de iPhone • Bloqueo de cuentas (puede generar Denegación de Servicio) • Sistemas Windows • Uso de CAPTCHAS. • Ejemplo: Aplicaciones web • Herramientas específicas de Privileged Identity Management como Cyber-Ark, CA, Quest, BeyondTrust • Cambio del método de autenticación: certificados • Doble factor de autenticación.
  • 44. DIGG.COM •Envío usuario y contraseña mediante un POST •El servidor crea una sesión y devuelve un 302 (redirección) a otra página que comprueba si la sesión es correcta o incorrecta en base al usuario y contraseña •Si la contraseña es válida paso, si no es válida me envía a la página de autenticación con un error y la misma sesión que suma 1 error fallido. •Elimino la sesión (y con ello el contador) y repito el envío de usuario y contraseña, volviendo al punto 1. Por lo que el captcha no aparecerá nunca al no sumar los cuatro intentos. http://www.securitybydefault.com/2009/04/aplicando-fuerza-espartana-digg.html
  • 45. DIGG.COM POST con u/p Se comprueba session generada Validado Cookie: fallos =1 302 Set-Cookie Hay Cookie Cookie? Valido? Fallos = 3 CAPTCHA NO
  • 46. DIGG.COM POST con u/p Se comprueba session generada Validado Cookie: fallos =2 302 Set-Cookie Hay Cookie Cookie? Valido? Fallos = 3 CAPTCHA NO
  • 47. DIGG.COM POST con u/p Se comprueba session generada Validado Cookie: fallos =3 302 Set-Cookie Hay Cookie Cookie? Valido? Fallos = 3 CAPTCHA NO
  • 48. DIGG.COM POST con u/p Se comprueba session generada Validado Cookie: fallos =1 302 Set-Cookie Hay Cookie Cookie? Valido? Fallos = 3 CAPTCHA NO Se borra la Cookie ATAQUE
  • 49. DIGG.COM Usuarios demócratas: (nicknames == usernames) Password “123456” (nadie la usa) for i in `seq 1 1018`; do curl –d "getdpage=$i&id=10&page=3&friends=0" "http://digg.com/politics/Bobama_s_44th_Amer/who” | grep users|sed -e 's|.*href="/users/(.*)">.*|1|g’ done for pass in password 123456; do for i in `cat USUARIOSOBAMA`; do echo -n $i:$pass curl -c digg.txt -s -L -D - -d "username=$i&password=123456&persistent=on" 'http://digg.com/login/prepare/digg'| grep -Ei "D.meta.user.loggedIn|incorrect"; done done |tee -a passwd2.digg
  • 52. INTRODUCCIÓN • Dado una cadena de texto cifrada o una función de resumen, se trata de obtener el texto que la produce: la contraseña. • Ataque offline: no se ejecuta contra un servicio • Se lleva a cabo en: • Ficheros de contraseñas de sistemas operativos y aplicaciones (NTLM, SHA, Oracle, SQL Server, LDAP, Cisco, etc) • Ficheros ofimáticos (zip, office, pdf, etc) • Funciones de resumen: aplicaciones web, WPA, EFS…
  • 53. FICHEROS DE CONTRASEÑAS COMUNES • Unix: • Linux, Solaris:/etc/passwd, /etc/shadow • AIX /etc/security/passwd • HPUX: /tcb/files/auth/* • Funciones de resumen: • 3Des • MD5 - $1$ • BSDi - DES extendido - _ • SHA256, SHA512 - $5$ ó $6$ • Windows • C:windowssystem32configSAM • LANMAN (no en 2008, vista y win7) • NT Hash
  • 54. VOLCADO DE CONTRASEÑAS • Unix/Linux • Volcado de fichero (se requiere root) • Ficheros core • Windows • Herramientas tipo pwdump/hashdump (requieren administrador) • Aplicaciones web vulnerables • SQL Injections • Command Execution, LFI, etc • Protocolos: • Capturas de red • Ficheros de configuración
  • 55. VOLCADO DE FICHERO SAM <username>:<uid>:<LM-hash>:<NTLM-hash>:<comment>:<homedir>: Administrator:500:cb5f77772e5178b77b9fbd79429286db:b78fe104983b5c754a27c1784544fda7::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: rAWjAW:1003:aad3b435b51404eeaad3b435b51404ee:117a2f6059824c686e7a16a137768a20::: rAWjAW2:1004:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c::: Administrator:500:NO PASSWORD*********************:C2DDC6E8F19AD9212F9DE3CDD7CED452::: Adminss:1019:NO PASSWORD*********************:5CEC01E98616554A67B388B44B33B4FF::: ASPNET:1018:NO PASSWORD*********************:B3972D81B72D1CE5ED836D40C5FDE207::: berlhw:1021:NO PASSWORD*********************:40925983E156C0386D8D6323B3793F60::: LM Deshabilitado:
  • 56. LM Y NTLM • LM está habilitado hasta Vista/2008 por compatibilidad. • Contraseñas máximas de 14 caracteres. • El hash está compuesto por dos mitades de 7 bytes cada una, y se rellena con bytes null hasta llegar a ese tamaño. • Si el hash acaba en AAD3B435B51404EE, es que la contraseña ocupa menos de 8 caracteres. • Se convierte a mayúscula. • Se usa una constante “KGS!@#$%” para cifrar • Junto a WEP, es un buen ejemplo de como no hacer las cosas. • NTLMv1 y NTLMv2 se considera igualmente inseguro • Ataques de tipo “replay”
  • 57. L0PHTCRACK http://www.l0phtcrack.com/ • Inicialmente hecha por grupo de hackers l0pht • Herramienta comercial para romper hashes, en especial LM/NTLM • De las primeras que se crearon para este propósito.
  • 58. /ETC/PASSWD Y /ETC/SHADOW • /etc/passwd: • root:x:0:0:root:/root:/bin/bash • Usuario, contraseña, UID, GUID, Desc, home, Shell • /etc/shadow • root:$1$f6DDDbz$pdfzVKQGN/:14828:0:99999:7::: • Usuario • Contraseña cifrada • Fecha modificación contraseña, • Mínimos días antes de que se le cambiar la contraseña • Máximos días para cambiar la contraseña, día siguiente, se le solicitará cambio • Días previos al máximo que será avisado el usuario • Días máximos que una contraseña expirada será válida • Fecha de expiración
  • 59. FUNCIONES DE RESUMEN EN APLICACIONES WEB • Históricamente se ha usado MD5 o incluso texto plano • También dobles hashes del estilo md5(md5($password)). Prácticamente igual de inseguros. • En la actualidad los principales productos opensource (Wordpress, Drupal, Joomla) soportan hashes fuertes: • phpass, bcrypt, scrypt. • Nunca se debe tratar de diseñar una nueva función de hash.
  • 60. VELOCIDAD DE PASSWORD CRACKING Oclhashcat-plus PC3: Ubuntu 12.04.1, 64 bit, Catalyst 13.1 1x AMD hd6990 NTLM 9.096.000.000 MD5 6.956.000.000 SHA1 3.081.000.000 SHA256 1.101.000.000 SHA512 152.000.000 LM 992.000.000 phpass $P$ 308.700.000 descrypt 7.894.100.000 md5crypt $1$ 503.300.000 bcrypt $2a$ 3.877 sha512crypt $6$ 18.536 Password Safe (SHA-256) 60.800.000 IKE-PSK (MD5) 324.000.000 Oracle (DES) 167.000.000 DCC (MD4) 5.194.000.000 Joomla (MD5) 6.188.000.000 MSSQL (SHA1) 2.730.000.000 WPA/WPA2 (PBKDF2) 18.400.000 http://hashcat.net/oclhashcat-plus/
  • 61. JOHN THE RIPPER • Multiplataforma: Windows, Linux, etc • Soporte de cifrados: Lanman, NT Hash, NTLMv1, Kerberos, MySQL, MD5, 3Des, Netscape LDAP, etc • Configuración: john.ini / john.conf • Mucho de su potencial en el «jumbo patch» • Modos de uso: • Single • Diccionario • Incremental • Externo
  • 62. JOHN THE RIPPER, EJEMPLO
  • 63.
  • 64. HASHCAT • Herramienta gratuita pero no opensource • Multiplataforma: Windows, Linux • Soporta más de 85 cifrados distintos. • Varios ataques: Straight, Combination, Toggle-Case, Brute-Force, Permutation, Table-Lookup MD5 md5($salt.md5($pass.$salt)) OS X v10.8 HMAC-SHA256(key = $pass) md5($pass.$salt) md5($username.0.$pass) GRUB 2 HMAC-SHA256(key = $salt) md5($salt.$pass) md5(strtoupper(md5($pass))) IPMI2 RAKP HMAC-SHA1 md5apr1, MD5(APR), Apache MD5 md5(unicode($pass).$salt) md5(sha1($pass)) Plaintext SHA512 md5($salt.unicode($pass)) sha1(sha1($pass)) Joomla sha512($pass.$salt) HMAC-MD5(key = $pass) sha1(sha1(sha1($pass))) osCommerce, xt:Commerce sha512($salt.$pass) HMAC-MD5(key = $salt) sha1(md5($pass)) nsldap, SHA-1(Base64), Netscape LDAP SHA HMAC-SHA512(key = $pass) SHA1 MD5(Chap) nsldaps, SSHA-1(Base64), Netscape LDAP SSHA HMAC-SHA512(key = $salt) sha1($pass.$salt) SHA-3(Keccak) Oracle 11g SHA-512(Unix) sha1($salt.$pass) Half MD5 SMF > v1.1 Cisco-PIX MD5 sha1(unicode($pass).$salt) Password Safe SHA-256 OS X v10.4, v10.5, v10.6 WPA/WPA2 sha1($salt.unicode($pass)) IKE-PSK MD5 MSSQL(2000) Double MD5 HMAC-SHA1 (key = $pass) IKE-PSK SHA1 MSSQL(2005) bcrypt, Blowfish(OpenBSD) HMAC-SHA1 (key = $salt) NetNTLMv1-VANILLA / NetNTLMv1+ESS EPiServer 6.x MD5(Sun) MySQL NetNTLMv2 OS X v10.7 md5(md5(md5($pass))) MySQL4.1/MySQL5 Cisco-IOS SHA256 MSSQL 2012 md5(md5($salt).$pass) phpass, MD5(Wordpress), MD5(phpBB3) AIX {smd5} vBulletin < v3.8.5 md5($salt.md5($pass)) md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5 AIX {ssha256} vBulletin > v3.8.5 md5($pass.md5($salt)) SHA-1(Django) AIX {ssha512} IPB2+, MyBB1.2+ md5($salt.$pass.$salt) MD4 AIX {ssha1} WebEdition CMS md5(md5($pass).md5($salt)) NTLM Samsung Android Password/PIN sha256($pass.$salt) md5($salt.md5($salt.$pass)) Domain Cached Credentials, mscash GOST, GOST R 34.11-94 sha256($pass.$salt) sha256($salt.$pass) SHA256 Fortigate (FortiOS)
  • 65. ATAQUES HASHCAT • Brute-Force: prueba todo el conjunto de posibilidades. • Dictionary: usa una lista de palabras • Combination: mezcla palabras de un mismo diccionario creándolas compuestas. • Fingerprint: descompone un diccionario creando nuevas palabras. • Mask: usa máscaras del tipo ?l?l?l?d?s ([a-z][a-z][a-z][0-9][special] • Hybrid: diccionario + mascáras • Permutation: combina letras de cada palabra de un diccionario • Rule-based: basado en reglas, modifica palabras. • Table-Lookup: modifica diccionarios basados en una tabla • Toggle-Case: sustituye de un diccionario creando letras mayusculas
  • 66.
  • 67. CAIN & ABEL • Conjunto de herramientas para Windows con sección de contraseñas • Muchos algoritmos soportados • Lento Cisco-IOS Type-5 enable passwords MS-Kerberos5 Pre-Auth WPA-PSK-AUTH Cisco PIX enable passwords RADIUS Shared Secrets CHAP-MD5 APOP-MD5 IKE Pre-Shared Keys MS-CHAPv1 CRAM-MD5 Microsoft SQL Server 2000 MS-CHAPv2. LM Microsoft SQL Server 2005 OSPF-MD5 LM + Challenge Oracle VRRP-HMAC-96 NTLM Oracle-TNS-DES VNC-3DES NTLM + Challenge Oracle-TNS-3DES MySQLSHA1 NTLM Session Security Oracle-TNS-AES128 SIP-MD5 NTLMv2 Oracle-TNS-AES192 WPA-PSK RIPv2-MD5 MySQL323
  • 69. FICHEROS CON CONTRASEÑAS • Contraseñas en ficheros ofimáticos: • Comprimidos: ZIP, RAR • OFFICE: XLS, DOC, PPT, XLSX, DOCX, PPTX, etc • PDF • Ficheros de correo: PST, Lotus • Otros ficheros o hashes como EFS, WPA/PSK • Gran soporte en herramientas comerciales • GPU • Distribuido. • Pocas y no avanzadas herramientas gratuitas/opensource.
  • 70. MODELOS DISTRIBUIDOS • Algunas herramientas disponen la capacidad para distribuir la carga entre varios sistemas haciendo uso de sus recursos: • John the ripper • Elcomsoft • hashcat
  • 71. RAINBOW TABLES • Ataque denominado “Time-Memory Trade-Off” • Se almacenan TODAS las posibles contraseñas con una técnica de resumen en disco duro para luego consultarlas. • El tiempo de generarlas es largo pero el rendimiento y efectividad posterior muy alto
  • 72. TAMAÑO EN DISCO • Rainbow table "lm_ascii-32-65-123-4#1-7“ • Size: 32 GB Success rate: 99.9% • Password charset: space and !"#$%&'()*+,- ./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghij klmnopqrstuvwxyz{|}~ • Rainbow table "ntlm_numeric#1-12“ • Size: 8.75 GB • Password charset: 0123456789 • Rainbow table "ntlm_mixalpha-numeric#1-8" • Password charset: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456 789 • Size: 80 GB
  • 73. HERRAMIENTAS • Existen distintos formatos y herramientas de tablas Rainbow • RainbowCrack original RT y con compresión RTC • Ophcrack: bin/index/start • FreeRainbow Tables: RTI2 • Cryptohaze (gpu) • Algunas herramientas permiten la búsqueda usando GPU (no la generación) • Generalmente el cuello de botella está en la lectura a disco
  • 74. OBTENCIÓN DE TABLAS RAINBOW • Generarlas: • rtgen: http://project-rainbowcrack.com/ • Cain&Abel (winrtgen): http://www.oxid.it • Precomp (Ophcrack): http://ophcrack.sourceforge.net/ • Descargarlas • Free Rainbow Tables: http://www.freerainbowtables.com/ • Shmoo group: http://rainbowtables.shmoo.com/ • Ophcrack: http://ophcrack.sourceforge.net/ • Online • http://passcracking.com/ • http://md5pass.info/add.php
  • 75.
  • 76.
  • 77. EJEMPLO OPHCRACK • Descargar desde: http://secby.me/hX5sDg
  • 78. INTRODUCCIÓN – GPU/GPGPU • Se usa la potencia de la GPU (graphics processing unit) o GPGPU (general purpose graphics processing unit) para hacer cálculos más rápidamente. • Una GPU/GPGPU tiene centenares de procesadores que multiplican el rendimiento
  • 79. HERRAMIENTAS GRATUITAS (GPU) • OclHashcat, oclhashcat+, oclhashcat-lite • http://www.hashcat.net • IGHASHGPU • http://www.golubev.com/hashgpu.htm • BarsWF • http://3.14.by/en/md5 • Whitepixel • http://whitepixel.zorinaq.com/ • Hashkill • http://www.gat3way.eu/hashkill/index.php
  • 80. OCLHASHCAT+ Y OCLHASHCAT-LITE • Oclhashcat-lite • Centrado en ser el más rápido analizando un único hash • Menos algoritmos • No soporta distintos ataques, solo máscaras. • Optimizado y el más rápido para: NTLM, MD5, SHA1, SHA256 y descrypt • Oclhashcat-plus • Soporta más algoritmos (+30) • Distintos ataques: Straight, Combination, Brute-force, Hybrid dict + mask y Hybrid mask + dict • El más rápido para: md5crypt, phpass, mscash2 and WPA / WPA2 cracker
  • 81.
  • 82. HERRAMIENTAS COMERCIALES • ElcomSoft: http://www.elcomsoft.es/products.html • InsidePro: http://www.insidepro.com/eng/passwordspro.shtml • AccentSoft: http://www.accentsoft.com/ • Passware: http://www.lostpassword.com/hardware- acceleration.htm • Passcovery Suite: http://gpupasswordrecovery.net/ • Password Recovery Tools: http://passwordrecoverytools.com/ • OctoPass: http://lastbit.com/octopass.asp • HashSuite: http://hashsuite.openwall.net/performance
  • 83. ¿ AMD O NVIDIA ? • Nvidia: • CUDA históricamente estaba mejor soportado • Más popular para videojuegos • AMD: • Drivers históricamente problemáticos • Mucho más rápido • Más económicas
  • 84. 0 2000 4000 6000 8000 10000 12000 Radeon HD 6990 Radeon HD 5970 Radeon HD 7970 Radeon HD 6970 Radeon HD 7870 GeForce GTX690 Radeon HD 6930 Radeon HD 5850 Radeon HD 7850 GeForce GTX590 Radeon HD 5830 Radeon HD 5770 GeForce GTX680 GeForce GTX570 GeForce GTX480 Radeon HD 4890 Radeon HD 7750 GeForce GTX560 GeForce GTX660 Radeon HD 4770 Radeon HD 6570 Radeon HD 5670 GeForce GTX285 Radeon HD 4670 GeForce GTX260 GeForce GT640 GeForce GT430 Millones de contraseñas por segundo SHA1 MD5 PRUEBA GPU Comparativa de tarjetas gráficas con funciones de hash SHA1 y MD5
  • 85. PRUEBAS DE GPU Comparativa entre las distintas tarjetas gráficas para documentos Office y hashes WPA 0 20000 40000 60000 80000 100000120000140000160000180000 Radeon HD 6990 Radeon HD 5970 Radeon HD 7970 Radeon HD 6970 Radeon HD 7870 GeForce GTX690 Radeon HD 6930 Radeon HD 5850 Radeon HD 7850 GeForce GTX590 Radeon HD 5830 Radeon HD 5770 GeForce GTX680 GeForce GTX570 GeForce GTX480 Radeon HD 4890 Radeon HD 7750 GeForce GTX560 GeForce GTX660 Radeon HD 4770 Radeon HD 6570 Radeon HD 5670 GeForce GTX285 Radeon HD 4670 GeForce GTX260 GeForce GT640 GeForce GT430 Contraseñas por segundo WPA MS Office 2007
  • 86. CLUSTERS • Fabricantes: Cubix • 16 slots pci express • 28.500$ (ups!) http://www.cubixgpu.com/ca talog/buy-xpander-desktop
  • 89. VIRTUALCL • Montar cluster virtual para aplicaciones OpenCL (solo AMD) http://www.mosix.org /txt_vcl.html http://hashcat.net/wi ki/doku.php?id=vcl_cl uster_howto http://www.bindshell.nl/pub/Password_Cracking_HPC.pdf
  • 90. AMAZON • Ofrece Instancia con 2 Nvidia TESLA a 2$ la hora = 410M/s • Velocidad similar a 1 Geforce GT 240 (70$)  8 instancias durante una semana = 4 ATI 5790  4 ATI =36.000M/s  8 Instancias = 1.640M/s
  • 91. FPGAS • field-programmable gate array • No ejecutan código como una CPU/GPU, los chips ejecutan tareas específicas.
  • 92. SERVICIOS ONLINE • http://www.cmd5.org/ • https://www.cloudcracker.com/ • http://www.hash-database.net/ • http://www.onlinehashcrack.com/ • https://crackstation.net/ • http://leakdb.abusix.com/ • http://www.md5decrypter.co.uk/
  • 94. SERVICIOS ONLINE COMERCIALES • https://www.cloudcracker.com/ • http://www.onlinehashcrack.com/ • http://www.password-online.com/index.php • http://www.password-find.com/
  • 95. HERRAMIENTAS ONLINE • FindmyHash: Busca mediante consultas HTTP en varios sitios online un hash • Diferentes algoritmos soportados: MD4, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, RMD160, GOST, Whirlpool, LM, NTLM, MySQL, Cisco7, Juniper, LDAP_MD5, L DAP_SHA1 • https://code.google.com/p/findmyhash/ • BozoCrack: busca en Google un hash MD5 • https://github.com/juuso/BozoCrack
  • 96.
  • 99. POLÍTICAS DE CONTRASEÑAS Long. Min Dígitos Caráct.Esp. Ej válidos 8 No No 1234567ab 6 No No qwerty 6 No No qwerty 6 No No asdfgh 8 No No qwertyui 6 No No qwerty 6 No No qwerty1234
  • 101. CONCLUSIONES • El mero uso de usuario y contraseña para el acceso a información sensible se debería considerar un riesgo. • Para este propósito se debe usar otro factor de autenticación: token, OTP, biometría, etc. • Su uso extendido y la falta de adopción de otras medidas hace que sea muy difícil su eliminación. • Incluso una correcta política de contraseñas no soluciona el problema.
  • 102. CUESTIONARIO 1. ¿Una función de resumen o hash es reversible? A. Si B. No C. Depende del algoritmo empleado. 2. En un ataque por fuerza bruta: A. Se usa una lista de palabras y se prueban como contraseñas. B. Se crean contraseñas modificando una lista de palabras C. Se generan todas las posibles combinaciones dado un juego de carácteres. 3. Las tablas rainbow consisten en: A. Atacar con la aplicación Rainbow un servicio vulnerable B. Pre-computar todas las posibles combinaciones de un algoritmo para un juego de caracteres almacenan en ficheros el resultado. C. Usar un diccionario que ocupa mucho en el disco duro.
  • 103. CUESTIONARIO 4. El password guessing consiste en: A. Atacar un servicio probando usuarios y contraseñas en busca de un par válido. B. Adivinar una función de resumen en base a la información que se ha obtenido previamente. C. Usar la aplicación John The Ripper para obtener las contraseñas de un sistema Unix. 5. Para prevenir ataques de contraseñas ¿Cuál es la mejor opción? A. Se deben establecer políticas de contraseñas, por ejemplo: 8 caracteres, una mayúscula, una minúscula y un número. B. Las cuentas deben bloquearse si se detectan errores fallidos. C. Usar frases como contraseñas: “mi perro tiene una pata azul”

Notas del editor

  1. hydra -l sa -P /usr/share/john/password.lst 192.168.1.32 mssql
  2. medusa –h ip –u msfadmin –P password.lst –e ns –M ssh
  3. login name encrypted password date of last password change The date of the last password change, expressed as the number of days since Jan 1, 1970. The value 0 has a special meaning, which is that the user should change her pasword the next time she will log in the system. An empty field means that password aging features are disabled.minimum password age The minimum password age is the number of days the user will have to wait before she will be allowed to change her password again. An empty field and value 0 mean that there are no minimum password age.maximum password age The maximum password age is the number of days after which the user will have to change her password. After this number of days is elapsed, the password may still be valid. The user should be asked to change her password the next time she will log in. An empty field means that there are no maximum password age, no password warning period, and no password inactivity period (see below). If the maximum password age is lower than the minimum password age, the user cannot change her password.password warning period The number of days before a password is going to expire (see the maximum password age above) during which the user should be warned. An empty field and value 0 mean that there are no password warning period.password inactivity period The number of days after a password has expired (see the maximum password age above) during which the password should still be accepted (and the user should update her password during the next login). After expiration of the password and this expiration period is elapsed, no login is possible using the current user´s password. The user should contact her administrator. An empty field means that there are no enforcement of an inactivity period.account expiration date The date of expiration of the account, expressed as the number of days since Jan 1, 1970. Note that an account expiration differs from a password expiration. In case of an acount expiration, the user shall not be allowed to login. In case of a password expiration, the user is not allowed to login using her password. An empty field means that the account will never expire. The value 0 should not be used as it is interpreted as either an account with no expiration, or as an expiration on Jan 1, 1970.
  4. unshadow /etc/passwd /etc/shadow &gt;filejohn –wordlist=blah.txt fichero