Mecanismos de autenticación-identificación. Vulneración y cracking de contraseñas
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 6,736 views

Material de Alejandro Ramos para el Curso Online de Especialización en Seguridad Informática para la Ciberdefensa: ...

Material de Alejandro Ramos para el Curso Online de Especialización en Seguridad Informática para la Ciberdefensa:
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

http://www.criptored.upm.es/formacion/index.html

Statistics

Views

Total Views
6,736
Views on SlideShare
2,274
Embed Views
4,462

Actions

Likes
5
Downloads
89
Comments
0

23 Embeds 4,462

http://www.securitybydefault.com 3068
http://cloud.feedly.com 954
http://buhosec.com 261
http://reader.aol.com 31
http://feeds.feedburner.com 26
http://www.feedspot.com 23
http://feedreader.com 16
http://digg.com 15
http://127.0.0.1 15
http://feedproxy.google.com 14
http://summary 10
http://www.newsblur.com 6
http://inoreader.com 5
http://feedly.com 4
http://webcache.googleusercontent.com 3
http://5399811056563385935_4806c368b6fac2ba76886d4a22d19b5a57210c77.blogspot.com 3
http://www.fuertes.org.es 2
http://newsblur.com 1
http://feeds2.feedburner.com 1
http://translate.googleusercontent.com 1
http://plus.url.google.com 1
http://www.mongui.es 1
https://www.google.es 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • hydra -l sa -P /usr/share/john/password.lst 192.168.1.32 mssql
  • medusa –h ip –u msfadmin –P password.lst –e ns –M ssh
  • 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.
  • unshadow /etc/passwd /etc/shadow >filejohn –wordlist=blah.txt fichero

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

  • 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")); View slide
  • ¿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 View slide
  • 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”