From 035cb701b75d7af8424f9e8f2b5487f6ace935fc Mon Sep 17 00:00:00 2001 From: rohit Date: Tue, 6 Apr 2021 22:46:38 +0530 Subject: [PATCH 1/6] Started making menu driven program --- .gitignore | 1 + Discovering-Subdomains/program.py | 2 +- imports.py | 0 main.py | 84 +++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 imports.py create mode 100644 main.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..5890b098 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +test.py diff --git a/Discovering-Subdomains/program.py b/Discovering-Subdomains/program.py index ccad023a..99f80aea 100644 --- a/Discovering-Subdomains/program.py +++ b/Discovering-Subdomains/program.py @@ -22,7 +22,7 @@ pass except KeyboardInterrupt: # if the user does ctrl+c - print(Hello user, you have pressed ctrl+c, so terminating!) + print("Hello user, you have pressed ctrl+c, so terminating!") sys.exit() else: print("[+] Discovered subdomain:", url) diff --git a/imports.py b/imports.py new file mode 100644 index 00000000..e69de29b diff --git a/main.py b/main.py new file mode 100644 index 00000000..261ad1b1 --- /dev/null +++ b/main.py @@ -0,0 +1,84 @@ +import sys +from os import chdir + +SCRIPTS = { + "403 Bypass" : { + "path_to_directory" : "./403Bypass", + "program_name": "403bypasser.py", + "arguments" : ['domain', 'path'], + "cli_args_required" : True + }, + + "Checking Website" : { + "path_to_directory" : "./Checking_website", + "program_name" : "script.py", + "cli_args_required" : False + }, + "Directory Busting" : { + "path_to_directory" : "./DirectoryBusting", + "program_name" : "directoryBuster.py", + "cli_args_required": True, + "arguments": [] + }, + "Discovering Subdomains" : { + "path_to_directory" : "./Discovering-Subdomains", + "program_name" : "program.py", + "cli_args_required": False + }, + "DOS Attack" : { + "path_to_directory" : "./dos-attack", + "program_name" : "dos.py", + "cli_args_required": False + } +} + +def print_menu(): + # Convert all the available choices to a list + keys = [*SCRIPTS] + + ## Add option to exit from the menu + keys.append("Exit") + + ## Print all the available choices + count = 1 + for key in keys: + print("{}. {}".format(count,key)) + count += 1 + + choice = int(input("\nEnter your choice: ")) + + # Check for invalid input + while choice < 0 or choice > len(keys): + print("\nError: Invalid Choice") + return print_menu() + + return keys[choice-1] + +def main(): + choice = print_menu() + if choice == "Exit": + exit(0) + + script_object = SCRIPTS[choice] + if "cli_args_required" in script_object: + if script_object["cli_args_required"]: + if "arguments" not in script_object: + print("Error: Name of command line arguments not passed in setup file") + exit(0) + else: + args = script_object["arguments"] + for arg in args: + val = input("Enter the value for argument '%s': " % arg) + sys.argv.append(val) + + chdir(script_object["path_to_directory"]) + with open(script_object["program_name"], 'r') as file: + exec(file.read(), globals(), globals()) + +if __name__ == '__main__': + # try: + # main() + # except Exception as e: + # print("An exception occurred: ") + # print(str(e)) + main() \ No newline at end of file From a957f6f6cc8ddb24c7a3e09fd6e9e2462bdf69e3 Mon Sep 17 00:00:00 2001 From: rohit Date: Wed, 7 Apr 2021 10:55:56 +0530 Subject: [PATCH 2/6] Added more scripts in the command line menu --- .gitignore | 1 + imports.py | 0 main.py | 69 ++++++++++------------- scripts.py | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 188 insertions(+), 39 deletions(-) delete mode 100644 imports.py create mode 100644 scripts.py diff --git a/.gitignore b/.gitignore index 5890b098..fba30931 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ test.py +__pycache__/ diff --git a/imports.py b/imports.py deleted file mode 100644 index e69de29b..00000000 diff --git a/main.py b/main.py index 261ad1b1..8c5fd498 100644 --- a/main.py +++ b/main.py @@ -1,50 +1,21 @@ import sys from os import chdir +from scripts import SCRIPTS -SCRIPTS = { - "403 Bypass" : { - "path_to_directory" : "./403Bypass", - "program_name": "403bypasser.py", - "arguments" : ['domain', 'path'], - "cli_args_required" : True - }, - - "Checking Website" : { - "path_to_directory" : "./Checking_website", - "program_name" : "script.py", - "cli_args_required" : False - }, - "Directory Busting" : { - "path_to_directory" : "./DirectoryBusting", - "program_name" : "directoryBuster.py", - "cli_args_required": True, - "arguments": [] - }, - "Discovering Subdomains" : { - "path_to_directory" : "./Discovering-Subdomains", - "program_name" : "program.py", - "cli_args_required": False - }, - "DOS Attack" : { - "path_to_directory" : "./dos-attack", - "program_name" : "dos.py", - "cli_args_required": False - } -} def print_menu(): # Convert all the available choices to a list keys = [*SCRIPTS] - ## Add option to exit from the menu + # Add option to exit from the menu keys.append("Exit") - ## Print all the available choices + # Print all the available choices count = 1 for key in keys: - print("{}. {}".format(count,key)) + print("{}. {}".format(count, key)) count += 1 - + choice = int(input("\nEnter your choice: ")) # Check for invalid input @@ -54,8 +25,10 @@ def print_menu(): return keys[choice-1] + def main(): choice = print_menu() + print() if choice == "Exit": exit(0) @@ -66,11 +39,29 @@ def main(): print("Error: Name of command line arguments not passed in setup file") exit(0) else: + print("Enter the value for argument(s).") args = script_object["arguments"] - for arg in args: - val = input("Enter the value for argument '%s': " % arg) - sys.argv.append(val) - + for arg_key in args.keys(): + arg_obj = args[arg_key] + if arg_obj["optional"]: + val = input(f'* {arg_obj["description"]} (Enter to skip / Any value to set to True)- ') + if "store_only" in arg_obj: + if len(val) > 0: + sys.argv.append(arg_key) + else: + if len(val) > 0: + if script_object["include_arg_name"]: + sys.argv.append(arg_key) + sys.argv.append(val) + else: + val = input(f'* {arg_obj["description"]} - ') + if "store_only" in arg_obj: + sys.argv.append(arg_key) + elif "positional" not in arg_obj: + sys.argv.append(arg_key) + sys.argv.append(val) + # print(sys.argv) + # return chdir(script_object["path_to_directory"]) with open(script_object["program_name"], 'r') as file: exec(file.read(), globals(), globals()) @@ -81,4 +72,4 @@ def main(): # except Exception as e: # print("An exception occurred: ") # print(str(e)) - main() \ No newline at end of file + main() diff --git a/scripts.py b/scripts.py new file mode 100644 index 00000000..0346d994 --- /dev/null +++ b/scripts.py @@ -0,0 +1,157 @@ +SCRIPTS = { + "403 Bypass": { + "path_to_directory": "./403Bypass", + "program_name": "403bypasser.py", + "cli_args_required": True, + "arguments": { + "Domain" : { + "description": "Domain", + "optional": False, + "positional" : True + }, + "Path" : { + "description": "Path", + "optional": False, + "positional" : True + }, + } + }, + + "Checking Website": { + "path_to_directory": "./Checking_website", + "program_name": "script.py", + "cli_args_required": False + }, + + "Directory Busting": { + "path_to_directory": "./DirectoryBusting", + "program_name": "directoryBuster.py", + "cli_args_required": True, + "arguments": { + "-url": { + "description" : "URL to Bust", + "optional": False, + + }, + "-dict": { + "description" : "Dictionary to use", + "optional" : False, + + }, + "-r": { + "description" : "Be recursive", + "store_only" : True, + "optional" : True, + + }, + "-v": { + "description" : "Show all attempts", + "store_only" : True, + "optional" : True, + + } + } + }, + + "Discovering Subdomains": { + "path_to_directory": "./Discovering-Subdomains", + "program_name": "program.py", + "cli_args_required": False + }, + + "Domino Effect": { + "path_to_directory": "./Domino-Effect", + "program_name": "dominoeffect.py", + "cli_args_required": True, + "arguments": { + "system": { + "description" : "IP address or hostname to harvest hashes from", + "optional": False, + "positional": True + }, + "--version" : { + "description" : "Show program's version number and exit (Press Enter)", + "optional" : False, + "store_only" : True + }, + "-u": { + "description" : "Path to the names.nsf file", + "optional": True, + }, + "--hashcat": { + "description" : "Print results for use with hashcat", + "store_only" : True, + "optional" : True, + }, + "--john": { + "description" : "Print results for use with John the Ripper", + "store_only" : True, + "optional" : True, + } + } + }, + + "DOS Attack": { + "path_to_directory": "./dos-attack", + "program_name": "dos.py", + "cli_args_required": False + }, + + "Easy Scope": { + "path_to_directory": "./easyscope", + "program_name": "easyscope.py", + "cli_args_required": True, + "arguments": { + "--file" : { + "description" : "Newline delimited file containing subnets or IP ranges", + "optional" : True, + }, + "--expand" : { + "description" : "Expand IP addresses to single IP address", + "optional" : True, + }, + "--combine" : { + "description" : "Combine IP addresses to supernets", + "optional" : True, + }, + } + }, + + "Geo Location": { + "path_to_directory": "./Geolocation", + "program_name": "geolocation.py", + "cli_args_required": False, + }, + + "GraphQL Map": { + "path_to_directory": "./GraphQLmap", + "program_name": "graphqlmap.py", + "cli_args_required": True, + "arguments": [] + }, + + "Hash-Cracker: Cracker": { + "path_to_directory": "./Hash-Cracker", + "program_name": "hashcrack.py", + "cli_args_required": False + }, + "Hash-Cracker: Checker": { + "path_to_directory": "./Hash-Cracker", + "program_name": "hash-checker.py", + "cli_args_required": False + }, + + "Information Gathering": { + "path_to_directory": "./Information-Gathering", + "program_name": "inforecon.py", + "cli_args_required": True, + "arguments" : { + "url" : { + "description" : "URL of the Website you want to lookup the information", + "optional" : False, + "positional" : True + } + } + }, + +} \ No newline at end of file From 0a45c3b4f70358f4855f98d7754637d61ad7a707 Mon Sep 17 00:00:00 2001 From: rohit Date: Tue, 6 Apr 2021 22:46:38 +0530 Subject: [PATCH 3/6] Started making menu driven program --- .gitignore | 1 + Discovering-Subdomains/program.py | 2 +- imports.py | 0 main.py | 84 +++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 imports.py create mode 100644 main.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..5890b098 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +test.py diff --git a/Discovering-Subdomains/program.py b/Discovering-Subdomains/program.py index ccad023a..99f80aea 100644 --- a/Discovering-Subdomains/program.py +++ b/Discovering-Subdomains/program.py @@ -22,7 +22,7 @@ pass except KeyboardInterrupt: # if the user does ctrl+c - print(Hello user, you have pressed ctrl+c, so terminating!) + print("Hello user, you have pressed ctrl+c, so terminating!") sys.exit() else: print("[+] Discovered subdomain:", url) diff --git a/imports.py b/imports.py new file mode 100644 index 00000000..e69de29b diff --git a/main.py b/main.py new file mode 100644 index 00000000..261ad1b1 --- /dev/null +++ b/main.py @@ -0,0 +1,84 @@ +import sys +from os import chdir + +SCRIPTS = { + "403 Bypass" : { + "path_to_directory" : "./403Bypass", + "program_name": "403bypasser.py", + "arguments" : ['domain', 'path'], + "cli_args_required" : True + }, + + "Checking Website" : { + "path_to_directory" : "./Checking_website", + "program_name" : "script.py", + "cli_args_required" : False + }, + "Directory Busting" : { + "path_to_directory" : "./DirectoryBusting", + "program_name" : "directoryBuster.py", + "cli_args_required": True, + "arguments": [] + }, + "Discovering Subdomains" : { + "path_to_directory" : "./Discovering-Subdomains", + "program_name" : "program.py", + "cli_args_required": False + }, + "DOS Attack" : { + "path_to_directory" : "./dos-attack", + "program_name" : "dos.py", + "cli_args_required": False + } +} + +def print_menu(): + # Convert all the available choices to a list + keys = [*SCRIPTS] + + ## Add option to exit from the menu + keys.append("Exit") + + ## Print all the available choices + count = 1 + for key in keys: + print("{}. {}".format(count,key)) + count += 1 + + choice = int(input("\nEnter your choice: ")) + + # Check for invalid input + while choice < 0 or choice > len(keys): + print("\nError: Invalid Choice") + return print_menu() + + return keys[choice-1] + +def main(): + choice = print_menu() + if choice == "Exit": + exit(0) + + script_object = SCRIPTS[choice] + if "cli_args_required" in script_object: + if script_object["cli_args_required"]: + if "arguments" not in script_object: + print("Error: Name of command line arguments not passed in setup file") + exit(0) + else: + args = script_object["arguments"] + for arg in args: + val = input("Enter the value for argument '%s': " % arg) + sys.argv.append(val) + + chdir(script_object["path_to_directory"]) + with open(script_object["program_name"], 'r') as file: + exec(file.read(), globals(), globals()) + +if __name__ == '__main__': + # try: + # main() + # except Exception as e: + # print("An exception occurred: ") + # print(str(e)) + main() \ No newline at end of file From 406a1c78fa47f53a59f1ca2c1ce1b119d2233048 Mon Sep 17 00:00:00 2001 From: rohit Date: Wed, 7 Apr 2021 10:55:56 +0530 Subject: [PATCH 4/6] Added more scripts in the command line menu --- .gitignore | 1 + imports.py | 0 main.py | 69 ++++++++++------------- scripts.py | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 188 insertions(+), 39 deletions(-) delete mode 100644 imports.py create mode 100644 scripts.py diff --git a/.gitignore b/.gitignore index 5890b098..fba30931 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ test.py +__pycache__/ diff --git a/imports.py b/imports.py deleted file mode 100644 index e69de29b..00000000 diff --git a/main.py b/main.py index 261ad1b1..8c5fd498 100644 --- a/main.py +++ b/main.py @@ -1,50 +1,21 @@ import sys from os import chdir +from scripts import SCRIPTS -SCRIPTS = { - "403 Bypass" : { - "path_to_directory" : "./403Bypass", - "program_name": "403bypasser.py", - "arguments" : ['domain', 'path'], - "cli_args_required" : True - }, - - "Checking Website" : { - "path_to_directory" : "./Checking_website", - "program_name" : "script.py", - "cli_args_required" : False - }, - "Directory Busting" : { - "path_to_directory" : "./DirectoryBusting", - "program_name" : "directoryBuster.py", - "cli_args_required": True, - "arguments": [] - }, - "Discovering Subdomains" : { - "path_to_directory" : "./Discovering-Subdomains", - "program_name" : "program.py", - "cli_args_required": False - }, - "DOS Attack" : { - "path_to_directory" : "./dos-attack", - "program_name" : "dos.py", - "cli_args_required": False - } -} def print_menu(): # Convert all the available choices to a list keys = [*SCRIPTS] - ## Add option to exit from the menu + # Add option to exit from the menu keys.append("Exit") - ## Print all the available choices + # Print all the available choices count = 1 for key in keys: - print("{}. {}".format(count,key)) + print("{}. {}".format(count, key)) count += 1 - + choice = int(input("\nEnter your choice: ")) # Check for invalid input @@ -54,8 +25,10 @@ def print_menu(): return keys[choice-1] + def main(): choice = print_menu() + print() if choice == "Exit": exit(0) @@ -66,11 +39,29 @@ def main(): print("Error: Name of command line arguments not passed in setup file") exit(0) else: + print("Enter the value for argument(s).") args = script_object["arguments"] - for arg in args: - val = input("Enter the value for argument '%s': " % arg) - sys.argv.append(val) - + for arg_key in args.keys(): + arg_obj = args[arg_key] + if arg_obj["optional"]: + val = input(f'* {arg_obj["description"]} (Enter to skip / Any value to set to True)- ') + if "store_only" in arg_obj: + if len(val) > 0: + sys.argv.append(arg_key) + else: + if len(val) > 0: + if script_object["include_arg_name"]: + sys.argv.append(arg_key) + sys.argv.append(val) + else: + val = input(f'* {arg_obj["description"]} - ') + if "store_only" in arg_obj: + sys.argv.append(arg_key) + elif "positional" not in arg_obj: + sys.argv.append(arg_key) + sys.argv.append(val) + # print(sys.argv) + # return chdir(script_object["path_to_directory"]) with open(script_object["program_name"], 'r') as file: exec(file.read(), globals(), globals()) @@ -81,4 +72,4 @@ def main(): # except Exception as e: # print("An exception occurred: ") # print(str(e)) - main() \ No newline at end of file + main() diff --git a/scripts.py b/scripts.py new file mode 100644 index 00000000..0346d994 --- /dev/null +++ b/scripts.py @@ -0,0 +1,157 @@ +SCRIPTS = { + "403 Bypass": { + "path_to_directory": "./403Bypass", + "program_name": "403bypasser.py", + "cli_args_required": True, + "arguments": { + "Domain" : { + "description": "Domain", + "optional": False, + "positional" : True + }, + "Path" : { + "description": "Path", + "optional": False, + "positional" : True + }, + } + }, + + "Checking Website": { + "path_to_directory": "./Checking_website", + "program_name": "script.py", + "cli_args_required": False + }, + + "Directory Busting": { + "path_to_directory": "./DirectoryBusting", + "program_name": "directoryBuster.py", + "cli_args_required": True, + "arguments": { + "-url": { + "description" : "URL to Bust", + "optional": False, + + }, + "-dict": { + "description" : "Dictionary to use", + "optional" : False, + + }, + "-r": { + "description" : "Be recursive", + "store_only" : True, + "optional" : True, + + }, + "-v": { + "description" : "Show all attempts", + "store_only" : True, + "optional" : True, + + } + } + }, + + "Discovering Subdomains": { + "path_to_directory": "./Discovering-Subdomains", + "program_name": "program.py", + "cli_args_required": False + }, + + "Domino Effect": { + "path_to_directory": "./Domino-Effect", + "program_name": "dominoeffect.py", + "cli_args_required": True, + "arguments": { + "system": { + "description" : "IP address or hostname to harvest hashes from", + "optional": False, + "positional": True + }, + "--version" : { + "description" : "Show program's version number and exit (Press Enter)", + "optional" : False, + "store_only" : True + }, + "-u": { + "description" : "Path to the names.nsf file", + "optional": True, + }, + "--hashcat": { + "description" : "Print results for use with hashcat", + "store_only" : True, + "optional" : True, + }, + "--john": { + "description" : "Print results for use with John the Ripper", + "store_only" : True, + "optional" : True, + } + } + }, + + "DOS Attack": { + "path_to_directory": "./dos-attack", + "program_name": "dos.py", + "cli_args_required": False + }, + + "Easy Scope": { + "path_to_directory": "./easyscope", + "program_name": "easyscope.py", + "cli_args_required": True, + "arguments": { + "--file" : { + "description" : "Newline delimited file containing subnets or IP ranges", + "optional" : True, + }, + "--expand" : { + "description" : "Expand IP addresses to single IP address", + "optional" : True, + }, + "--combine" : { + "description" : "Combine IP addresses to supernets", + "optional" : True, + }, + } + }, + + "Geo Location": { + "path_to_directory": "./Geolocation", + "program_name": "geolocation.py", + "cli_args_required": False, + }, + + "GraphQL Map": { + "path_to_directory": "./GraphQLmap", + "program_name": "graphqlmap.py", + "cli_args_required": True, + "arguments": [] + }, + + "Hash-Cracker: Cracker": { + "path_to_directory": "./Hash-Cracker", + "program_name": "hashcrack.py", + "cli_args_required": False + }, + "Hash-Cracker: Checker": { + "path_to_directory": "./Hash-Cracker", + "program_name": "hash-checker.py", + "cli_args_required": False + }, + + "Information Gathering": { + "path_to_directory": "./Information-Gathering", + "program_name": "inforecon.py", + "cli_args_required": True, + "arguments" : { + "url" : { + "description" : "URL of the Website you want to lookup the information", + "optional" : False, + "positional" : True + } + } + }, + +} \ No newline at end of file From 19bdfa237b479b3e21b969e84e356101b438b1a8 Mon Sep 17 00:00:00 2001 From: rohit Date: Mon, 12 Apr 2021 17:47:12 +0530 Subject: [PATCH 5/6] Added MENU-DRIVEN.md file --- .gitignore | 2 + MENU-DRIVEN.md | 35 ++++++++++++++ main.py | 13 +++-- scripts.py | 125 ++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 169 insertions(+), 6 deletions(-) create mode 100644 MENU-DRIVEN.md diff --git a/.gitignore b/.gitignore index fba30931..1ab698ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ test.py __pycache__/ +env/** +.vscode/** \ No newline at end of file diff --git a/MENU-DRIVEN.md b/MENU-DRIVEN.md new file mode 100644 index 00000000..a53353aa --- /dev/null +++ b/MENU-DRIVEN.md @@ -0,0 +1,35 @@ +# Running the menu driven program + + python3 main.py + +## Adding new scripts to the Menu Driven Program + +1. Open the _scripts.py_ file. + +2. Create a new object inside the __SCRIPTS__ object with the following attributes + + "Name of the Script": { + "path_to_directory": "./relative_path_to_the_scripts_folder", + "program_name": "name_of_the_script_file.py", + "cli_args_required": True|False, + # If 'cli_args_required' is set to True, create the "arguments" key. + + "arguments": { + "argument_name": { + "description" : "Descrition of the argument", + "optional": True|False, + "store_only": True|False + # if no value is to be passed with the argument name + "positional": True|False + # Set to True if name of the argument is not to be included in the program's name. + }, + } + } + +### Scripts which were not included in the menu driven program + +1. SniffAir: The __setup.sh__ file is not included in the code directory. + +2. SQL Injection: The script has no interface built-in in order to interact with it using command line. + +3. Target-Lib: The script has no interface built-in in order to interact with it using command line. diff --git a/main.py b/main.py index 8c5fd498..2a31fc2c 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,7 @@ import sys -from os import chdir +from os import chdir, listdir, getcwd +from os.path import abspath + from scripts import SCRIPTS @@ -44,13 +46,13 @@ def main(): for arg_key in args.keys(): arg_obj = args[arg_key] if arg_obj["optional"]: - val = input(f'* {arg_obj["description"]} (Enter to skip / Any value to set to True)- ') + val = input(f'* {arg_obj["description"]} (Press Enter to skip)- ') if "store_only" in arg_obj: if len(val) > 0: sys.argv.append(arg_key) else: if len(val) > 0: - if script_object["include_arg_name"]: + if "positional" not in arg_obj: sys.argv.append(arg_key) sys.argv.append(val) else: @@ -60,9 +62,10 @@ def main(): elif "positional" not in arg_obj: sys.argv.append(arg_key) sys.argv.append(val) - # print(sys.argv) - # return + + sys.path.append(abspath(script_object["path_to_directory"])) chdir(script_object["path_to_directory"]) + with open(script_object["program_name"], 'r') as file: exec(file.read(), globals(), globals()) diff --git a/scripts.py b/scripts.py index 0346d994..f4a224c7 100644 --- a/scripts.py +++ b/scripts.py @@ -127,7 +127,30 @@ "path_to_directory": "./GraphQLmap", "program_name": "graphqlmap.py", "cli_args_required": True, - "arguments": [] + "arguments": { + "-u" : { + "description" : "URL to query", + "optional" : True, + }, + "-v" : { + "description" : "Enable verbosity", + "optional" : True, + "store_only" : True + }, + "--method" : { + "description" : "HTTP Method to use interact with /graphql endpoint", + "optional" : True, + }, + "--headers" : { + "description" : "HTTP Headers sent to /graphql endpoint", + "optional" : True, + }, + "--json" : { + "description" : "Use JSON encoding, implies POST", + "optional" : True, + }, + + } }, "Hash-Cracker: Cracker": { @@ -135,6 +158,7 @@ "program_name": "hashcrack.py", "cli_args_required": False }, + "Hash-Cracker: Checker": { "path_to_directory": "./Hash-Cracker", "program_name": "hash-checker.py", @@ -154,4 +178,103 @@ } }, + "Key Logger": { + "path_to_directory": "./Keylogger", + "program_name": "keylogger.py", + "cli_args_required": False + }, + + "MAC Spoof": { + "path_to_directory": "./MAC-Spoof", + "program_name": "spoof.py", + "cli_args_required": True, + "arguments": { + "-i" : { + "description" : "Interface Name", + "optional" : False + }, + "-m" : { + "description" : "New MAC Address", + "optional" : False + } + } + }, + + "Nightcall": { + "path_to_directory": "./NightCall", + "program_name": "nightcall.py", + "cli_args_required": True, + "arguments": { + "single_address" : { + "description" : "Single host or network", + "optional" : False, + "positional" : True + }, + "-i" : { + "description" : "Interface to use for masscan and nmap", + "optional" : True + }, + "-f" : { + "description" : "Target file containing line separated ip addresses", + "optional" : True + }, + "-sP" : { + "description" : "Skip portscans, directly import xml", + "optional" : True, + "store_only" : True + }, + "-b" : { + "description" : "Enable bruteforcing", + "optional" : True, + "store_only" : True + }, + "-w" : { + "description" : "Enable additional web related scans", + "optional" : True, + "store_only" : True + }, + "--disable-resolve" : { + "description" : "Disable separate hostname resolution (outside nmap)", + "optional" : True, + "store_only" : True + } + + } + }, + + "Phone Number Tracker": { + "path_to_directory": "./Phone-Number-Tracker", + "program_name": "Tracker.py", + "cli_args_required": False + }, + + "Port Scanner": { + "path_to_directory": "./Port-Scanner", + "program_name": "Port_Scanner.py", + "cli_args_required": False + }, + + "Python N-Map": { + "path_to_directory": "./Python-Nmap", + "program_name": "scanner.py", + "cli_args_required": False + }, + + "Stock Market Data Scraper": { + "path_to_directory": "./Stock-Market-Data-Scraper", + "program_name": "stock_market.py", + "cli_args_required": False + }, + + "Who-Is": { + "path_to_directory": "./Who-Is", + "program_name": "whois.py", + "cli_args_required": True + }, + + "WiFi Passwords": { + "path_to_directory": "./Wifi_passwords", + "program_name": "wifi-passwords.py", + "cli_args_required": True + }, } \ No newline at end of file From 1b8087567ff03cdad43651f0998ec2ee312178f2 Mon Sep 17 00:00:00 2001 From: rohit Date: Mon, 12 Apr 2021 18:09:06 +0530 Subject: [PATCH 6/6] Added HTTP Reversed Shell in the scripts.py file --- scripts.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts.py b/scripts.py index f4a224c7..289214e9 100644 --- a/scripts.py +++ b/scripts.py @@ -165,6 +165,12 @@ "cli_args_required": False }, + "HTTP Reversed Shell": { + "path_to_directory": "./HTTP-Reversed-Shell", + "program_name": "server.py", + "cli_args_required": False + }, + "Information Gathering": { "path_to_directory": "./Information-Gathering", "program_name": "inforecon.py",