Identificando el tipo de hash

rainbowtablesSi eres algo novato en los CTF’s cuando tocan las pruebas relacionadas con la criptografía, te puedes volver un poco loco.

Es entonces tener la suerte de contar en tu equipo con alguien como kachakil que es un máster en esto o contar también con alguien como Death_master facilitará la tarea que vengo a explicar a continuación.

Como comentaba en un CTF ye una auditoría cuando nos encontramos con un hash si no sabemos de donde viene puede 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 la documentación de dicho software nos diga como almacena los passwords.

¿Que es un hash?

Me voy a remitir a las palabras de Death_master en el foro de el Hacker_NET

– 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 cadena de salida.
– Es computacionalmente muy difícil (prácticamente imposible) generar una misma salida a partir de dos entradas diferentes.

Si queréis seguir dos hilos sobre el tema:

[+] http://foro.elhacker.net/hacking_basico/como_identificar_un_hash-t49123.0.html

[+] https://foro.elhacker.net/hacking_basico/que_es_un_hash_y_como_se_obtiene-t48486.0.html

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 subversion y ejecutamos el script:


darkmac:Hash_ID_v1.1 marc$ python Hash_ID.py

#########################################################################

#     __  __                     __           ______    _____           #

#    /\ \/\ \                   /\ \         /\__  _\  /\  _ `\         #

#    \ \ \_\ \     __      ____ \ \ \___     \/_/\ \/  \ \ \/\ \        #

#     \ \  _  \  /'__`\   / ,__\ \ \  _ `\      \ \ \   \ \ \ \ \       #

#      \ \ \ \ \/\ \_\ \_/\__, `\ \ \ \ \ \      \_\ \__ \ \ \_\ \      #

#       \ \_\ \_\ \___ \_\/\____/  \ \_\ \_\     /\_____\ \ \____/      #

#        \/_/\/_/\/__/\/_/\/___/    \/_/\/_/     \/_____/  \/___/  v1.1 #

#                                                             By Zion3R #

#                                                    www.Blackploit.com #

#                                                   [email protected] #

#########################################################################

 

-------------------------------------------------------------------------

HASH: 3b1015ccf38fc2a32c18674c166fa447

 

Possible Hashs:

[+]  MD5

[+]  Domain Cached Credentials - MD4(MD4(($pass)).(strtolower($username)))

 

Least Possible Hashs:

[+]  RAdmin v2.x

[+]  NTLM

[+]  MD4

[+]  MD2

[+]  MD5(HMAC)

[+]  MD4(HMAC)

[+]  MD2(HMAC)

[+]  MD5(HMAC(WordPress))

[+]  Haval-128

[+]  Haval-128(HMAC)

[+]  RipeMD-128

[+]  RipeMD-128(HMAC)

[+]  SNEFRU-128

[+]  SNEFRU-128(HMAC)

[+]  Tiger-128

[+]  Tiger-128(HMAC)

[+]  md5($pass.$salt)

[+]  md5($salt.$pass)

[+]  md5($salt.$pass.$salt)

[+]  md5($salt.$pass.$username)

[+]  md5($salt.md5($pass))

[+]  md5($salt.md5($pass))

[+]  md5($salt.md5($pass.$salt))

[+]  md5($salt.md5($pass.$salt))

[+]  md5($salt.md5($salt.$pass))

[+]  md5($salt.md5(md5($pass).$salt))

[+]  md5($username.0.$pass)

[+]  md5($username.LF.$pass)

[+]  md5($username.md5($pass).$salt)

[+]  md5(md5($pass))

[+]  md5(md5($pass).$salt)

[+]  md5(md5($pass).md5($salt))

[+]  md5(md5($salt).$pass)

[+]  md5(md5($salt).md5($pass))

[+]  md5(md5($username.$pass).$salt)

[+]  md5(md5(md5($pass)))

[+]  md5(md5(md5(md5($pass))))

[+]  md5(md5(md5(md5(md5($pass)))))

[+]  md5(sha1($pass))

[+]  md5(sha1(md5($pass)))

[+]  md5(sha1(md5(sha1($pass))))

[+]  md5(strtoupper(md5($pass)))

 

-------------------------------------------------------------------------

HASH:

Hemos podido identificar el hash.

Si quiseramos hacer esto en masa, tendríamos que scriptarlo de alguna manera. Es por eso que existen herramientas que nos ayudarán también como Hash Identifier.


darkmac:pentest marc$ python HashTag.py -h

usage: HashTag.py {-sh hash |-f file |-d directory} [-o output_filename] [-hc] [-n]

 

optional arguments:

-h, --help            show this help message and exit

-sh SINGLEHASH, --singleHash SINGLEHASH

Identify a single hash

-f FILE, --file FILE  Parse a single file for hashes and identify them

-d DIRECTORY, --directory DIRECTORY

Parse, identify, and categorize hashes within a

directory and all subdirectories

-o OUTPUT, --output OUTPUT

Filename to output full list of all identified hashes.

Default is ./HashTag/HashTag_Output_File.txt

-hc, --hashcatOutput  Output a separate file for each hash type based on

hashcat modes

-n, --notFound        --file:Include unidentifiable hashes in the output

file.

Las opciones para usarla, están claras. Hacemos un ejemplo con ella.


darkmac:pentest marc$ python HashTag.py  -sh 7026360f1826f8bc

 

Hash: 7026360f1826f8bc

 

[*] MySQL, MySQL323

[*] Oracle 7-10g, DES(Oracle) - Hashcat Mode 3100

[*] CRC-64

[*] SAPB

[*] substr(md5($pass),0,16)

[*] substr(md5($pass),16,16)

[*] substr(md5($pass),8,16)

darkmac:pentest marc$

Una vez, hemos identificado el hash. Podríamos crackearlo usando una tabla rainbow o podemos buscarlo en las miles de bases de datos que hay online.


darkmac:findmyhash-read-only marc$ python findmyhash.py MD5 -h  3b1015ccf38fc2a32c18674c166fa447

 

Execution error:

 

The Python library libxml2 is not installed in your system.

Because of that, some plugins aren't going to work correctly.

Please, install it before use this application.

 

 

 

Cracking hash: 3b1015ccf38fc2a32c18674c166fa447

 

Analyzing with cmd5 (http://www.cmd5.org)...

... hash not found in cmd5

 

Analyzing with bigtrapeze (http://www.bigtrapeze.com)...

... hash not found in bigtrapeze

 

Analyzing with hashchecker (http://www.hashchecker.com)...

... hash not found in hashchecker

 

Analyzing with md5hashcracker (http://md5hashcracker.appspot.com)...

... hash not found in md5hashcracker

 

Analyzing with passcracking (http://passcracking.com)...

... hash not found in passcracking

 

Analyzing with askcheck (http://askcheck.com)...

... hash not found in askcheck

 

Analyzing with fox21 (http://cracker.fox21.at)...

INFO: You need libxml2 to use this plugin.

... hash not found in fox21

 

Analyzing with nicenamecrew (http://crackfoo.nicenamecrew.com)...

... hash not found in nicenamecrew

 

Analyzing with joomlaaa (http://joomlaaa.com)...

... hash not found in joomlaaa

 

Analyzing with md5-lookup (http://md5-lookup.com)...

... hash not found in md5-lookup

 

Analyzing with md5.com.cn (http://md5.com.cn)...

... hash not found in md5.com.cn

 

Analyzing with digitalsun.pl (http://md5.digitalsun.pl)...

... hash not found in digitalsun.pl

 

Analyzing with drasen.net (http://md5.drasen.net)...

... hash not found in drasen.net

 

Analyzing with myinfosec (http://md5.myinfosec.net)...

... hash not found in myinfosec

 

Analyzing with md5.net (http://md5.net)...

... hash not found in md5.net

 

Analyzing with noisette.ch (http://md5.noisette.ch)...

... hash not found in noisette.ch

 

Analyzing with md5hood (http://md5hood.com)...

... hash not found in md5hood

 

Analyzing with stringfunction (http://www.stringfunction.com)...

... hash not found in stringfunction

 

Analyzing with 99k.org (http://xanadrel.99k.org)...

... hash not found in 99k.org

 

Analyzing with sans (http://isc.sans.edu)...

... hash not found in sans

 

Analyzing with bokehman (http://bokehman.com)...

... hash not found in bokehman

 

Analyzing with goog.li (http://goog.li)...

... hash not found in goog.li

 

Analyzing with schwett (http://schwett.com)...

... hash not found in schwett

 

Analyzing with netmd5crack (http://www.netmd5crack.com)...

... hash not found in netmd5crack

 

Analyzing with md5-cracker (http://www.md5-cracker.tk)...

INFO: You need libxml2 to use this plugin.

... hash not found in md5-cracker

 

Analyzing with benramsey (http://tools.benramsey.com)...

... hash not found in benramsey

 

Analyzing with gromweb (http://md5.gromweb.com)...

... hash not found in gromweb

 

Analyzing with hashcracking (http://md5.hashcracking.com)...

... hash not found in hashcracking

 

Analyzing with hashcracking (http://victorov.su)...

... hash not found in hashcracking

 

Analyzing with thekaine (http://md5.thekaine.de)...

... hash not found in thekaine

 

Analyzing with tmto (http://www.tmto.org)...

... hash not found in tmto

 

Analyzing with rednoize (http://md5.rednoize.com)...

... hash not found in rednoize

 

Analyzing with md5-db (http://md5-db.de)...

... hash not found in md5-db

 

Analyzing with my-addr (http://md5.my-addr.com)...

... hash not found in my-addr

 

Analyzing with md5pass (http://md5pass.info)...

... hash not found in md5pass

 

Analyzing with md5decryption (http://md5decryption.com)...

... hash not found in md5decryption

 

Analyzing with md5crack (http://md5crack.com)...

... hash not found in md5crack

 

Analyzing with md5online (http://md5online.net)...

... hash not found in md5online

 

Analyzing with md5-decrypter (http://md5-decrypter.com)...

... hash not found in md5-decrypter

 

Analyzing with authsecu (http://www.authsecu.com)...

... hash not found in authsecu

 

Analyzing with hashcrack (http://hashcrack.com)...

... hash not found in hashcrack

 

Analyzing with c0llision (http://www.c0llision.net)...

... hash not found in c0llision

 

 

The following hashes were cracked:

----------------------------------

 

NO HASH WAS CRACKED.

Hemos visto dos herramientas con las que podremos identificar los hashes y otra herramienta para poder crackear el hash en el caso de que sea necesario.


Si te ha gustado el post, compartelo y ayudanos a crecer.

Unete a nuestra Fanpage Siguenos en Twitter

Autor: Seifreed

Formado en un equipo de lucha contra el fraude. He trabajado implementando la protección y prevención del fraude en varios clientes dentro del sector bancario nacional e internacioal. Mi trabajo consiste en encontrar soluciones a los problemas actuales y futuros de las entidades financieras respecto al código malicioso y el fraude. Especialidades como el análisis de malware, análisis forense, ingeniería inversa o tareas de hacking ético, forman parte de mis tareas diarias. Soy ponente ien eventos nacionales (No cON Name, Owasp, Navaja Negra) e internacionales (DraonJAR CON - Colombia). Soy profesor asociado en La Salle enseñando el curso MPWAR (Master in High Performance Web Programming) y el máster de ciberseguridad de La Salle (MCS. Master in Cybersecurity) Miembro de asociaciones y grupos de research como la HoneyNet Project, Owasp, SySsec etc.. También soy el organizador de las conferencias Hack&Beers en Barcelona

Compartir este Artículo
  • Ronald

    ME GUSTA MUCHO EL TRABAJO REALIZADO EN ESTA PAGINA

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES