if you really need to combine every word with every word, you should probably use combinator3 from hashcat.utils
Code:
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:
Code:
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:
Code:
$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.:
Code:
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).