Identificando el tipo de hash

43
HashCaT Crackeando Hash

description

Identificando el tipo de hash

Transcript of Identificando el tipo de hash

Page 1: Identificando el tipo de hash

HashCaT

Crackeando Hash

Page 2: Identificando el tipo de hash

Identificando el tipo de hash

Cuando hacemos una auditoría nos encontramos con un hash si no sabemos de donde vienepuede ser difícil tarea saber que tipo de hash es.

Si el hash lo extraemos de algún paquete de software conocido, es probable que ladocumentación de dicho software nos diga como almacena los passwords.

¿Que es un hash?

Un hash es una cadena de longitud determinada.

Identifica de forma unívoca a la entrada que lo generó.

Es computacionalmente imposible recuperar la información de entrada a partir de la cadenade salida.

Es computacionalmente muy difícil (prácticamente imposible) generar una misma salida a partirde dos entradas diferentes.

Page 3: Identificando el tipo de hash

HashCat

HashCaT es una aplicación el cual sirve para obtener contraseñas a partir

del hash de las mismas.

La herramienta alega ser la herramienta de recuperación de contraseñas

mas rápida del mundo. Actualmente existen muchas versiones de las

mismas, ya sean para Windows como para Linux.

Posee múltiples vectores de ataques el cual nos va a ser muy útil al

momento de extraer la contraseña de los hash. Además posee una versión

que utiliza la tarjeta gráfica (GPU) para las operaciones de cómputo, lo

que permite acelerar mucho el proceso de obtención de las contraseñas.

Page 4: Identificando el tipo de hash

HashCat

Vamos a utilizar la versión clásica. (versión para CPU). Como mencionetambién existen versiones para GPU las cuales son :

Oclhashcat-plus

Oclhashcat-lite

Descargar HahsCaT : http://hashcat.net/hashcat/

Page 5: Identificando el tipo de hash

HashCat

Nota : Para poder entender los modos de ataque de Hashcat, les

recomiendo y les comparto un pequeño manual.

Dicho manual fue hecho utilizando las distros BaCkTraCk. Usted puede

utilizarlo ya sea en Kali-Linux u otra distribución, claro esta con las mimas

referencias de dicho manual.

http://www.exploit-db.com/download_pdf/23922/

Page 6: Identificando el tipo de hash

HashCat

Modos de ataque :

Straight *

Combination *

Toggle-Case

Brute-Force

Permutation

Table-Lookup

* accept Rules

Page 7: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

MD5

md5($pass.$salt)

md5($salt.$pass)

md5(unicode($pass).$salt)

md5($salt.unicode($pass))

HMAC-MD5 (key = $pass)

HMAC-MD5 (key = $salt)

SHA1

sha1($pass.$salt)

sha1($salt.$pass)

Page 8: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

sha1(unicode($pass).$salt)

sha1($salt.unicode($pass))

HMAC-SHA1 (key = $pass)

HMAC-SHA1 (key = $salt)

MySQL

MySQL4.1/MySQL5

phpass, MD5(Wordpress), MD5(phpBB3)

md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5

Page 9: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

SHA-1(Django)

MD4

NTLM

Domain Cached Credentials, mscash

SHA256

sha256($pass.$salt)

sha256($salt.$pass)

HMAC-SHA256 (key = $pass)

HMAC-SHA256 (key = $salt)

md5apr1, MD5(APR), Apache MD5

SHA512

Page 10: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

WPA/WPA2

Double MD5

bcrypt, Blowfish(OpenBSD)

MD5(Sun)

md5(md5(md5($pass)))

md5(md5($salt).$pass)

md5($salt.md5($pass))

md5($pass.md5($salt))

md5($salt.$pass.$salt)

Page 11: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

md5(md5($pass).md5($salt))

md5($salt.md5($salt.$pass))

md5($salt.md5($pass.$salt))

md5($username.0.$pass)

md5(strtoupper(md5($pass)))

md5(sha1($pass))

sha1(sha1($pass))

sha1(sha1(sha1($pass)))

Page 12: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

sha1(md5($pass))

MD5(Chap)

SHA-3(Keccak)

Half MD5

Password Safe SHA-256

IKE-PSK MD5

IKE-PSK SHA1

NetNTLMv1-VANILLA / NetNTLMv1+ESS

NetNTLMv2

Cisco-IOS SHA256

AIX {smd5}

AIX {ssha256}

AIX {ssha512}

Page 13: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

AIX {ssha1}

Samsung Android Password/PIN

GOST, GOST R 34.11-94

Fortigate (FortiOS)

OS X v10.8

GRUB 2

IPMI2 RAKP HMAC-SHA1

Page 14: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

Plaintext

Joomla

osCommerce, xt:Commerce

nsldap, SHA-1(Base64), Netscape LDAP SHA

nsldaps, SSHA-1(Base64), Netscape LDAP SSHA

Oracle 11g

SMF > v1.1

OS X v10.4, v10.5, v10.6

MSSQL(2000)

Page 15: Identificando el tipo de hash

HashCat

Algoritmos a desencriptar. :

MSSQL(2005)

EPiServer 6.x

OS X v10.7

MSSQL 2012

vBulletin < v3.8.5

vBulletin > v3.8.5

IPB2+, MyBB1.2+

WebEdition CMS

Page 16: Identificando el tipo de hash

Identificando el tipo de hash

Cuando hacemos una auditoría nos encontramos con un hash si no sabemos de donde vienepuede ser difícil tarea saber que tipo de hash es.

Si el hash lo extraemos de algún paquete de software conocido, es probable que ladocumentación de dicho software nos diga como almacena los passwords.

¿Que es un hash?

Un hash es una cadena de longitud determinada.

Identifica de forma unívoca a la entrada que lo generó.

Es computacionalmente imposible recuperar la información de entrada a partir de la cadenade salida.

Es computacionalmente muy difícil (prácticamente imposible) generar una misma salida a partirde dos entradas diferentes.

Page 17: Identificando el tipo de hash

Identificando el tipo de hash

Vamos a ver dos herramientas que a pasarle un hash nos identificarán de

que tipo es:

La primera de las dos herramientas es hash-identifier, descargamos el

contenido con subversión y ejecutamos el script (para Windows):

El cual lo podemos descargar del siguiente enlace:

http://code.google.com/p/hash-identifier/downloads/list

Page 18: Identificando el tipo de hash

Identificando el tipo de hash

Page 20: Identificando el tipo de hash

Identificando el tipo de hash

Page 21: Identificando el tipo de hash

Identificando el tipo de hash

Page 22: Identificando el tipo de hash

Identificando el tipo de hash

En mi caso voy a utilizar la versión GUI de Hashcat para windows.

Descargar - HashCaT - Gui : http://hashcat.net/hashcat-gui/

Bueno procedemos a hacer la descarga y en mi caso ejecutar la versión

hashcat-gui64.

Page 23: Identificando el tipo de hash

Identificando el tipo de hash

Page 24: Identificando el tipo de hash

Identificando el tipo de hash

Page 25: Identificando el tipo de hash

Identificando el tipo de hash

Page 27: Identificando el tipo de hash

Identificando el tipo de hash

Page 28: Identificando el tipo de hash

Identificando el tipo de hash

Pues comencemos. Primero voy a crear un archivo .txt , en el cual voy

almacenar los hash que deseo crackear, como muestro a continuación

Page 29: Identificando el tipo de hash

Identificando el tipo de hash

Page 30: Identificando el tipo de hash

Identificando el tipo de hash

Nota 1: Si usted desconoce que tipo de Hash que posee, tiene la opción

de poder utilizar un Script que le permita resolver el problema. El nombre

del Script escrito en Python es Hash_ID_v1.1.

Descargar Hash_ID_v1.1 :

https://code.google.com/p/hash-

identifier/downloads/detail?name=Hash_ID_v1.1.py

Page 31: Identificando el tipo de hash

Identificando el tipo de hash

Nota 2: Bueno si al dar click en Start en el HashCat nos aparece el siguiente

error

Page 32: Identificando el tipo de hash

Identificando el tipo de hash

Page 33: Identificando el tipo de hash

Identificando el tipo de hash

Si les muestra error eso es porque la versión que esta utilizando es antigua.

Pero vamos a pensar un poco. La aplicación para verificar que ya paso su

fecha de caducidad, debería por lógica compararse con otra fecha para

poder decidir si ejecutarse o no.

En este caso la fecha de la aplicación de compararía con la fecha de

nuestra PC. Así que para que se pueda ejecutar correctamente la

aplicación solo tendríamos que cambiar la fecha de nuestra PC, claro esta

antes de la fecha de caducidad de la aplicación.

Bueno dispondré a cambiar la fecha de mi PC .

La fecha que he elegido es Marzo del 2012.

Page 34: Identificando el tipo de hash

Identificando el tipo de hash

Page 35: Identificando el tipo de hash

Identificando el tipo de hash

Una vez terminado el cambio de horario, procedemos una vez mas a darle

click en Start

Nota 3

Cuando ejecute el HashCaT, primero me salió un texto de licencia por

parte del autor Atom.

Si a usted también le ha salido un texto refiriéndose a la licencia de la

aplicación, usted solo deberá aceptar los las condiciones que el autor

plantea ( YES ), para así poder utilizar la herramienta con toda libertad.

y esperar a ver que nos responde la aplicación HashCaT.

Page 36: Identificando el tipo de hash

Identificando el tipo de hash

Ahora es el turno de utilizar HashCaT para poder descifrarlos.

(Leer el manual para entender las opciones que voy a utilizar en la versión

Hashcat - Gui).

En mi caso utilizo el archivo creado llamado test.txt (que contiene los MD5

creados u obtenidos), además utilizamos nuestro diccionario de datos

llamado pass.txt como se denota a continuación

Page 37: Identificando el tipo de hash

Identificando el tipo de hash

Page 38: Identificando el tipo de hash

Identificando el tipo de hash

Page 39: Identificando el tipo de hash

Identificando el tipo de hash

Page 40: Identificando el tipo de hash

Identificando el tipo de hash

Una vez que estos dos archivos están colocados en el Hash Cat le damos

run y nos aparecerá lo siguiente

Page 41: Identificando el tipo de hash

Identificando el tipo de hash

Page 42: Identificando el tipo de hash

Identificando el tipo de hash

Abrimos nuestro archivo generado el cual nombramos testcrackeado.txt

Page 43: Identificando el tipo de hash

Identificando el tipo de hash