sábado, 9 de noviembre de 2013

HashCaT - Crackeando Hash.




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


Para este pequeño post voy a utilizar la versión clásica. (versión para CPU). Como mencione también existen versiones para GPU las cuales son :


  1. Oclhashcat-plus
  2. Oclhashcat-lite


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


Nota : Para poder entender los modos de ataque de Hashcat, les recomiendo y les comparto un pequeño manual que nuestros amigos de MEXICANH - TEAM han hecho este presente año. Dicho manual fue hecho utilizando el O.S BaCkTraCk. Usted puede utilizarlo ya sea en Kali-Linux u otra distribución, claro esta con las mimas referencias de dicho manual.


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




Modos de ataque : 

  • Straight *
  • Combination *
  • Toggle-Case
  • Brute-Force
  • Permutation
  • Table-Lookup

* accept Rules

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)
  • 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
  • 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
  • sha512($pass.$salt)
  • sha512($salt.$pass)
  • HMAC-SHA512 (key = $pass)
  • HMAC-SHA512 (key = $salt)
  • SHA-512(Unix)
  • Cisco-PIX MD5
  • 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)
  • 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)))
  • 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}
  • AIX {ssha1}
  • Samsung Android Password/PIN
  • GOST, GOST R 34.11-94
  • Fortigate (FortiOS)
  • OS X v10.8
  • GRUB 2
  • IPMI2 RAKP HMAC-SHA1
  • 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)
  • MSSQL(2005)
  • EPiServer 6.x
  • OS X v10.7
  • MSSQL 2012
  • vBulletin < v3.8.5
  • vBulletin > v3.8.5
  • IPB2+, MyBB1.2+
  • WebEdition CMS

Bueno en creo que sería innecesario hacer una prueba ya sea en el entorno Kali - Linux (Hecho en el manual ). 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.





Bueno una vez llegado a este punto, es necesario tener Worldlists para poder llevar a acabo el ataque.


Diccionarios :  http://hashcrack.blogspot.com/p/wordlist-downloads_29.html


En mi caso solo voy a utilizar mi poderoso diccionario Rockyou. Pues comenzemos. Primero voy a crear un archivo .txt , en el cual voy almacenar los hash que deseo crackear.




Nota : 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


Procedemos a descargarlo y ejecutarlo. En mi caso lo voy hacer desde windows, ya que tengo el paquete de Python instalado. Una vez ejecutado el Script, este nos va a pedir ingresar el Hash que deseamos identificar, pues accedemos a la petición y esperamos a la identificación.




Bueno nuestro hash ha sido identificado y pertenece al tipo md5($pass.$salt) - Joomla. Ahora es el turno de utilizar  HashCaT para poder descifrarlos. (Leer el manual para entender las opciones que voy a utilizar en la version Hashcat - Gui).




Bueno solo nos faltaría dar click en Start y listo.




Nota : 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.




Una vez terminado el cambio de horario, procedemos una vez mas a darle click en Start y esperar a ver que nos responde la aplicación HashCaT.


Nota : 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.




Podemos observar que nos ha funcionado a la perfección. Por ultimo vamos a abrir nuestro archivo en el cual pedimos que se escribiera las contraseñas ya en texto libre.





Bueno creo que eso es todo por el momento. Espero que este post les ayude a descifrar esas contraseñas tan robustas que han tenido guardado por mucho tiempo. Me despido y será hasta la próxima. Nos vemos.