Identificando el tipo de hash
description
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
La herramienta es hash-identifier, descargamos el contenido con
subversión y ejecutamos el script (para Linux en mi caso en BackTrack R5):
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
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
Bueno una vez llegado a este punto, es necesario tener Worldlists para
poder llevar a acabo el ataque.
Pueden encontrar diccionarios en
Diccionarios
http://hashcrack.blogspot.com/p/wordlist-downloads_29.html
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