Abstracted the wordlists and masks and put them in the configfile

This commit is contained in:
bandrel
2018-05-08 12:01:09 -04:00
parent e60253b855
commit b9d3cc47ed
2 changed files with 153 additions and 141 deletions
+3
View File
@@ -4,6 +4,9 @@
"hcatTuning": "--force", "hcatTuning": "--force",
"hcatWordlists": "/Passwords/wordlists", "hcatWordlists": "/Passwords/wordlists",
"hcatOptimizedWordlists": "/Passwords/optimized_wordlists", "hcatOptimizedWordlists": "/Passwords/optimized_wordlists",
"hcatDictionaryWordlist": ["rockyou.txt"],
"hcatCombinationWordlist": ["rockyou.txt","rockyou.txt"],
"hcatHybridlist": ["rockyou.txt"],
"hcatMiddleCombinatorMasks": ["2","4"," ","-","_","+",",",".","&"], "hcatMiddleCombinatorMasks": ["2","4"," ","-","_","+",",",".","&"],
"hcatMiddleBaseList": "rockyou.txt", "hcatMiddleBaseList": "rockyou.txt",
"hcatThoroughCombinatorMasks": ["0","1","2","3","4","5","6","7","8","9"," ","-","_","+",",","!","#","$","\"","%","&","'","(",")","*",",",".","/",":",";","<","=",">","?","@","[","\\","]","^","`","{","|","}","~"], "hcatThoroughCombinatorMasks": ["0","1","2","3","4","5","6","7","8","9"," ","-","_","+",",","!","#","$","\"","%","&","'","(",")","*",",",".","/",":",";","<","=",">","?","@","[","\\","]","^","`","{","|","}","~"],
+150 -141
View File
@@ -28,11 +28,15 @@ with open(hate_path + '/config.json') as config:
hcatTuning = config_parser['hcatTuning'] hcatTuning = config_parser['hcatTuning']
hcatWordlists = config_parser['hcatWordlists'] hcatWordlists = config_parser['hcatWordlists']
hcatOptimizedWordlists = config_parser['hcatOptimizedWordlists'] hcatOptimizedWordlists = config_parser['hcatOptimizedWordlists']
hcatDictionaryWordlist = config_parser['hcatDictionaryWordlist']
hcatHybridlist = config_parser['hcatHybridlist']
hcatCombinationWordlist = config_parser['hcatCombinationWordlist']
hcatMiddleCombinatorMasks = config_parser['hcatMiddleCombinatorMasks'] hcatMiddleCombinatorMasks = config_parser['hcatMiddleCombinatorMasks']
hcatMiddleBaseList = config_parser['hcatMiddleBaseList'] hcatMiddleBaseList = config_parser['hcatMiddleBaseList']
hcatThoroughCombinatorMasks = config_parser['hcatThoroughCombinatorMasks'] hcatThoroughCombinatorMasks = config_parser['hcatThoroughCombinatorMasks']
hcatThoroughBaseList = config_parser['hcatThoroughBaseList'] hcatThoroughBaseList = config_parser['hcatThoroughBaseList']
if sys.platform == 'darwin': if sys.platform == 'darwin':
hcatExpanderBin = "expander.app" hcatExpanderBin = "expander.app"
hcatCombinatorBin = "combinator.app" hcatCombinatorBin = "combinator.app"
@@ -42,6 +46,14 @@ else:
hcatCombinatorBin = "combinator.bin" hcatCombinatorBin = "combinator.bin"
hcatPrinceBin = "pp64.bin" hcatPrinceBin = "pp64.bin"
def verify_wordlist_dir(directory, wordlist):
if os.path.isfile(wordlist):
return wordlist
elif os.path.isfile(directory + '/' + wordlist):
return directory + '/' + wordlist
else:
print('Invalid path for {0}. Please check configuration and try again.'.format(wordlist))
quit(1)
# hashcat biniary checks for systems that install hashcat binary in different location than the rest of the hashcat files # hashcat biniary checks for systems that install hashcat binary in different location than the rest of the hashcat files
if os.path.isfile(hcatBin): if os.path.isfile(hcatBin):
@@ -52,22 +64,15 @@ else:
print('Invalid path for hashcat binary. Please check configuration and try again.') print('Invalid path for hashcat binary. Please check configuration and try again.')
quit(1) quit(1)
if os.path.isfile(hcatMiddleBaseList): #verify and convert wordlists to fully qualified paths
pass hcatMiddleBaseList = verify_wordlist_dir(hcatWordlists, hcatMiddleBaseList)
elif os.path.isfile(hcatWordlists+'/'+hcatMiddleBaseList): hcatThoroughBaseList = verify_wordlist_dir(hcatWordlists, hcatThoroughBaseList)
hcatMiddleBaseList = hcatWordlists+'/'+hcatMiddleBaseList for x in range(len(hcatDictionaryWordlist)):
else: hcatDictionaryWordlist[x] = verify_wordlist_dir(hcatWordlists, hcatDictionaryWordlist[x])
print('Invalid path for hcatMiddleBaseList. Please check configuration and try again.') for x in range(len(hcatHybridlist)):
quit(1) hcatHybridlist[x] = verify_wordlist_dir(hcatWordlists, hcatHybridlist[x])
hcatCombinationWordlist[0] = verify_wordlist_dir(hcatWordlists, hcatCombinationWordlist[0])
if os.path.isfile(hcatThoroughBaseList): hcatCombinationWordlist[1] = verify_wordlist_dir(hcatWordlists, hcatCombinationWordlist[1])
pass
elif os.path.isfile(hcatWordlists+'/'+hcatThoroughBaseList):
hcatThoroughBaseList = hcatWordlists+'/'+hcatThoroughBaseList
else:
print('Invalid path for hcatThoroughBaseList. Please check configuration and try again.')
quit(1)
hcatHashCount = 0 hcatHashCount = 0
@@ -161,40 +166,41 @@ def hcatDictionary(hcatHashType, hcatHashFile):
hcatProcess.kill() hcatProcess.kill()
hcatProcess = subprocess.Popen( for wordlist in hcatDictionaryWordlist:
"{hcatBin} -m {hcatHashType} {hash_file} --session {session_name} --remove -o {hash_file}.out {hcatWordlists}/rockyou.txt " hcatProcess = subprocess.Popen(
"-r {hcatPath}/rules/d3ad0ne.rule {tuning} --potfile-path={hate_path}/hashcat.pot".format( "{hcatBin} -m {hcatHashType} {hash_file} --session {session_name} --remove -o {hash_file}.out {hcatWordlist} "
hcatPath=hcatPath, "-r {hcatPath}/rules/d3ad0ne.rule {tuning} --potfile-path={hate_path}/hashcat.pot".format(
hcatBin=hcatBin, hcatPath=hcatPath,
hcatHashType=hcatHashType, hcatBin=hcatBin,
hash_file=hcatHashFile, hcatHashType=hcatHashType,
session_name=os.path.basename(hcatHashFile), hash_file=hcatHashFile,
hcatWordlists=hcatWordlists, session_name=os.path.basename(hcatHashFile),
tuning=hcatTuning, hcatWordlist=wordlist,
hate_path=hate_path), shell=True) tuning=hcatTuning,
try: hate_path=hate_path), shell=True)
hcatProcess.wait() try:
except KeyboardInterrupt: hcatProcess.wait()
print('Killing PID {0}...'.format(str(hcatProcess.pid))) except KeyboardInterrupt:
hcatProcess.kill() print('Killing PID {0}...'.format(str(hcatProcess.pid)))
hcatProcess.kill()
hcatProcess = subprocess.Popen( hcatProcess = subprocess.Popen(
"{hcatBin} -m {hcatHashType} {hash_file} --session {session_name} --remove -o {hash_file}.out {hcatWordlists}/rockyou.txt " "{hcatBin} -m {hcatHashType} {hash_file} --session {session_name} --remove -o {hash_file}.out {hcatWordlist} "
"-r {hcatPath}/rules/T0XlC.rule {tuning} --potfile-path={hate_path}/hashcat.pot".format( "-r {hcatPath}/rules/T0XlC.rule {tuning} --potfile-path={hate_path}/hashcat.pot".format(
hcatPath=hcatPath, hcatPath=hcatPath,
hcatBin=hcatBin, hcatBin=hcatBin,
hcatHashType=hcatHashType, hcatHashType=hcatHashType,
hash_file=hcatHashFile, hash_file=hcatHashFile,
session_name=os.path.basename(hcatHashFile), session_name=os.path.basename(hcatHashFile),
hcatWordlists=hcatWordlists, hcatWordlist=wordlist,
tuning=hcatTuning, tuning=hcatTuning,
hate_path=hate_path), shell=True) hate_path=hate_path), shell=True)
try: try:
hcatProcess.wait() hcatProcess.wait()
except KeyboardInterrupt: except KeyboardInterrupt:
print('Killing PID {0}...'.format(str(hcatProcess.pid))) print('Killing PID {0}...'.format(str(hcatProcess.pid)))
hcatProcess.kill() hcatProcess.kill()
hcatDictionaryCount = lineCount(hcatHashFile + ".out") - hcatBruteCount hcatDictionaryCount = lineCount(hcatHashFile + ".out") - hcatBruteCount
@@ -311,13 +317,15 @@ def hcatCombination(hcatHashType, hcatHashFile):
global hcatCombinationCount global hcatCombinationCount
global hcatProcess global hcatProcess
hcatProcess = subprocess.Popen( hcatProcess = subprocess.Popen(
"{hcatBin} -m {hash_type} {hash_file} --session {session_name} --remove -o {hash_file}.out -a 1 {word_lists}/rockyou.txt " "{hcatBin} -m {hash_type} {hash_file} --session {session_name} --remove -o {hash_file}.out -a 1 {left} "
"{word_lists}/rockyou.txt {tuning} --potfile-path={hate_path}/hashcat.pot".format( "{right} {tuning} --potfile-path={hate_path}/hashcat.pot".format(
hcatBin=hcatBin, hcatBin=hcatBin,
hash_type=hcatHashType, hash_type=hcatHashType,
hash_file=hcatHashFile, hash_file=hcatHashFile,
session_name=os.path.basename(hcatHashFile), session_name=os.path.basename(hcatHashFile),
word_lists=hcatWordlists, word_lists=hcatWordlists,
left=hcatCombinationWordlist[0],
right=hcatCombinationWordlist[1],
tuning=hcatTuning, tuning=hcatTuning,
hate_path=hate_path), hate_path=hate_path),
shell=True) shell=True)
@@ -334,103 +342,104 @@ def hcatCombination(hcatHashType, hcatHashFile):
def hcatHybrid(hcatHashType, hcatHashFile): def hcatHybrid(hcatHashType, hcatHashFile):
global hcatHybridCount global hcatHybridCount
global hcatProcess global hcatProcess
hcatProcess = subprocess.Popen( for wordlist in hcatHybridlist:
"{hcatBin} -m {hash_type} {hash_file} --session {session_name} --remove -o {hash_file}.out -a 6 -1 ?s?d {word_lists}/rockyou.txt ?1?1 " hcatProcess = subprocess.Popen(
"{tuning} --potfile-path={hate_path}/hashcat.pot".format( "{hcatBin} -m {hash_type} {hash_file} --session {session_name} --remove -o {hash_file}.out -a 6 -1 ?s?d {wordlist} ?1?1 "
hcatBin=hcatBin, "{tuning} --potfile-path={hate_path}/hashcat.pot".format(
hash_type=hcatHashType, hcatBin=hcatBin,
hash_file=hcatHashFile, hash_type=hcatHashType,
session_name=os.path.basename(hcatHashFile), hash_file=hcatHashFile,
word_lists=hcatWordlists, session_name=os.path.basename(hcatHashFile),
tuning=hcatTuning, wordlist=wordlist,
hate_path=hate_path), shell=True) tuning=hcatTuning,
try: hate_path=hate_path), shell=True)
hcatProcess.wait() try:
except KeyboardInterrupt: hcatProcess.wait()
print('Killing PID {0}...'.format(str(hcatProcess.pid))) except KeyboardInterrupt:
hcatProcess.kill() print('Killing PID {0}...'.format(str(hcatProcess.pid)))
hcatProcess.kill()
hcatProcess = subprocess.Popen( hcatProcess = subprocess.Popen(
"{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 6 -1 ?s?d {word_lists}/rockyou.txt ?1?1?1 " "{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 6 -1 ?s?d {wordlist} ?1?1?1 "
"{tuning} --potfile-path={hate_path}/hashcat.pot".format( "{tuning} --potfile-path={hate_path}/hashcat.pot".format(
hcatBin=hcatBin, hcatBin=hcatBin,
hash_type=hcatHashType, hash_type=hcatHashType,
hash_file=hcatHashFile, hash_file=hcatHashFile,
session_name=os.path.basename(hcatHashFile), session_name=os.path.basename(hcatHashFile),
word_lists=hcatWordlists, wordlist=wordlist,
tuning=hcatTuning, tuning=hcatTuning,
hate_path=hate_path), shell=True) hate_path=hate_path), shell=True)
try: try:
hcatProcess.wait() hcatProcess.wait()
except KeyboardInterrupt: except KeyboardInterrupt:
print('Killing PID {0}...'.format(str(hcatProcess.pid))) print('Killing PID {0}...'.format(str(hcatProcess.pid)))
hcatProcess.kill() hcatProcess.kill()
hcatProcess = subprocess.Popen( hcatProcess = subprocess.Popen(
"{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 6 -1 ?s?d {word_lists}/rockyou.txt " "{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 6 -1 ?s?d {wordlist} "
"?1?1?1?1 {tuning} --potfile-path={hate_path}/hashcat.pot".format( "?1?1?1?1 {tuning} --potfile-path={hate_path}/hashcat.pot".format(
hcatBin=hcatBin, hcatBin=hcatBin,
hash_type=hcatHashType, hash_type=hcatHashType,
hash_file=hcatHashFile, hash_file=hcatHashFile,
session_name=os.path.basename(hcatHashFile), session_name=os.path.basename(hcatHashFile),
word_lists=hcatWordlists, wordlist=wordlist,
tuning=hcatTuning, tuning=hcatTuning,
hate_path=hate_path), shell=True) hate_path=hate_path), shell=True)
try: try:
hcatProcess.wait() hcatProcess.wait()
except KeyboardInterrupt: except KeyboardInterrupt:
print('Killing PID {0}...'.format(str(hcatProcess.pid))) print('Killing PID {0}...'.format(str(hcatProcess.pid)))
hcatProcess.kill() hcatProcess.kill()
hcatProcess = subprocess.Popen( hcatProcess = subprocess.Popen(
"{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 7 -1 ?s?d ?1?1 {word_lists}/rockyou.txt " "{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 7 -1 ?s?d ?1?1 {wordlist} "
"{tuning} --potfile-path={hate_path}/hashcat.pot".format( "{tuning} --potfile-path={hate_path}/hashcat.pot".format(
hcatBin=hcatBin, hcatBin=hcatBin,
hash_type=hcatHashType, hash_type=hcatHashType,
hash_file=hcatHashFile, hash_file=hcatHashFile,
session_name=os.path.basename(hcatHashFile), session_name=os.path.basename(hcatHashFile),
word_lists=hcatWordlists, wordlist=wordlist,
tuning=hcatTuning, tuning=hcatTuning,
hate_path=hate_path), shell=True) hate_path=hate_path), shell=True)
try: try:
hcatProcess.wait() hcatProcess.wait()
except KeyboardInterrupt: except KeyboardInterrupt:
print('Killing PID {0}...'.format(str(hcatProcess.pid))) print('Killing PID {0}...'.format(str(hcatProcess.pid)))
hcatProcess.kill() hcatProcess.kill()
hcatProcess = subprocess.Popen( hcatProcess = subprocess.Popen(
"{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 7 -1 ?s?d ?1?1?1 {word_lists}/rockyou.txt " "{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 7 -1 ?s?d ?1?1?1 {wordlist} "
"{tuning} --potfile-path={hate_path}/hashcat.pot".format( "{tuning} --potfile-path={hate_path}/hashcat.pot".format(
hcatBin=hcatBin, hcatBin=hcatBin,
hash_type=hcatHashType, hash_type=hcatHashType,
hash_file=hcatHashFile, hash_file=hcatHashFile,
session_name=os.path.basename(hcatHashFile), session_name=os.path.basename(hcatHashFile),
word_lists=hcatWordlists, wordlist=wordlist,
tuning=hcatTuning, tuning=hcatTuning,
hate_path=hate_path), shell=True) hate_path=hate_path), shell=True)
try: try:
hcatProcess.wait() hcatProcess.wait()
except KeyboardInterrupt: except KeyboardInterrupt:
print('Killing PID {0}...'.format(str(hcatProcess.pid))) print('Killing PID {0}...'.format(str(hcatProcess.pid)))
hcatProcess.kill() hcatProcess.kill()
hcatProcess = subprocess.Popen( hcatProcess = subprocess.Popen(
"{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 7 -1 ?s?d ?1?1?1?1 {word_lists}/rockyou.txt " "{hcatBin} -m {hash_type} {hash_file} --remove -o {hash_file}.out -a 7 -1 ?s?d ?1?1?1?1 {wordlist} "
"{tuning} --potfile-path={hate_path}/hashcat.pot".format( "{tuning} --potfile-path={hate_path}/hashcat.pot".format(
hcatBin=hcatBin, hcatBin=hcatBin,
hash_type=hcatHashType, hash_type=hcatHashType,
hash_file=hcatHashFile, hash_file=hcatHashFile,
session_name=os.path.basename(hcatHashFile), session_name=os.path.basename(hcatHashFile),
word_lists=hcatWordlists, wordlist=wordlist,
tuning=hcatTuning, tuning=hcatTuning,
hate_path=hate_path), shell=True) hate_path=hate_path), shell=True)
try: try:
hcatProcess.wait() hcatProcess.wait()
except KeyboardInterrupt: except KeyboardInterrupt:
print('Killing PID {0}...'.format(str(hcatProcess.pid))) print('Killing PID {0}...'.format(str(hcatProcess.pid)))
hcatProcess.kill() hcatProcess.kill()
hcatHybridCount = lineCount(hcatHashFile + ".out") - hcatHashCracked hcatHybridCount = lineCount(hcatHashFile + ".out") - hcatHashCracked
# YOLO Combination Attack # YOLO Combination Attack