Posts: 7
Threads: 3
Joined: Oct 2019
Hi,
I have a 3 word wpa hash in the format of "word-word-word" (including the -). with a 3-4-5 mask/keyspace (in any order) with one of the words being in capitals.
I have 3 word lists, one for each word length, and in each file every word appears twice. Once in lower case & once in upper case
Can anyone suggest how I run the 3 word lists and add the "-" in-between?
I believe this would work for 2 words but not sure how to make it run for 3
hashcat64.exe -m 2500 -a 1 -j '$-' dict1.txt dict2.text ..........
I'm currently running Hashcat on windows
Many thanks in advance.
Posts: 3
Threads: 1
Joined: Dec 2019
12-13-2019, 01:31 PM
(This post was last modified: 12-13-2019, 01:47 PM by EnviableOne.)
(10-10-2019, 08:32 PM)Dawbs Wrote: Hi,
I have a 3 word wpa hash in the format of "word-word-word" (including the -). with a 3-4-5 mask/keyspace (in any order) with one of the words being in capitals.
I have 3 word lists, one for each word length, and in each file every word appears twice. Once in lower case & once in upper case
Can anyone suggest how I run the 3 word lists and add the "-" in-between?
I believe this would work for 2 words but not sure how to make it run for 3
hashcat64.exe -m 2500 -a 1 -j '$-' dict1.txt dict2.text ..........
I'm currently running Hashcat on windows
Many thanks in advance.
Easiest way is to combine all three wordlists (append the 4s and 5s to the 3s) to get your wordlist then powershell is probably the fastest way to create the candidates
if i am reading your post right the candidates you need are:
LIST-list-list
list-LIST-list
list-list-LIST
where list is any of the 3s,4s,5s in lower and LIST is them is upper.
the best way is to use three stream readers and nested loops:
Code:
[GC]::Collect()
$In_File="";
$Out_File="";
$j=0;
$lc = 1
$line = "";
$OutputEncoding = [System.Text.UTF8Encoding]::($false);
$Clock = [System.Diagnostics.Stopwatch]::StartNew();
$sw = new-object system.IO.StreamWriter($Out_file,$OutputEncoding);
while ($lc -lt 4){
$sr1 = new-object System.IO.StreamReader($In_File);
$line1=$sr1.ReadLine();
while ($line1 -ne $null){
$sr2 = new-object System.IO.StreamReader($In_File);
$line2 = $sr2.ReadLine()
while ($line2 -ne $null){
$sr3 = new-object System.IO.StreamReader($In_File);
$line3 = $sr3.ReadLine()
while ($line3 -ne $null){
switch($lc){
1{
$line1 = $line1.ToUpper()
}
2{
$line2 = $line2.ToUpper()
}
3{
$line3 = $line3.ToUpper()
}
}
$wrline = "$line1-$line2-$line3"
$sw.WriteLine($wrline);
$j++;
$line3=$sr3.ReadLine();
}
$line2=$sr2.ReadLine();
}
$line1=$sr1.ReadLine();
}
$lc++
}
$Clock.Stop()
$sr1.Close();
$sr1.Dispose();
$sr2.Close();
$sr2.Dispose();
$sr3.Close();
$sr3.Dispose();
$sw.flush();
$sw.Close();
$sw.Dispose();
Write-Output "total lines written: $j","Time elapsed:" $Clock.elaps
if you set $in_file to the path of the combined 3s,4s,and5s file and $out_file to a path of your choosing, $out_file will then be your wordlist for a straight dictionary attack
e.g.
hashcat64.exe -m 2500 -a 0 input.hash $out_file .......
Posts: 165
Threads: 5
Joined: Mar 2018
As explained here (
https://gist.github.com/roycewilliams/18...45692bccc2) by Royce, I should also consider using PRINCE.
Put all your possible candidates in one wordlist and put a space in front of them.
Use prince and pipe it into hashcat.
Use the rule "delete first character, and replace all spaces by -"
This should give the following:
Code:
cat wordlist.txt
aaa
bbb
ccc
AAA
BBB
CCC
Code:
pp64.exe --elem-cnt-min=3 --elem-cnt-max=3 wordlist.txt | hashcat.exe --stdout -j "[ s -"
aaa-aaa-aaa
bbb-aaa-aaa
ccc-aaa-aaa
AAA-aaa-aaa
BBB-aaa-aaa
CCC-aaa-aaa
aaa-bbb-aaa
bbb-bbb-aaa
ccc-bbb-aaa
AAA-bbb-aaa
BBB-bbb-aaa
CCC-bbb-aaa
aaa-ccc-aaa
bbb-ccc-aaa
ccc-ccc-aaa
AAA-ccc-aaa
BBB-ccc-aaa
CCC-ccc-aaa
aaa-AAA-aaa
bbb-AAA-aaa
ccc-AAA-aaa
AAA-AAA-aaa
BBB-AAA-aaa
CCC-AAA-aaa
[...]