How to configure Hashcat to append some data?
#1
Hi, is there any way to configure Hashcat to find this SHA256 hash
7627FFAE5981FC58DF32EA707D11D1ACF72ADC76D7B1A31B8A47C9FBD065A4A6

Made of binary data in this way

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

where 0-15 bytes is digit (0 in this case)
and 16-31 is always hex 0x00

I got an error when using the --hex-charset like this

hashcat64 -m 1400 hash -D 2 --force -a 3 --custom-charset2=0 --hex-charset -1 00 ?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?1?1?1?1?1??1?1?1?1?1?1?1?1?1?1?1
hashcat (v5.1.0) starting...

The hex-charset option expects exactly 2 hexadecimal chars. Failed mask: 0


Thank you!
Reply
#2
Code:
hashcat -m 1400 -a 3 -w 3 --hex-charset --custom-charset2 30 --custom-charset3 00 7627ffae5981fc58df32ea707d11d1acf72adc76d7b1a31b8a47c9fbd065a4a6 ?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3

instead of --custom-charset2 you could just use the short version -2 (minus 2)
instead of --custom-charset3 you could just use the short version -3 (minus 3)

in theory you could/should use -1 and --custom-charset1, but some users seem to have problems (depending on their font settings of the terminal and browser) to distinguish minus one from dash lower-case letter l (-1 vs -l). So we sometimes just start counting from 2 when trying to explain the commands.

BTW: do NOT EVER use --force, it just normally implies that something is really broken (installation, driver, hardware) with your system, otherwise you would never even think about using --force (because it's dangerous ! false postives and false negatives etc).
Reply
#3
Thank you for your reply.
Yours solution is good for this example, but it dosen't solve the problem.

I need the charset 2 to cover 0123456789ABCDEF to be able to find the hash.
But there is a problem running it.

Code:
hashcat -m 1400 -a 3 -w 3 --hex-charset --custom-charset2 30313233343536373839414243444546 --custom-charset3 00 4BC2940C6460134A90194D9D0EA1920792869C779E6909C9E3F15C2E0FA46857 ?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3
Reply
#4
Quote:But there is a problem running it.

Why do you not just mention the error message ?

I guess it's this:
Quote:Integer overflow detected in keyspace of mask: ?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3

The problem now is not the syntax, but the infeasibility.

Just do the math. It's mathematically infeasible. You are trying to brute-force 16 unknown bytes: 16*16*16*...*16*16*16 = 16^16 = 18,446,744,073,709,551,616

as you can see, that's a very huge number. A tremendous large keyspace. It's impossible to find 16 random bytes within a reasonable amount of time (within dozens of years). You could just play around and make the unknown part shorter or reduce the number of bytes in the custom charset and see how many years it would take for instance if only 0123456789 was allowed and how quickly the time needed increased with increasing number of chars in the charset etc
Reply
#5
(07-25-2020, 08:20 AM)philsmd Wrote:
Quote:Integer overflow detected in keyspace of mask: ?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3



The problem now is not the syntax, but the infeasibility.



Just do the math. It's mathematically infeasible. You are trying to brute-force 16 unknown bytes: 16*16*16*...*16*16*16 = 16^16 = 18,446,744,073,709,551,616


Thank you for your reply, this was the part that I didn't understand Smile



Removing two bytes runs ok





Code:
hashcat -m 1400 -a 3 -w 3 --hex-charset --custom-charset2 30313233343536373839414243444546 --custom-charset3 00 4BC2940C6460134A90194D9D0EA1920792869C779E6909C9E3F15C2E0FA46857 3030?2?2?2?2?2?2?2?2?2?2?2?2?2?2?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3


Session..........: hashcat

Status...........: Running

Hash.Name........: SHA2-256

Hash.Target......: 4bc2940c6460134a90194d9d0ea1920792869c779e6909c9e3f...a46857

Time.Started.....: Sat Jul 25 12:55:19 2020 (1 sec)

Time.Estimated...: Thu Mar 04 15:04:49 2224 (203 years, 221 days)

Guess.Mask.......: 3030?2?2?2?2?2?2?2?2?2?2?2?2?2?2?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3?3 [32]

Guess.Charset....: -1 Undefined, -2 30313233343536373839414243444546, -3 00, -4 Undefined

Guess.Queue......: 1/1 (100.00%)

Speed.#2.........: 11214.8 kH/s (90.55ms) @ Accel:128 Loops:64 Thr:8 Vec:1

Recovered........: 0/1 (0.00%) Digests

Progress.........: 7340032/72057594037927936 (0.00%)

Rejected.........: 0/7340032 (0.00%)

Restore.Point....: 16384/281474976710656 (0.00%)

Restore.Sub.#2...: Salt:0 Amplifier:192-256 Iteration:0-64

Candidates.#2....: $HEX[3030304131393932333435363636363700000000000000000000000000000000] -> $HEX[3030453846364633343536363636363700000000000000000000000000000000]



[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>
Reply