06-13-2012, 02:25 PM
Hey Guys,
today I had the following idea: What if we can link the markov-chain to the password-position, in other words, create a per-position markov-table?
I'm not a guy who thinks to long, so I modified the 0.03 statsprocessor and tried it. Then I did a little experiment you find out if its more efficient or not.
You will see the new per-position enhanced markov-attack is around 29% more efficient than default markov-attack.
I created a hcstat file with both versions. The v0.3 which is default markov-attack and v0.4 which uses the per-position markov-attack.
I took the rockyou.txt which is plain-password, and hashed them as MD5 so that I can crack them later.
For both versions I created a simple dictionary. These dictionaries will be used to crack the hashed rockyou list later. When generating, I took a very low threshold value to force only the potential best password candidates are generated, since this is what I want to compare.
The dictionary which cracks more passwords is more efficient.
You can download the updates here:
https://hashcat.net/files/statsprocessor-0.04.7z
https://hashcat.net/files/hashcat-utils-0.7-32.7z
https://hashcat.net/files/hashcat-utils-0.7-64.7z
today I had the following idea: What if we can link the markov-chain to the password-position, in other words, create a per-position markov-table?
I'm not a guy who thinks to long, so I modified the 0.03 statsprocessor and tried it. Then I did a little experiment you find out if its more efficient or not.
You will see the new per-position enhanced markov-attack is around 29% more efficient than default markov-attack.
I created a hcstat file with both versions. The v0.3 which is default markov-attack and v0.4 which uses the per-position markov-attack.
Code:
root@sf:~/hashcat-utils-0.6# ./hcstatgen.bin rockyou.hcstat < /root/dict/untouched/rockyou.txt
Reading input...
Sorting tables...
Writing stats...
root@sf:~/hashcat-utils-0.7# ./hcstatgen.bin rockyou.hcstat < /root/dict/untouched/rockyou.txt
Reading input...
Generating root...
Sorting tables...
Writing stats...
I took the rockyou.txt which is plain-password, and hashed them as MD5 so that I can crack them later.
Code:
root@sf:~# perl dict2hash.pl < /root/dict/untouched/rockyou.txt > rockyou.md5
For both versions I created a simple dictionary. These dictionaries will be used to crack the hashed rockyou list later. When generating, I took a very low threshold value to force only the potential best password candidates are generated, since this is what I want to compare.
Code:
root@sf:~/statsprocessor-0.03# ./sp64.bin rockyou.hcstat ?l?l?l?l?l?l -t 16 -o /root/dict3.txt
root@sf:~/statsprocessor-0.03# wc -l /root/dict3.txt
17895696 /root/dict3.txt
root@sf:~/statsprocessor-0.04# ./sp64.bin rockyou.hcstat ?l?l?l?l?l?l -t 16 -o /root/dict4.txt
root@sf:~/statsprocessor-0.04# wc -l /root/dict4.txt
17895696 /root/dict4.txt
The dictionary which cracks more passwords is more efficient.
Code:
root@sf:~/hashcat-0.40# ./hashcat-cli64.bin /root/rockyou.md5 /root/dict3.txt -o /dev/null
.
.
.
Recovered.: 171780/14344391 hashes, 0/1 salts
root@sf:~/hashcat-0.40# ./hashcat-cli64.bin /root/rockyou.md5 /root/dict4.txt -o /dev/null
.
.
.
Recovered.: 221877/14344391 hashes, 0/1 salts
You can download the updates here:
https://hashcat.net/files/statsprocessor-0.04.7z
https://hashcat.net/files/hashcat-utils-0.7-32.7z
https://hashcat.net/files/hashcat-utils-0.7-64.7z