Icono cerrar menu

Blog

18 de junio de 2020

Herramienta: Hashcat 6.0.0 descifrando contraseñas


Entrando a la sección de recuperación de contraseñas o crackeo de contraseñas encriptadas nos encontramos con la herramienta predominante en esa área Hashcat. Esta herramienta permite recuperar la contraseña en base a un hash almacenado tomando en cuenta que estas no se almacenan en texto plano. Dentro de este post revisaremos la instalación y el funcionamiento de la nueva versión de Hashcat v6.0.0.

Instalación de Hascat v6.0.0

Para la instalación de Hashcat puedes acceder a el sito oficial y descargar los archivos binarios. A continuación veremos la instalación.

 
 
---->Descargar Binarios
root@tpx# wget https://hashcat.net/files/hashcat-6.0.0.7z

--2020-06-18 12:08:53--  https://hashcat.net/files/hashcat-6.0.0.7z
Resolving hashcat.net (hashcat.net)... 1.1.1.1, 2001:::::aaaa
Connecting to hashcat.net (hashcat.net)|1.1.1.1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5960507 (5.7M) [application/x-7z-compressed]
Saving to: ‘hashcat-6.0.0.7z.1’
 
hashcat-6.0.0.7z.1         100%[======================================================>]   5.68M  1.70MB/s    in 3.5s    
 
2020-06-18 12:08:58 (1.64 MB/s) - ‘hashcat-6.0.0.7z.1’ saved [5960507/5960507]
 
---->Crear directorio
root@tpx# mkdir /opt/hashcat6
 
---->Mover 7zip
root@tpx# mv hashcat-6.0.0.7z  /opt/hashcat6/
 
---->Descomprimir 
root@tpx# 7za e hashcat-6.0.0.7z 
 
---->Ejecutar hashcat
root@tpx# ./hashcat.bin -V
v6.0.0
 

Una vez acabada la instalación ya podremos utilizar nuestra herramienta invocando el comando hashcat6. Dentro de todas las opciones  que nos incluye hashcat nos encontramos con las versiones más usadas y cortas para el uso de este.

 
hashcat (v6.0.0) starting...

Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...

- [ Options ] -

 Options Short / Long           | Type | Description                                          | Example
================================+======+======================================================+=======================
 -m, --hash-type                | Num  | Hash-type, see references below                      | -m 1000
 -a, --attack-mode              | Num  | Attack-mode, see references below                    | -a 3
 -V, --version                  |      | Print version                                        |
 -h, --help                     |      | Print help                                           |
     --quiet                    |      | Suppress output                                      |

Podemos observar la estructura del comando  que requiere options hashfile mask|wordfiles|directories con esto nos da una sintaxis básica para el uso. Dentro de esto encontramos la opción -m que es la mas importante ya que esta refiere a el tipo de hash y -a que hace referencia al tipo de ataque.

Realizaremos un leve ejemplo de como se crackea una contraseña de un sistema linux.

Ejecutamos el comando tail /etc/shadow:

colord:*:18418:0:99999:7:::
geoclue:*:18418:0:99999:7:::
lightdm:*:18418:0:99999:7:::
king-phisher:*:18418:0:99999:7:::
dradis:*:18418:0:99999:7:::
beef-xss:*:18418:0:99999:7:::
systemd-coredump:!!:18418::::::
debian-tor:*:18421:0:99999:7:::
tpx:$6$pEY9z4wOvOMDRgK2$2igHtRe5A/WL1381QmsY.6d3sli2bn4K9iQEeTvGrUYApZAaSgwDJT5drxOp0xAI8LPfCV7ZN0bP/eN2wREqI/:18431:0:99999:7:::

Verificando  en el archivo  /etc/login.defs verificamos que el método de  encriptado es el SHA251, en caso  de que  no se tenga conocimiento del tipo de hash se puede utilizar la herramienta hashid <id> este comando te idetntificará los posibles algoritmos usados. Después de tener identificado el algoritmo de nuestro hash, procedemos a buscar el id en hashcat usando el comando hashcat –help| grep SHA251. Una vez contemos on el id y el achivo con nuestros hash a descifrar procedemos a ejecutar el comando para empezar a crackear y conseguir las contraseñas.

Iniciando crackeo

 
 
root@tpx# hashcat -m 1800 -a 0 -o cracked.txt hash.lst /usr/share/sqlmap/data/txt/smalldict.txt
hashcat (v5.1.0) starting...

OpenCL Platform #1: The pocl project
====================================
* Device #1: pthread-Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz, 2048/4488 MB allocatable, 2MCU

Hashfile 'hash.lst' on line 1 (colord:*:18418:0:99999:7:::): Token length exception
Hashfile 'hash.lst' on line 2 (geoclue:*:18418:0:99999:7:::): Token length exception
Hashfile 'hash.lst' on line 3 (lightdm:*:18418:0:99999:7:::): Token length exception
Hashfile 'hash.lst' on line 4 (king-phisher:*:18418:0:99999:7:::): Token length exception
Hashfile 'hash.lst' on line 5 (dradis:*:18418:0:99999:7:::): Token length exception
Hashfile 'hash.lst' on line 6 (beef-xss:*:18418:0:99999:7:::): Token length exception
Hashfile 'hash.lst' on line 7 (systemd-coredump:!!:18418::::::): Token length exception
Hashfile 'hash.lst' on line 8 (debian-tor:*:18421:0:99999:7:::): Token length exception
Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Applicable optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt
* Uses-64-Bit

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256

ATTENTION! Pure (unoptimized) OpenCL kernels selected.
This enables cracking passwords and salts > length 32 but for the price of drastically reduced performance.
If you want to switch to optimized OpenCL kernels, append -O to your commandline.

Watchdog: Hardware monitoring interface not found on your system.
Watchdog: Temperature abort trigger disabled.

* Device #1: build_opts '-cl-std=CL1.2 -I OpenCL -I /usr/share/hashcat/OpenCL -D LOCAL_MEM_TYPE=2 -D VENDOR_ID=64 -D CUDA_ARCH=0 -D AMD_ROCM=0 -D VECT_SIZE=4 -D DEVICE_TYPE=2 -D DGST_R0=0 -D DGST_R1=1 -D DGST_R2=2 -D DGST_R3=3 -D DGST_ELEM=16 -D KERN_TYPE=1800 -D _unroll'                                                                                                                                                                                                      
* Device #1: Kernel m01800-pure.f12c7f77.kernel not found in cache! Building may take a while...
* Device #1: Kernel amp_a0.f6324eeb.kernel not found in cache! Building may take a while...
Dictionary cache built:
* Filename..: /usr/share/sqlmap/data/txt/smalldict.txt
* Passwords.: 4989
* Bytes.....: 36149
* Keyspace..: 4989
* Runtime...: 0 secs

Approaching final keyspace - workload adjusted.  

                                                 
Session..........: hashcat
Status...........: Cracked
Hash.Type........: sha512crypt $6$, SHA512 (Unix)
Hash.Target......: $6$pEY9z4wOvOMDRgK2$2igHtRe5A/WL1381QmsY.6d3sli2bn4...wREqI/
Time.Started.....: Thu Jun 18 19:41:49 2020 (6 secs)
Time.Estimated...: Thu Jun 18 19:41:55 2020 (0 secs)
Guess.Base.......: File (/usr/share/sqlmap/data/txt/smalldict.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:      911 H/s (5.30ms) @ Accel:256 Loops:64 Thr:1 Vec:4
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 4989/4989 (100.00%)
Rejected.........: 0/4989 (0.00%)
Restore.Point....: 4608/4989 (92.36%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:4992-5000
Candidates.#1....: trojan -> zzzzzz

Started: Thu Jun 18 19:41:37 2020
Stopped: Thu Jun 18 19:41:56 2020

El valor de 1800 hace referencia al tipo de hash, el  -o cracked.txt nos permitirá guardar los resultado al terminar el crackeo en caso de tener una lista. el archivo hash.lst es nuestro archivo que creamos donde se encuentran almacenados los hash y por ultimo nuestro wordlist /usr/share/sqlmap/data/txt/smalldict.txt  este puede variar, puede que el salt para decodificar este hash no se encuentre en el primer diccionariopara lo cual en el sistema operativo kali podemos utilizar el comando locate wordlist para encontrar todos los diccionarios para decodificar con éxito nuestro hash y recuperar la contraseña.

Verificamos nuestro resultado:

 
root@tpx# cat cracked.txt 
$6$pEY9z4wOvOMDRgK2$2igHtRe5A/WL1381QmsY.6d3sli2bn4K9iQEeTvGrUYApZAaSgwDJT5drxOp0xAI8LPfCV7ZN0bP/eN2wREqI/:wally

 

 

 

 

 

 

tpx Security.
Editorial Staff.