In hashcat, when we need to crack password based on wordlist, but additionally want to try partly bruteforce random ASCII characters in the end of any entry from the wordlist, we can use the following command:

hashcat -a 6 -m 1800 .\unshadowed.txt .\rockyou.txt ?a

magic happens with -a 6 and ?a, in that case, each entry from rockyou.txt wordlist will be tried along with itself + any other ASCII character.

The problem is that hashcat doesn't support yescrypt and we have to call John in that case, anyone can assist building that command equivalent for john?

Nothing found so far but writing that script that generates a new superhuge wordlist with all brute options considered. After it may be used with John, but that adds time.

import itertools
import string
import codecs

number_of_extensions = range(3)

with codecs.open("rockyou.txt", "r", encoding='utf-8', errors='replace') as f:
    for word in f:
        for extension in number_of_extensions:
            combinations = itertools.product(string.punctuation, repeat=extension)
            for combination in combinations:
                extended_word = word.strip() + ''.join(combination) + "\n"

                with open("extended_dictionary.txt", "a") as f:

1 Answer 1


John has a ?w mask element that represents the words from a wordlist. So something starting from here should work:

john --wordlist=mylist.txt --mask=?w?a
  • 1
    Thanks! That worked. Description of ?w and ?W as "Hybrid" mode a bit misleading. Also found a great guide with comprehensive features description miloserdov.org/?p=5031
    – Hans R
    Commented Jul 7, 2023 at 12:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .