Identificando el tipo de hash

Post on 05-Jul-2015

190 views 0 download

description

Identificando el tipo de hash

Transcript of Identificando el tipo de hash

HashCaT

Crackeando 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.

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.

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/

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/

HashCat

Modos de ataque :

Straight *

Combination *

Toggle-Case

Brute-Force

Permutation

Table-Lookup

* accept Rules

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)

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

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

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)

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

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}

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

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)

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

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.

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

Identificando el tipo de hash

Identificando el tipo de hash

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.

Identificando el tipo de hash

Identificando el tipo de hash

Identificando el tipo de hash

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

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

Identificando el tipo de hash

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

error

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.

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.

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

Identificando el tipo de hash

Identificando el tipo de hash

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

Identificando el tipo de hash

Identificando el tipo de hash

Abrimos nuestro archivo generado el cual nombramos testcrackeado.txt

Identificando el tipo de hash