alejandro ramos securitybydefault - it-docs · geforce 8600 gt 92 28 - geforce 9600 gt 253 76 -...

48
Know your ****** 4dv4nc3d P@55w0rd$ (r4c|<1ng Alejandro Ramos SecurityByDefault.com

Upload: haque

Post on 28-Mar-2019

236 views

Category:

Documents


0 download

TRANSCRIPT

Know your ******

4dv4nc3d P@55w0rd$ (r4c|<1ng

Alejandro Ramos SecurityByDefault.com

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

Consejos de Seguridad

Si, si, pone «caradehuevo»

¿Qué esta ocurriendo?

¡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"

Ejemplo

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

Ojo con las estadísticas….

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%)

Gawker – NO-Latin

http://seclists.org/bugtraq/2010/Feb/5

Linkedin

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

¿Cómo?

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)

Oclhashcat

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

Facebook

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]"

Ejemplo JtR / Oclhashcat+

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

Fingerprint

Hardware

¿ 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

GPGPU – Velocidades (MD5)

Basado en: http://golubev.com/gpuest.htm

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 €

En productos comerciales

http://www.elcomsoft.com/aopr.html

Hardware - d3ad0ne

Hardware - d3ad0ne

Dummy DVI

75 Ω

C1-C5 (analog red /

analog ground)

ó C2-C5

ó C3-C5

Dummy VGA

~50-150 Ω

C3-C8

C2-C7

C1-C6

BarsWF

IGHASHGPU

Clusters

Fabricantes: Cubix

16 slots pci express

28.500$ (ups!)

PS3

Condor Cluster

1760 consolas

Distribuido

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

Gracias.

SecurityByDefault.com

Alejandro Ramos / @aramosf SecurityByDefault.com