From 66066603294b9e29de7e435633dfd1c35be03459 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sat, 27 Jul 2019 18:32:25 -0500 Subject: [PATCH 01/25] Add Pipal menu --- PACK/maskgen.py | 0 PACK/policygen.py | 0 PACK/rulegen.py | 0 PACK/statsgen.py | 0 hashcat-utils/bin/cleanup-rules.app | Bin hashcat-utils/bin/cleanup-rules.bin | Bin hashcat-utils/bin/cleanup-rules.exe | Bin hashcat-utils/bin/combinator.app | Bin hashcat-utils/bin/combinator.bin | Bin hashcat-utils/bin/combinator.exe | Bin hashcat-utils/bin/combinator3.app | Bin hashcat-utils/bin/combinator3.bin | Bin hashcat-utils/bin/combinator3.exe | Bin hashcat-utils/bin/combipow.app | Bin hashcat-utils/bin/combipow.bin | Bin hashcat-utils/bin/combipow.exe | Bin hashcat-utils/bin/cutb.app | Bin hashcat-utils/bin/cutb.bin | Bin hashcat-utils/bin/cutb.exe | Bin hashcat-utils/bin/expander.app | Bin hashcat-utils/bin/expander.bin | Bin hashcat-utils/bin/expander.exe | Bin hashcat-utils/bin/gate.app | Bin hashcat-utils/bin/gate.bin | Bin hashcat-utils/bin/gate.exe | Bin hashcat-utils/bin/generate-rules.app | Bin hashcat-utils/bin/generate-rules.bin | Bin hashcat-utils/bin/generate-rules.exe | Bin hashcat-utils/bin/hcstatgen.app | Bin hashcat-utils/bin/hcstatgen.bin | Bin hashcat-utils/bin/hcstatgen.exe | Bin hashcat-utils/bin/keyspace.app | Bin hashcat-utils/bin/keyspace.bin | Bin hashcat-utils/bin/keyspace.exe | Bin hashcat-utils/bin/len.app | Bin hashcat-utils/bin/len.bin | Bin hashcat-utils/bin/len.exe | Bin hashcat-utils/bin/mli2.app | Bin hashcat-utils/bin/mli2.bin | Bin hashcat-utils/bin/mli2.exe | Bin hashcat-utils/bin/morph.app | Bin hashcat-utils/bin/morph.bin | Bin hashcat-utils/bin/morph.exe | Bin hashcat-utils/bin/permute.app | Bin hashcat-utils/bin/permute.bin | Bin hashcat-utils/bin/permute.exe | Bin hashcat-utils/bin/permute_exist.app | Bin hashcat-utils/bin/permute_exist.bin | Bin hashcat-utils/bin/permute_exist.exe | Bin hashcat-utils/bin/prepare.app | Bin hashcat-utils/bin/prepare.bin | Bin hashcat-utils/bin/prepare.exe | Bin hashcat-utils/bin/req-exclude.app | Bin hashcat-utils/bin/req-exclude.bin | Bin hashcat-utils/bin/req-exclude.exe | Bin hashcat-utils/bin/req-include.app | Bin hashcat-utils/bin/req-include.bin | Bin hashcat-utils/bin/req-include.exe | Bin hashcat-utils/bin/rli.app | Bin hashcat-utils/bin/rli.bin | Bin hashcat-utils/bin/rli.exe | Bin hashcat-utils/bin/rli2.app | Bin hashcat-utils/bin/rli2.bin | Bin hashcat-utils/bin/rli2.exe | Bin hashcat-utils/bin/seprule.pl | 0 hashcat-utils/bin/splitlen.app | Bin hashcat-utils/bin/splitlen.bin | Bin hashcat-utils/bin/splitlen.exe | Bin hashcat-utils/bin/strip-bsn.app | Bin hashcat-utils/bin/strip-bsn.bin | Bin hashcat-utils/bin/strip-bsn.exe | Bin hashcat-utils/bin/strip-bsr.app | Bin hashcat-utils/bin/strip-bsr.bin | Bin hashcat-utils/bin/strip-bsr.exe | Bin hashcat-utils/bin/tmesis.pl | 0 hashcat-utils/bin/topmorph.pl | 0 hate_crack.py | 4 +++- princeprocessor/pp64.app | Bin princeprocessor/pp64.bin | Bin wordlist_optimizer.py | 0 80 files changed, 3 insertions(+), 1 deletion(-) mode change 100755 => 100644 PACK/maskgen.py mode change 100755 => 100644 PACK/policygen.py mode change 100755 => 100644 PACK/rulegen.py mode change 100755 => 100644 PACK/statsgen.py mode change 100755 => 100644 hashcat-utils/bin/cleanup-rules.app mode change 100755 => 100644 hashcat-utils/bin/cleanup-rules.bin mode change 100755 => 100644 hashcat-utils/bin/cleanup-rules.exe mode change 100755 => 100644 hashcat-utils/bin/combinator.app mode change 100755 => 100644 hashcat-utils/bin/combinator.bin mode change 100755 => 100644 hashcat-utils/bin/combinator.exe mode change 100755 => 100644 hashcat-utils/bin/combinator3.app mode change 100755 => 100644 hashcat-utils/bin/combinator3.bin mode change 100755 => 100644 hashcat-utils/bin/combinator3.exe mode change 100755 => 100644 hashcat-utils/bin/combipow.app mode change 100755 => 100644 hashcat-utils/bin/combipow.bin mode change 100755 => 100644 hashcat-utils/bin/combipow.exe mode change 100755 => 100644 hashcat-utils/bin/cutb.app mode change 100755 => 100644 hashcat-utils/bin/cutb.bin mode change 100755 => 100644 hashcat-utils/bin/cutb.exe mode change 100755 => 100644 hashcat-utils/bin/expander.app mode change 100755 => 100644 hashcat-utils/bin/expander.bin mode change 100755 => 100644 hashcat-utils/bin/expander.exe mode change 100755 => 100644 hashcat-utils/bin/gate.app mode change 100755 => 100644 hashcat-utils/bin/gate.bin mode change 100755 => 100644 hashcat-utils/bin/gate.exe mode change 100755 => 100644 hashcat-utils/bin/generate-rules.app mode change 100755 => 100644 hashcat-utils/bin/generate-rules.bin mode change 100755 => 100644 hashcat-utils/bin/generate-rules.exe mode change 100755 => 100644 hashcat-utils/bin/hcstatgen.app mode change 100755 => 100644 hashcat-utils/bin/hcstatgen.bin mode change 100755 => 100644 hashcat-utils/bin/hcstatgen.exe mode change 100755 => 100644 hashcat-utils/bin/keyspace.app mode change 100755 => 100644 hashcat-utils/bin/keyspace.bin mode change 100755 => 100644 hashcat-utils/bin/keyspace.exe mode change 100755 => 100644 hashcat-utils/bin/len.app mode change 100755 => 100644 hashcat-utils/bin/len.bin mode change 100755 => 100644 hashcat-utils/bin/len.exe mode change 100755 => 100644 hashcat-utils/bin/mli2.app mode change 100755 => 100644 hashcat-utils/bin/mli2.bin mode change 100755 => 100644 hashcat-utils/bin/mli2.exe mode change 100755 => 100644 hashcat-utils/bin/morph.app mode change 100755 => 100644 hashcat-utils/bin/morph.bin mode change 100755 => 100644 hashcat-utils/bin/morph.exe mode change 100755 => 100644 hashcat-utils/bin/permute.app mode change 100755 => 100644 hashcat-utils/bin/permute.bin mode change 100755 => 100644 hashcat-utils/bin/permute.exe mode change 100755 => 100644 hashcat-utils/bin/permute_exist.app mode change 100755 => 100644 hashcat-utils/bin/permute_exist.bin mode change 100755 => 100644 hashcat-utils/bin/permute_exist.exe mode change 100755 => 100644 hashcat-utils/bin/prepare.app mode change 100755 => 100644 hashcat-utils/bin/prepare.bin mode change 100755 => 100644 hashcat-utils/bin/prepare.exe mode change 100755 => 100644 hashcat-utils/bin/req-exclude.app mode change 100755 => 100644 hashcat-utils/bin/req-exclude.bin mode change 100755 => 100644 hashcat-utils/bin/req-exclude.exe mode change 100755 => 100644 hashcat-utils/bin/req-include.app mode change 100755 => 100644 hashcat-utils/bin/req-include.bin mode change 100755 => 100644 hashcat-utils/bin/req-include.exe mode change 100755 => 100644 hashcat-utils/bin/rli.app mode change 100755 => 100644 hashcat-utils/bin/rli.bin mode change 100755 => 100644 hashcat-utils/bin/rli.exe mode change 100755 => 100644 hashcat-utils/bin/rli2.app mode change 100755 => 100644 hashcat-utils/bin/rli2.bin mode change 100755 => 100644 hashcat-utils/bin/rli2.exe mode change 100755 => 100644 hashcat-utils/bin/seprule.pl mode change 100755 => 100644 hashcat-utils/bin/splitlen.app mode change 100755 => 100644 hashcat-utils/bin/splitlen.bin mode change 100755 => 100644 hashcat-utils/bin/splitlen.exe mode change 100755 => 100644 hashcat-utils/bin/strip-bsn.app mode change 100755 => 100644 hashcat-utils/bin/strip-bsn.bin mode change 100755 => 100644 hashcat-utils/bin/strip-bsn.exe mode change 100755 => 100644 hashcat-utils/bin/strip-bsr.app mode change 100755 => 100644 hashcat-utils/bin/strip-bsr.bin mode change 100755 => 100644 hashcat-utils/bin/strip-bsr.exe mode change 100755 => 100644 hashcat-utils/bin/tmesis.pl mode change 100755 => 100644 hashcat-utils/bin/topmorph.pl mode change 100755 => 100644 hate_crack.py mode change 100755 => 100644 princeprocessor/pp64.app mode change 100755 => 100644 princeprocessor/pp64.bin mode change 100755 => 100644 wordlist_optimizer.py diff --git a/PACK/maskgen.py b/PACK/maskgen.py old mode 100755 new mode 100644 diff --git a/PACK/policygen.py b/PACK/policygen.py old mode 100755 new mode 100644 diff --git a/PACK/rulegen.py b/PACK/rulegen.py old mode 100755 new mode 100644 diff --git a/PACK/statsgen.py b/PACK/statsgen.py old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/cleanup-rules.app b/hashcat-utils/bin/cleanup-rules.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/cleanup-rules.bin b/hashcat-utils/bin/cleanup-rules.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/cleanup-rules.exe b/hashcat-utils/bin/cleanup-rules.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combinator.app b/hashcat-utils/bin/combinator.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combinator.bin b/hashcat-utils/bin/combinator.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combinator.exe b/hashcat-utils/bin/combinator.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combinator3.app b/hashcat-utils/bin/combinator3.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combinator3.bin b/hashcat-utils/bin/combinator3.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combinator3.exe b/hashcat-utils/bin/combinator3.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combipow.app b/hashcat-utils/bin/combipow.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combipow.bin b/hashcat-utils/bin/combipow.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/combipow.exe b/hashcat-utils/bin/combipow.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/cutb.app b/hashcat-utils/bin/cutb.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/cutb.bin b/hashcat-utils/bin/cutb.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/cutb.exe b/hashcat-utils/bin/cutb.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/expander.app b/hashcat-utils/bin/expander.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/expander.bin b/hashcat-utils/bin/expander.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/expander.exe b/hashcat-utils/bin/expander.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/gate.app b/hashcat-utils/bin/gate.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/gate.bin b/hashcat-utils/bin/gate.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/gate.exe b/hashcat-utils/bin/gate.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/generate-rules.app b/hashcat-utils/bin/generate-rules.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/generate-rules.bin b/hashcat-utils/bin/generate-rules.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/generate-rules.exe b/hashcat-utils/bin/generate-rules.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/hcstatgen.app b/hashcat-utils/bin/hcstatgen.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/hcstatgen.bin b/hashcat-utils/bin/hcstatgen.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/hcstatgen.exe b/hashcat-utils/bin/hcstatgen.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/keyspace.app b/hashcat-utils/bin/keyspace.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/keyspace.bin b/hashcat-utils/bin/keyspace.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/keyspace.exe b/hashcat-utils/bin/keyspace.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/len.app b/hashcat-utils/bin/len.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/len.bin b/hashcat-utils/bin/len.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/len.exe b/hashcat-utils/bin/len.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/mli2.app b/hashcat-utils/bin/mli2.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/mli2.bin b/hashcat-utils/bin/mli2.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/mli2.exe b/hashcat-utils/bin/mli2.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/morph.app b/hashcat-utils/bin/morph.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/morph.bin b/hashcat-utils/bin/morph.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/morph.exe b/hashcat-utils/bin/morph.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/permute.app b/hashcat-utils/bin/permute.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/permute.bin b/hashcat-utils/bin/permute.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/permute.exe b/hashcat-utils/bin/permute.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/permute_exist.app b/hashcat-utils/bin/permute_exist.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/permute_exist.bin b/hashcat-utils/bin/permute_exist.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/permute_exist.exe b/hashcat-utils/bin/permute_exist.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/prepare.app b/hashcat-utils/bin/prepare.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/prepare.bin b/hashcat-utils/bin/prepare.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/prepare.exe b/hashcat-utils/bin/prepare.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/req-exclude.app b/hashcat-utils/bin/req-exclude.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/req-exclude.bin b/hashcat-utils/bin/req-exclude.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/req-exclude.exe b/hashcat-utils/bin/req-exclude.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/req-include.app b/hashcat-utils/bin/req-include.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/req-include.bin b/hashcat-utils/bin/req-include.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/req-include.exe b/hashcat-utils/bin/req-include.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/rli.app b/hashcat-utils/bin/rli.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/rli.bin b/hashcat-utils/bin/rli.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/rli.exe b/hashcat-utils/bin/rli.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/rli2.app b/hashcat-utils/bin/rli2.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/rli2.bin b/hashcat-utils/bin/rli2.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/rli2.exe b/hashcat-utils/bin/rli2.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/seprule.pl b/hashcat-utils/bin/seprule.pl old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/splitlen.app b/hashcat-utils/bin/splitlen.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/splitlen.bin b/hashcat-utils/bin/splitlen.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/splitlen.exe b/hashcat-utils/bin/splitlen.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/strip-bsn.app b/hashcat-utils/bin/strip-bsn.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/strip-bsn.bin b/hashcat-utils/bin/strip-bsn.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/strip-bsn.exe b/hashcat-utils/bin/strip-bsn.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/strip-bsr.app b/hashcat-utils/bin/strip-bsr.app old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/strip-bsr.bin b/hashcat-utils/bin/strip-bsr.bin old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/strip-bsr.exe b/hashcat-utils/bin/strip-bsr.exe old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/tmesis.pl b/hashcat-utils/bin/tmesis.pl old mode 100755 new mode 100644 diff --git a/hashcat-utils/bin/topmorph.pl b/hashcat-utils/bin/topmorph.pl old mode 100755 new mode 100644 diff --git a/hate_crack.py b/hate_crack.py old mode 100755 new mode 100644 index ed5b9c6..c4a47e1 --- a/hate_crack.py +++ b/hate_crack.py @@ -1172,7 +1172,8 @@ def main(): print("\t(10) YOLO Combinator Attack") print("\t(11) Middle Combinator Attack") print("\t(12) Thorough Combinator Attack") - print("\n\t(96) Export Output to Excel Format") + print("\n\t(95) Analyze hashes with Pipal") + print("\t(96) Export Output to Excel Format") print("\t(97) Display Cracked Hashes") print("\t(98) Display README") print("\t(99) Quit") @@ -1188,6 +1189,7 @@ def main(): "10": yolo_combination, "11": middle_combinator, "12": thorough_combinator, + "95": pipal, "96": export_excel, "97": show_results, "98": show_readme, diff --git a/princeprocessor/pp64.app b/princeprocessor/pp64.app old mode 100755 new mode 100644 diff --git a/princeprocessor/pp64.bin b/princeprocessor/pp64.bin old mode 100755 new mode 100644 diff --git a/wordlist_optimizer.py b/wordlist_optimizer.py old mode 100755 new mode 100644 From c855228b216593458f2e73a4674476bd7813d489 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sat, 27 Jul 2019 18:38:54 -0500 Subject: [PATCH 02/25] Add Pipal menu --- hate_crack.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hate_crack.py b/hate_crack.py index c4a47e1..a3feb7f 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1036,6 +1036,15 @@ def show_results(): else: print("No hashes were cracked :(") +# Analyze Hashes with Pipal +def pipal(): + if os.path.isfile(hcatHashFile + ".out"): + with open(hcatHashFile + ".out") as hcatOutput: + for cracked_hash in hcatOutput: + print(cracked_hash.strip()) + else: + print("No hashes were cracked :(") + # Exports output to excel file def export_excel(): From 2e632f7d82266e0d3e4dbf558266c5940ee34d81 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sat, 27 Jul 2019 18:41:45 -0500 Subject: [PATCH 03/25] Add Pipal menu --- config.json.example | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config.json.example b/config.json.example index 41dbb01..274ff05 100644 --- a/config.json.example +++ b/config.json.example @@ -13,5 +13,6 @@ "hcatThoroughBaseList": "rockyou.txt", "hcatGoodMeasureBaseList": "rockyou.txt", "hcatRules": ["best64.rule","d3ad0ne.rule", "T0XlC.rule", "dive.rule"], - "hcatPrinceBaseList": "rockyou.txt" + "hcatPrinceBaseList": "rockyou.txt", + "pipalPath": "/path/to/pipal" } \ No newline at end of file From 2c1a177982a02113d14801d150eca5d6bddd8c89 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sat, 27 Jul 2019 18:50:45 -0500 Subject: [PATCH 04/25] Add Pipal menu --- hate_crack.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index a3feb7f..52222d4 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1039,9 +1039,11 @@ def show_results(): # Analyze Hashes with Pipal def pipal(): if os.path.isfile(hcatHashFile + ".out"): + pipalFile = open(hcatHashFile + ".pipal", 'w') with open(hcatHashFile + ".out") as hcatOutput: for cracked_hash in hcatOutput: - print(cracked_hash.strip()) + password = cracked_hash.split(':') + pipalFile.write(password[1] + "\n") else: print("No hashes were cracked :(") From 0fb1add45dbb5fe01006842a2a093e214019bafe Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sat, 27 Jul 2019 19:53:45 -0500 Subject: [PATCH 05/25] Add Pipal menu --- hate_crack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index 52222d4..d45c1f0 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1043,7 +1043,7 @@ def pipal(): with open(hcatHashFile + ".out") as hcatOutput: for cracked_hash in hcatOutput: password = cracked_hash.split(':') - pipalFile.write(password[1] + "\n") + pipalFile.write(password[6]) else: print("No hashes were cracked :(") From ea32ce8f993caf5e09afa6ae493f9902d4b8f225 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sat, 27 Jul 2019 20:26:06 -0500 Subject: [PATCH 06/25] Add Pipal menu --- hate_crack.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hate_crack.py b/hate_crack.py index d45c1f0..d650f3f 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -35,6 +35,7 @@ hcatBin = config_parser['hcatBin'] hcatTuning = config_parser['hcatTuning'] hcatWordlists = config_parser['hcatWordlists'] hcatOptimizedWordlists = config_parser['hcatOptimizedWordlists'] +pipalPath = config_parser['pipalPath'] try: hcatRules = config_parser['hcatRules'] @@ -1044,6 +1045,17 @@ def pipal(): for cracked_hash in hcatOutput: password = cracked_hash.split(':') pipalFile.write(password[6]) + pipalProcess = subprocess.Popen( + "{pipal_path} {pipal_file} --output {pipal_out} ".format( + pipal_path=pipalPath, + pipal_file=pipalFile, + pipal_out="pipal.out"), + shell=True) + try: + pipalProcess.wait() + except KeyboardInterrupt: + print('Killing PID {0}...'.format(str(pipalProcess.pid))) + pipalProcess.kill() else: print("No hashes were cracked :(") From d568c4ea862c3c5aed23324aa8853a98f1352791 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sat, 27 Jul 2019 20:49:32 -0500 Subject: [PATCH 07/25] Add Pipal menu --- hate_crack.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index d650f3f..3e93844 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1045,10 +1045,11 @@ def pipal(): for cracked_hash in hcatOutput: password = cracked_hash.split(':') pipalFile.write(password[6]) + print pipalFile pipalProcess = subprocess.Popen( "{pipal_path} {pipal_file} --output {pipal_out} ".format( pipal_path=pipalPath, - pipal_file=pipalFile, + pipal_file=hcatHashFile + ".pipal", pipal_out="pipal.out"), shell=True) try: From 814d1e37854bdbd3e341df6ebdefe094e19434c3 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sat, 27 Jul 2019 21:21:40 -0500 Subject: [PATCH 08/25] Add Pipal menu --- hate_crack.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/hate_crack.py b/hate_crack.py index 3e93844..63611cf 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -35,7 +35,12 @@ hcatBin = config_parser['hcatBin'] hcatTuning = config_parser['hcatTuning'] hcatWordlists = config_parser['hcatWordlists'] hcatOptimizedWordlists = config_parser['hcatOptimizedWordlists'] -pipalPath = config_parser['pipalPath'] + +try: + pipalPath = config_parser['pipalPath'] +except KeyError as e: + print('{0} is not defined in config.json using defaults from config.json.example'.format(e)) + pipalPath = default_config['pipalPath'] try: hcatRules = config_parser['hcatRules'] @@ -1043,8 +1048,8 @@ def pipal(): pipalFile = open(hcatHashFile + ".pipal", 'w') with open(hcatHashFile + ".out") as hcatOutput: for cracked_hash in hcatOutput: - password = cracked_hash.split(':') - pipalFile.write(password[6]) + password = cracked_hash.rsplit(':',1) + pipalFile.write(password[0]) print pipalFile pipalProcess = subprocess.Popen( "{pipal_path} {pipal_file} --output {pipal_out} ".format( From 033b65593e3f8031975dc53121a59e1a549aad2c Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 28 Jul 2019 04:27:02 -0500 Subject: [PATCH 09/25] Add Pipal menu --- hate_crack.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hate_crack.py b/hate_crack.py index 63611cf..6de093a 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1048,8 +1048,8 @@ def pipal(): pipalFile = open(hcatHashFile + ".pipal", 'w') with open(hcatHashFile + ".out") as hcatOutput: for cracked_hash in hcatOutput: - password = cracked_hash.rsplit(':',1) - pipalFile.write(password[0]) + password = cracked_hash.split(':') + pipalFile.write(password[-1]) print pipalFile pipalProcess = subprocess.Popen( "{pipal_path} {pipal_file} --output {pipal_out} ".format( From 6ee9521cf6e15de823dfad66dfc9b39cd683c498 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 28 Jul 2019 04:34:09 -0500 Subject: [PATCH 10/25] Add Pipal menu --- hate_crack.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index 6de093a..bdf492d 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1055,13 +1055,15 @@ def pipal(): "{pipal_path} {pipal_file} --output {pipal_out} ".format( pipal_path=pipalPath, pipal_file=hcatHashFile + ".pipal", - pipal_out="pipal.out"), + pipal_out=hcatHashFile + ".pipal.out"), shell=True) try: pipalProcess.wait() except KeyboardInterrupt: print('Killing PID {0}...'.format(str(pipalProcess.pid))) pipalProcess.kill() + os.remove(hcatHashFile + ".pipal") + print "Pipal file is at " + hcatHashFile + ".pipal.out\n" else: print("No hashes were cracked :(") From 4a520dba1ade38c310543d6bdc83fd2dbae77c69 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 28 Jul 2019 04:40:36 -0500 Subject: [PATCH 11/25] Add Pipal menu --- readme.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 65ac8a5..3c6ccff 100644 --- a/readme.md +++ b/readme.md @@ -57,7 +57,7 @@ $ ./hate_crack.py 1000 \ Y // __ \| | \ ___/ \ \____| | \// __ \\ \___| < \___|_ /(____ /__| \___ >____\______ /|__| (____ /\___ >__|_ \ \/ \/ \/_____/ \/ \/ \/ \/ - Version 1.06 + Version 1.08 (1) Quick Crack @@ -73,6 +73,7 @@ $ ./hate_crack.py 1000 (11) Middle Combinator Attack (12) Thorough Combinator Attack + (95) Analyze hashes with Pipal (96) Export Output to Excel Format (97) Display Cracked Hashes (98) Display README @@ -179,6 +180,9 @@ https://jeffh.net/2018/04/26/combinator_methods/ ------------------------------------------------------------------- ### Version History +Version 1.08 + Added a Pipal menu Option to analyze hashes. https://github.com/digininja/pipal + Version 1.07 Minor bug fixes with pwdump formating and unhexify function From 458bc780080927a81898f84e887ab9edd8e2dead Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 28 Jul 2019 04:41:07 -0500 Subject: [PATCH 12/25] Add Pipal menu --- hate_crack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index bdf492d..ed08bf8 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -164,7 +164,7 @@ def ascii_art(): \ Y // __ \| | \ ___/ \ \____| | \// __ \\ \___| < \___|_ /(____ /__| \___ >____\______ /|__| (____ /\___ >__|_ \ \/ \/ \/_____/ \/ \/ \/ \/ - Version 1.07 + Version 1.08 """) From 7553baf4695ddadae24c0186e8eb1e81a2c42845 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Wed, 31 Jul 2019 20:41:16 -0500 Subject: [PATCH 13/25] Add error checking --- hate_crack.py | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/hate_crack.py b/hate_crack.py index ed08bf8..aeaf4b5 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1044,28 +1044,32 @@ def show_results(): # Analyze Hashes with Pipal def pipal(): - if os.path.isfile(hcatHashFile + ".out"): - pipalFile = open(hcatHashFile + ".pipal", 'w') - with open(hcatHashFile + ".out") as hcatOutput: - for cracked_hash in hcatOutput: - password = cracked_hash.split(':') - pipalFile.write(password[-1]) - print pipalFile - pipalProcess = subprocess.Popen( - "{pipal_path} {pipal_file} --output {pipal_out} ".format( - pipal_path=pipalPath, - pipal_file=hcatHashFile + ".pipal", - pipal_out=hcatHashFile + ".pipal.out"), - shell=True) - try: - pipalProcess.wait() - except KeyboardInterrupt: - print('Killing PID {0}...'.format(str(pipalProcess.pid))) - pipalProcess.kill() - os.remove(hcatHashFile + ".pipal") - print "Pipal file is at " + hcatHashFile + ".pipal.out\n" + if os.path.isfile(pipalPath): + if os.path.isfile(hcatHashFile + ".out"): + pipalFile = open(hcatHashFile + ".pipal", 'w') + with open(hcatHashFile + ".out") as hcatOutput: + for cracked_hash in hcatOutput: + password = cracked_hash.split(':') + pipalFile.write(password[-1]) + print pipalFile + pipalProcess = subprocess.Popen( + "{pipal_path} {pipal_file} --output {pipal_out} ".format( + pipal_path=pipalPath, + pipal_file=hcatHashFile + ".pipal", + pipal_out=hcatHashFile + ".pipal.out"), + shell=True) + try: + pipalProcess.wait() + except KeyboardInterrupt: + print('Killing PID {0}...'.format(str(pipalProcess.pid))) + pipalProcess.kill() + os.remove(hcatHashFile + ".pipal") + print "Pipal file is at " + hcatHashFile + ".pipal.out\n" + else: + print("No hashes were cracked :(") else: - print("No hashes were cracked :(") + print("Pipal path is either not set, or is still the default path.") + # Exports output to excel file def export_excel(): From 73c58b16bf7611c13954b1d3188f547604045bc1 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Wed, 31 Jul 2019 20:50:09 -0500 Subject: [PATCH 14/25] Add error checking --- hate_crack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index aeaf4b5..d3f6618 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1068,7 +1068,7 @@ def pipal(): else: print("No hashes were cracked :(") else: - print("Pipal path is either not set, or is still the default path.") + print("The path to pipal.rb is either not set, or is incorrect.") # Exports output to excel file From 6ce39464f75ff797e6826d787d69710392e7978b Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 21:06:13 -0500 Subject: [PATCH 15/25] Add error checking --- hate_crack.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index d3f6618..5a4ec42 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1044,13 +1044,21 @@ def show_results(): # Analyze Hashes with Pipal def pipal(): + if hcatHashType == "1000": + combine_ntlm_output() + if os.path.isfile(pipalPath): if os.path.isfile(hcatHashFile + ".out"): pipalFile = open(hcatHashFile + ".pipal", 'w') with open(hcatHashFile + ".out") as hcatOutput: for cracked_hash in hcatOutput: password = cracked_hash.split(':') - pipalFile.write(password[-1]) + clearTextPass = password[-1]) + match = re.search(r'^\$HEX\[(\S+)\]', clearTextPass) + if match: + clearTextPass = binascii.unhexlify(match.group(1)).decode('iso-8859-9') + pipalFile.write(clearTextPass) + print pipalFile pipalProcess = subprocess.Popen( "{pipal_path} {pipal_file} --output {pipal_out} ".format( From d03f9a51e27998ce16f97ae96c30104b20b9e316 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 21:10:26 -0500 Subject: [PATCH 16/25] Combine Files for hashtype 1000 and Unhex passwords --- hate_crack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index 5a4ec42..01b00e6 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1053,7 +1053,7 @@ def pipal(): with open(hcatHashFile + ".out") as hcatOutput: for cracked_hash in hcatOutput: password = cracked_hash.split(':') - clearTextPass = password[-1]) + clearTextPass = password[-1] match = re.search(r'^\$HEX\[(\S+)\]', clearTextPass) if match: clearTextPass = binascii.unhexlify(match.group(1)).decode('iso-8859-9') From 7f344410ca61177b4353885a55cb95a2512d4bae Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 21:19:24 -0500 Subject: [PATCH 17/25] Test pipal --- hate_crack.py | 1 + 1 file changed, 1 insertion(+) diff --git a/hate_crack.py b/hate_crack.py index 01b00e6..62607da 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1046,6 +1046,7 @@ def show_results(): def pipal(): if hcatHashType == "1000": combine_ntlm_output() + print (hcatHashFile + ".out\n"): if os.path.isfile(pipalPath): if os.path.isfile(hcatHashFile + ".out"): From 99187d81c6343ac02adce33a7b6a07a0c04bb2c9 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 21:22:40 -0500 Subject: [PATCH 18/25] Test pipal --- hate_crack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index 62607da..665d36e 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1046,7 +1046,7 @@ def show_results(): def pipal(): if hcatHashType == "1000": combine_ntlm_output() - print (hcatHashFile + ".out\n"): + print(hcatHashFile + ".out\n") if os.path.isfile(pipalPath): if os.path.isfile(hcatHashFile + ".out"): From b1be108af34153f39d89be526af4425c668c1da0 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 21:59:08 -0500 Subject: [PATCH 19/25] Hashtype 1000 fix --- hate_crack.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/hate_crack.py b/hate_crack.py index 665d36e..ec2216a 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1044,14 +1044,17 @@ def show_results(): # Analyze Hashes with Pipal def pipal(): + hcatHashFilePipal = hcatHashFile if hcatHashType == "1000": combine_ntlm_output() - print(hcatHashFile + ".out\n") + hcatHashFilePipal = hcatHashFileOrig + + print(hcatHashFilePipal + ".out\n") if os.path.isfile(pipalPath): - if os.path.isfile(hcatHashFile + ".out"): - pipalFile = open(hcatHashFile + ".pipal", 'w') - with open(hcatHashFile + ".out") as hcatOutput: + if os.path.isfile(hcatHashFilePipal + ".out"): + pipalFile = open(hcatHashFilePipal + ".pipal", 'w') + with open(hcatHashFilePipal + ".out") as hcatOutput: for cracked_hash in hcatOutput: password = cracked_hash.split(':') clearTextPass = password[-1] @@ -1073,7 +1076,7 @@ def pipal(): print('Killing PID {0}...'.format(str(pipalProcess.pid))) pipalProcess.kill() os.remove(hcatHashFile + ".pipal") - print "Pipal file is at " + hcatHashFile + ".pipal.out\n" + print "Pipal file is at " + hcatHashFilePipal + ".pipal.out\n" else: print("No hashes were cracked :(") else: From f5a4095935940c156c2ff0efe38502d2ec0b8717 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 22:08:15 -0500 Subject: [PATCH 20/25] Hashtype 1000 fix --- hate_crack.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hate_crack.py b/hate_crack.py index ec2216a..1b20157 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1053,7 +1053,7 @@ def pipal(): if os.path.isfile(pipalPath): if os.path.isfile(hcatHashFilePipal + ".out"): - pipalFile = open(hcatHashFilePipal + ".pipal", 'w') + pipalFile = open(hcatHashFilePipal + ".passwords", 'w') with open(hcatHashFilePipal + ".out") as hcatOutput: for cracked_hash in hcatOutput: password = cracked_hash.split(':') @@ -1067,8 +1067,8 @@ def pipal(): pipalProcess = subprocess.Popen( "{pipal_path} {pipal_file} --output {pipal_out} ".format( pipal_path=pipalPath, - pipal_file=hcatHashFile + ".pipal", - pipal_out=hcatHashFile + ".pipal.out"), + pipal_file=hcatHashFilePipal + ".passwords", + pipal_out=hcatHashFilePipal + ".pipal.out"), shell=True) try: pipalProcess.wait() From c5a17af0c5c2b273a9f4c33a4c66ea59338eacbd Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 22:09:46 -0500 Subject: [PATCH 21/25] Hashtype 1000 fix --- hate_crack.py | 1 - 1 file changed, 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index 1b20157..303ce6e 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1075,7 +1075,6 @@ def pipal(): except KeyboardInterrupt: print('Killing PID {0}...'.format(str(pipalProcess.pid))) pipalProcess.kill() - os.remove(hcatHashFile + ".pipal") print "Pipal file is at " + hcatHashFilePipal + ".pipal.out\n" else: print("No hashes were cracked :(") From 07ecd5ee68c6559b7be5846256b1c577a293e443 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 22:15:55 -0500 Subject: [PATCH 22/25] Hashtype 1000 fix --- hate_crack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hate_crack.py b/hate_crack.py index 303ce6e..45fc0ef 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1068,7 +1068,7 @@ def pipal(): "{pipal_path} {pipal_file} --output {pipal_out} ".format( pipal_path=pipalPath, pipal_file=hcatHashFilePipal + ".passwords", - pipal_out=hcatHashFilePipal + ".pipal.out"), + pipal_out=hcatHashFileOrig + ".pipal.txt"), shell=True) try: pipalProcess.wait() From 2d24180231620db5bad16c890585ab4da61a14cf Mon Sep 17 00:00:00 2001 From: Jeff H Date: Sun, 18 Aug 2019 22:23:29 -0500 Subject: [PATCH 23/25] Hashtype 1000 fix --- hate_crack.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hate_crack.py b/hate_crack.py index 45fc0ef..06152f0 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -865,6 +865,8 @@ def cleanup(): os.remove(hcatHashFileOrig + ".lm.cracked") if os.path.exists(hcatHashFileOrig + ".working"): os.remove(hcatHashFileOrig + ".working") + if os.path.exists(hcatHashFileOrig + ".passwords"): + os.remove(hcatHashFileOrig + ".passwords") except KeyboardInterrupt: #incase someone mashes the Control+C it will still cleanup cleanup() @@ -1068,14 +1070,14 @@ def pipal(): "{pipal_path} {pipal_file} --output {pipal_out} ".format( pipal_path=pipalPath, pipal_file=hcatHashFilePipal + ".passwords", - pipal_out=hcatHashFileOrig + ".pipal.txt"), + pipal_out=hcatHashFileOrig + ".pipal"), shell=True) try: pipalProcess.wait() except KeyboardInterrupt: print('Killing PID {0}...'.format(str(pipalProcess.pid))) pipalProcess.kill() - print "Pipal file is at " + hcatHashFilePipal + ".pipal.out\n" + print "Pipal file is at " + hcatHashFilePipal + ".pipal\n" else: print("No hashes were cracked :(") else: From cb103b4e8e8ecc4b37bb808828df78e3c0593c7f Mon Sep 17 00:00:00 2001 From: Jeff H Date: Mon, 19 Aug 2019 12:08:09 -0500 Subject: [PATCH 24/25] Hashtype 1000 fix --- hate_crack.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hate_crack.py b/hate_crack.py index 06152f0..b590fda 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1051,8 +1051,6 @@ def pipal(): combine_ntlm_output() hcatHashFilePipal = hcatHashFileOrig - print(hcatHashFilePipal + ".out\n") - if os.path.isfile(pipalPath): if os.path.isfile(hcatHashFilePipal + ".out"): pipalFile = open(hcatHashFilePipal + ".passwords", 'w') @@ -1064,13 +1062,13 @@ def pipal(): if match: clearTextPass = binascii.unhexlify(match.group(1)).decode('iso-8859-9') pipalFile.write(clearTextPass) + pipalFile.close() - print pipalFile pipalProcess = subprocess.Popen( "{pipal_path} {pipal_file} --output {pipal_out} ".format( pipal_path=pipalPath, pipal_file=hcatHashFilePipal + ".passwords", - pipal_out=hcatHashFileOrig + ".pipal"), + pipal_out=hcatHashFilePipal + ".pipal"), shell=True) try: pipalProcess.wait() From 453b8c44cfcd43fa894639dc1095aca30f345ed9 Mon Sep 17 00:00:00 2001 From: Jeff H Date: Mon, 19 Aug 2019 12:31:08 -0500 Subject: [PATCH 25/25] Hashtype 1000 fix --- hate_crack.py | 1 + 1 file changed, 1 insertion(+) diff --git a/hate_crack.py b/hate_crack.py index b590fda..ec13070 100644 --- a/hate_crack.py +++ b/hate_crack.py @@ -1082,6 +1082,7 @@ def pipal(): print("The path to pipal.rb is either not set, or is incorrect.") + # Exports output to excel file def export_excel():