rules approach is okay, but you have to generate all possibilites for the whole length of your pass like this, i would do it like that first lower whole word then toggle specific index
l T0
l T1
l T2
...
until you reach your password length, but then you will need the next round aof rules for
l T0 T1
l T0 T2
...
and so on and so on, for sure you can utilize hahscat or maskprocessor to help you, but its still some work so
for a given string i made a simple python function which will output what you desire
Code:
import itertools
def lower_upper_permutationen_string(string):
lower_upper = ((char.lower(), char.upper()) for char in string)
tmp_list =[''.join(product) for product in itertools.product(*lower_upper)]
result = sorted(list(set(tmp_list)))
return result
print(lower_upper_permutationen_string('test'))
when runnnning this with string 'test' will result in list containg all possibilities of test upper/ lower, its 4^2 = 16 possibilities
Code:
['TEST', 'TESt', 'TEsT', 'TEst', 'TeST', 'TeSt', 'TesT', 'Test', 'tEST', 'tESt', 'tEsT', 'tEst', 'teST', 'teSt', 'tesT', 'test']
sadly there is no hashcat tool for this in hahscat utils like permute for this