Dictionary with known combinations
Can anyone point me in the right direction for creating a dictionary file; I have 3-5 words that are in the password in any order, with or without CAPS, and also might have a set of numbers in it to.  What I'm hoping to end up with is something like this:

Test Tester Testee Tested John Sirus

1900 1901 1902 1903

output file:



I can't seem to find a way to do this with any of the tools I have found or forum posts I have read....
Thanks in advance....
if you really need to combine every word with every word, you should probably use combinator3 from hashcat.utils

combinator3 dict dict dict

if the numbers are always at the end and "only" the words are combined in any order, you should use either this approach:

combinator dict.txt dict.txt > temp
hashcat --stdout -o generated_dict.txt -r append_my_numbers.rule temp

where the file "append_my_numbers.rule" contains:
$1 $9 $0 $0
$1 $9 $0 $1
$1 $9 $0 $2
$1 $9 $0 $3

or if there are very few numbers, you could also use -a 1 directly with -k option, e.g.:

hashcat --stdout -o generated_dict.txt -a 1 -k '$1 $9 $0 $0' dict.txt dict.txt

hashcat --stdout -o generated_dict.txt -a 1 -k '$1 $9 $0 $1' dict.txt dict.txt

hashcat --stdout -o generated_dict.txt -a 1 -k '$1 $9 $0 $2' dict.txt dict.txt

hashcat --stdout -o generated_dict.txt -a 1 -k '$1 $9 $0 $3' dict.txt dict.txt

(note: if you use windows you need to escape the -k command line parameter differently, e.g. use double quotes instead of single quotes)

Note: combining 3 or more words/numbers together (and storing it on disk) only makes sense if the word list is very small, it grows exponentially. That brings up another question: does it make sense to store the full precomputed password candidate list on disk? I agree that for a very small dict it doesn't hurt, but maybe for an even slightly bigger output (# of candidates), it could make sense to e.g. apply some rules on-the-fly while cracking... this even could result in much faster speed since the input/output bottleneck (i.e. reading the huge file from a relatively slow disk) could be bypassed and the GPUs/CPUs are kept busy applying the rules

Note2: your CAPS requirement doesn't make it much more complicated, you either just need to manually write all capitalized words within the file or use hashcat --stdout to do it for you (use the "u" rule , see https://hashcat.net/wiki/ule_based_attack ). But remember: if the original dict containing all the words you want to use grows a lot, the final number of combinations of 3 words will grow even more (almost exponentially).