Non esiste un modo nativo per farlo con hashcat. Invece, è necessario generare un elenco di maschere che contengano tutte le permutazioni che si adattano ai criteri.
Lo strumento comune per questo è policygen dal toolkit PACK. La mia risposta qui illustra come usarlo.
Per il tuo caso d'uso, sarebbe qualcosa di simile (assumendo password di 8 caratteri e un minimo di 3 cifre):
$ policygen --minlength=8 --maxlength=8 --mindigit=3 \
-o len8mindigit3.masks
_
PolicyGen 0.0.2 | |
_ __ __ _ ___| | _
| '_ \ / _' |/ __| |/ /
| |_) | (_| | (__| <
| .__/ \__,_|\___|_|\_\
| |
|_| [email protected]
[*] Saving generated masks to [len8mindigit3.masks]
[*] Using 1,000,000,000 keys/sec for calculations.
[*] Password policy:
Pass Lengths: min:8 max:8
Min strength: l:None u:None d:3 s:None
Max strength: l:None u:None d:None s:None
[*] Generating [compliant] masks.
[*] Generating 8 character password masks.
[*] Total Masks: 65536 Time: 76 days, 18:50:04
[*] Policy Masks: 21067 Time: 3 days, 8:11:03
$ head len8mindigit3.masks
?d?d?d?d?d?d?d?d
?d?d?d?d?d?d?d?l
?d?d?d?d?d?d?d?u
?d?d?d?d?d?d?d?s
?d?d?d?d?d?d?l?d
?d?d?d?d?d?d?l?l
?d?d?d?d?d?d?l?u
?d?d?d?d?d?d?l?s
?d?d?d?d?d?d?u?d
?d?d?d?d?d?d?u?l
$ tail len8mindigit3.masks
?s?s?s?s?d?d?d?s
?s?s?s?s?d?d?l?d
?s?s?s?s?d?d?u?d
?s?s?s?s?d?d?s?d
?s?s?s?s?d?l?d?d
?s?s?s?s?d?u?d?d
?s?s?s?s?d?s?d?d
?s?s?s?s?l?d?d?d
?s?s?s?s?u?d?d?d
?s?s?s?s?s?d?d?d
Fornirai quindi quel file di maschere a hashcat.