Issue with same inputs. One worked, the other not
#1
Hello,

I've been using hashcat on a md5 Cisco type and I ran the following issue.


First time I used :
hashcat -m 500 -a 3 -1 ?l?d?u '*****' ?1?1?1?1
And it ran exhausted. Then as  I wanted to compare speed, I've tried with the optimized version before trying longer masks :

hashcat -O -m 500 -a 3 -1 ?l?d?u '*****' ?1?1?1?1

The second was indeed way more fast, but what happened is that it cracked it on that second attempt. As the -O only optimizes the work, how could the first one not cracked it while the second did ? I really didn't get it.

Thank you for your opinion on this matter.

Note : As this was part of a challenge, I've changed some information with ****

First :

Session..........: hashcat                                
Status...........: Exhausted
Hash.Type........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
Hash.Target......: *******
Time.Started.....: Sat Jul 21 23:51:31 2018 (4 mins, 37 secs)
Time.Estimated...: Sat Jul 21 23:56:08 2018 (0 secs)
Guess.Mask.......: ?1?1?1?1_*** [11]
Guess.Charset....: -1 ?l?d?u, -2 Undefined, -3 Undefined, -4 Undefined
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#2.....:    37642 H/s (2.59ms)
Speed.Dev.#3.....:    11951 H/s (2.05ms)
Speed.Dev.#*.....:    49593 H/s
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 14776336/14776336 (100.00%)
Rejected.........: 0/14776336 (0.00%)
Restore.Point....: 236456/238328 (99.21%)
Candidates.#2....: XB7Q_*** -> XQzF_***
Candidates.#3....: XNBw_*** -> XC9Z_***

Second :

****:*****               
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Type........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
Hash.Target......: ******
Time.Started.....: Sat Jul 21 23:57:25 2018 (33 secs)
Time.Estimated...: Sat Jul 21 23:57:58 2018 (0 secs)
Guess.Mask.......: ?1?1?1?1_*** [11]
Guess.Charset....: -1 ?l?d?u, -2 Undefined, -3 Undefined, -4 Undefined
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#2.....:    85297 H/s (11.17ms)
Speed.Dev.#3.....:    85752 H/s (5.38ms)
Speed.Dev.#*.....:   171.0 kH/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 5603328/14776336 (37.92%)
Rejected.........: 0/5603328 (0.00%)
Restore.Point....: 73728/238328 (30.94%)
Candidates.#2....: 66rj_*** -> 6w5e_***
Candidates.#3....: mOsj_*** -> mIt4_***
#2
This is a typical error which occours if there's an OpenCL runtime problem, not a hashcat problem.

The only way to deal with it is to create a workaround. To find the workaround, we need to know the exacty steps to reproduce the problem locally.

If you don't want to share the exact details, you can try to create aritifical hash and mask and see if the problem exists with them, too (it should).
#3
Hi,

Thanks for the answer. I can share the exact details by PM if that's of any use ? Otherwise I'll try to reproduce it

Edit : I forgot to mention, when I don't use the -O parameter, prior to the job I have this message :

Initialized device kernels and memory...* Device #2: ATTENTION! OpenCL kernel self-test failed.
Your device driver installation is probably broken.
See also: https://hashcat.net/faq/wrongdriver

Does it mean this issue is caused by a driver issue ?
#4
Yeah that's clearly the OpenCL runtime then.

I've add more workarounds to buggy OpenCL runtime in the latest beta. If you want to try, you can find it on https://hashcat.net/beta/
#5
Thanks Atom, unfortunately I'm on OSX and the beta release doesn't seem to have a .app to run it, if I'm not mistaken.

Besides, I've just made an artificial hash to reproduce the error, if that's still of any help :

1. With -O parameter, which worked :

hashcat -O -m 500 -a 3 -1 ?l?d?u '$1$pdQG$xpOTb2OXGpAY1qhATa5Oq.' ?1?1?1?1_test

$1$pdQG$xpOTb2OXGpAY1qhATa5Oq.:Ge6k_test                  
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Type........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
Hash.Target......: $1$pdQG$xpOTb2OXGpAY1qhATa5Oq.
Time.Started.....: Sun Jul 22 13:32:59 2018 (9 secs)
Time.Estimated...: Sun Jul 22 13:33:08 2018 (0 secs)
Guess.Mask.......: ?1?1?1?1_test [9]
Guess.Charset....: -1 ?l?d?u, -2 Undefined, -3 Undefined, -4 Undefined
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#2.....:    79285 H/s (5.79ms)
Speed.Dev.#3.....:    75903 H/s (2.57ms)
Speed.Dev.#*.....:   155.2 kH/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 1363968/14776336 (9.23%)
Rejected.........: 0/1363968 (0.00%)
Restore.Point....: 0/238328 (0.00%)
Candidates.#2....: G8dz_test -> G0m0_test
Candidates.#3....: jura_test -> jrmj_test

2. Without -O parameter, didn't work :

hashcat -m 500 -a 3 -1 ?l?d?u '$1$pdQG$xpOTb2OXGpAY1qhATa5Oq.' ?1?1?1?1_test


Session..........: hashcat                                
Status...........: Exhausted
Hash.Type........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
Hash.Target......: $1$pdQG$xpOTb2OXGpAY1qhATa5Oq.
Time.Started.....: Sun Jul 22 12:02:58 2018 (4 mins, 33 secs)
Time.Estimated...: Sun Jul 22 12:07:31 2018 (0 secs)
Guess.Mask.......: ?1?1?1?1_test [9]
Guess.Charset....: -1 ?l?d?u, -2 Undefined, -3 Undefined, -4 Undefined
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#2.....:    37571 H/s (0.44ms)
Speed.Dev.#3.....:    12304 H/s (2.12ms)
Speed.Dev.#*.....:    49875 H/s
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 14776336/14776336 (100.00%)
Rejected.........: 0/14776336 (0.00%)
Restore.Point....: 238075/238328 (99.89%)
Candidates.#2....: XVxU_test -> XQzF_test
Candidates.#3....: XwTq_test -> XGvX_test
#6
Works fine with your example command:

Quote:root@ht:~/hashcat# ./hashcat -O -m 500 -a 3 -1 ?l?d?u '$1$pdQG$xpOTb2OXGpAY1qhATa5Oq.' ?1?1?1?1_test
hashcat (v4.2.0) starting...

OpenCL Platform #1: NVIDIA Corporation
======================================
* Device #1: GeForce GTX 750 Ti, 500/2000 MB allocatable, 5MCU

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates

Applicable optimizers:
* Optimized-Kernel
* Zero-Byte
* Single-Hash
* Single-Salt
* Brute-Force

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

Watchdog: Temperature abort trigger set to 90c

$1$pdQG$xpOTb2OXGpAY1qhATa5Oq.:Ge6k_test

Session..........: hashcat
Status...........: Cracked
Hash.Type........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
Hash.Target......: $1$pdQG$xpOTb2OXGpAY1qhATa5Oq.
Time.Started.....: Tue Jul 24 14:13:15 2018 (3 secs)
Time.Estimated...: Tue Jul 24 14:13:18 2018 (0 secs)
Guess.Mask.......: ?1?1?1?1_test [9]
Guess.Charset....: -1 ?l?d?u, -2 Undefined, -3 Undefined, -4 Undefined
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....: 1238.3 kH/s (7.68ms) @ Accel:256 Loops:250 Thr:32 Vec:1
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 4546560/14776336 (30.77%)
Rejected.........: 0/4546560 (0.00%)
Restore.Point....: 40960/238328 (17.19%)
Candidates.#1....: GRXS_test -> G3t2_test
HWMon.Dev.#1.....: Temp: 45c Fan: 33% Util: 95% Core:1189MHz Mem:2700MHz Bus:16

Started: Tue Jul 24 14:13:10 2018
Stopped: Tue Jul 24 14:13:19 2018
root@ht:~/hashcat# rm hashcat.potfile
root@ht:~/hashcat# ./hashcat -m 500 -a 3 -1 ?l?d?u '$1$pdQG$xpOTb2OXGpAY1qhATa5Oq.' ?1?1?1?1_test
hashcat (v4.2.0) starting...

OpenCL Platform #1: NVIDIA Corporation
======================================
* Device #1: GeForce GTX 750 Ti, 500/2000 MB allocatable, 5MCU

OpenCL Platform #2: The pocl project
====================================
* Device #2: pthread-AMD FX(tm)-8120 Eight-Core Processor, skipped.

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates

Applicable optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt
* Brute-Force

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: Temperature abort trigger set to 90c

$1$pdQG$xpOTb2OXGpAY1qhATa5Oq.:Ge6k_test

Session..........: hashcat
Status...........: Cracked
Hash.Type........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
Hash.Target......: $1$pdQG$xpOTb2OXGpAY1qhATa5Oq.
Time.Started.....: Tue Jul 24 14:13:39 2018 (6 secs)
Time.Estimated...: Tue Jul 24 14:13:45 2018 (0 secs)
Guess.Mask.......: ?1?1?1?1_test [9]
Guess.Charset....: -1 ?l?d?u, -2 Undefined, -3 Undefined, -4 Undefined
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....: 761.1 kH/s (6.20ms) @ Accel:256 Loops:125 Thr:32 Vec:1
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 4546560/14776336 (30.77%)
Rejected.........: 0/4546560 (0.00%)
Restore.Point....: 40960/238328 (17.19%)
Candidates.#1....: GRXS_test -> G3t2_test
HWMon.Dev.#1.....: Temp: 48c Fan: 33% Util: 94% Core:1189MHz Mem:2700MHz Bus:16

Started: Tue Jul 24 14:13:26 2018
Stopped: Tue Jul 24 14:13:46 2018

I can not provide an .app executeable for macOS because there's no cross compiler available and I do not own any apple devices myself. You can download the latest version from GitHub yourself and retry with this version.
#7
Hi Atom,

Thanks for the feedback. Running the hash on the new version didn't work for me without -O. Maybe some drivers issues on my Macbook. If I get a chance to try on Linux I'll update this post
#8
Hi,

Just to inform than I still encounter the issue mentioned above on Macbook Pro High Sierra. A workaround was use CPU only with -D 1.