def run(self): information = self.details['Args'][0] if self.modules.check_current_module(): current_module = self.modules.get_current_module_object() options = False if hasattr(current_module, "options"): options = True else: options = False modules = self.storage.get("modules") plugins = self.storage.get("plugins") informations = list() if modules: for database in sorted(modules.keys()): for category in sorted(modules[database].keys()): informations.append(category) if plugins: if information == "plugins": self.show_plugins() return if options: if information == "options": self.show_options() return if information in informations: self.show_modules(information) else: self.print_usage(informations, plugins, options)
def show_modules(self, information): modules = self.storage.get("modules") modules_data = list() number = 0 headers = ("Number", "Name", "Database", "Risk", "Description") for database in modules.keys(): modules = modules[database][information] for platform in sorted(modules.keys()): for module in sorted(modules[platform].keys()): full_name = self.modules.get_full_name( information, platform, module) modules_data.append( (number, full_name, database, modules[platform][module]['Risk'], modules[platform][module]['Description'])) number += 1 self.io.output("") self.formatter.format_table(information.title() + " Modules", headers, *modules_data) self.io.output("")
def run(self): information = self.details['Args'][0] modules = self.storage.get("modules") usage = "Informations: " for category in sorted(modules.keys()): usage += category + ", " usage += "plugins" if information in modules.keys(): modules_data = list() headers = ("Name", "Description") modules = modules[information] for platform in sorted(modules.keys()): for module in sorted(modules[platform].keys()): full_name = self.modules.get_full_name( information, platform, module) modules_data.append( (full_name, modules[platform][module]['Description'])) self.io.output("") self.formatter.format_table("Modules", headers, *modules_data) self.io.output("") else: if information == "plugins": if self.storage.get("plugins"): plugins_data = list() headers = ("Name", "Description") plugins = self.storage.get("plugins") for plugin in sorted(plugins.keys()): plugins_data.append( (plugin, plugins[plugin]['Description'])) self.io.output("") self.formatter.format_table("Plugins", headers, *plugins_data) self.io.output("") else: self.badges.output_warning("No plugins available!") else: self.badges.output_information(usage)
def launch_shell(self): using_history = self.local_storage.get("history") if using_history: self.enable_history_file() readline.parse_and_bind("tab: complete") version = self.config.core_config['details']['version'] codename = self.config.core_config['details']['codename'] if self.config.core_config['console']['clear']: self.badges.output_empty(self.colors.CLEAR, end='') if self.config.core_config['console']['banner']: self.banner.print_random_banner() if self.config.core_config['console']['header']: plugins = self.local_storage.get("plugins") modules = self.local_storage.get("modules") plugins_total = 0 modules_total = 0 if plugins: for database in plugins.keys(): plugins_total += len(plugins[database]) if modules: for database in modules.keys(): for module_category in modules[database].keys(): for module_platform in modules[database][ module_category].keys(): modules_total += len( modules[database][module_category] [module_platform]) header = "" header += f"{self.colors.END}\n" if codename and not codename.isspace(): header += f" --=( {self.colors.YELLOW}HatSploit Framework {codename} {version}{self.colors.END}\n" else: header += f" --=( {self.colors.YELLOW}HatSploit Framework {version}{self.colors.END}\n" header += f"--==--=( Developed by EntySec ({self.colors.LINE}https://entysec.netlify.app/{self.colors.END})\n" header += f" --=( {modules_total} modules loaded | {plugins_total} plugins available\n" header += f"{self.colors.END}" self.badges.output_empty(header) if self.config.core_config['console']['tip']: self.tip.print_random_tip() self.badges.output_empty("")
def run(self): module = self.details['Args'][0] modules = self.storage.get("modules") category = self.modules.get_category(module) platform = self.modules.get_platform(module) if category in modules.keys(): if platform in modules[category].keys(): module = self.modules.get_name(module) if module in modules[category][platform].keys(): self.add_module(category, platform, module) else: self.badges.output_error("Invalid module!") else: self.badges.output_error("Invalid module!") else: self.badges.output_error("Invalid module!")
def launch_shell(self): version = self.config.core_config['details']['version'] codename = self.config.core_config['details']['codename'] if self.config.core_config['console']['clear']: self.execute.execute_system("clear") if self.config.core_config['console']['banner']: self.banner.print_random_banner() if self.config.core_config['console']['header']: plugins = self.storage.get("plugins") modules = self.storage.get("modules") plugins_total = 0 modules_total = 0 if plugins: for database in plugins.keys(): plugins_total += len(plugins[database]) if modules: for database in modules.keys(): for module_category in modules[database].keys(): for module_platform in modules[database][ module_category].keys(): modules_total += len( modules[database][module_category] [module_platform]) header = "" header += f"{self.badges.END}\n" if codename and not codename.isspace(): header += f" --=( {self.badges.YELLOW}ZetaSploit Framework {codename} {version}{self.badges.END}\n" else: header += f" --=( {self.badges.YELLOW}ZetaSploit Framework {version}{self.badges.END}\n" header += f"--==--=( Developed by EntySec ({self.badges.LINE}https://entysec.netlify.app/{self.badges.END})\n" header += f" --=( {modules_total} modules loaded | {plugins_total} plugins available\n" header += f"{self.badges.END}" self.io.output(header) if self.config.core_config['console']['tip']: self.tip.print_random_tip() self.io.output("")
def perform_test(self): fail = False self.db.add_modules( self.config.path_config['base_paths']['db_path'] + self.config.db_config['base_dbs']['modules_database']) modules = self.storage.get("modules") for category in modules.keys(): for platform in modules[category].keys(): for module in modules[category][platform].keys(): try: _ = self.importer.import_module( modules[category][platform][module]['Path']) self.badges.output_success( self.modules.get_full_name(category, platform, module) + ': OK') except Exception: self.badges.output_error( self.modules.get_full_name(category, platform, module) + ': FAIL') fail = True return fail
def perform_test(self): fail = False all_modules = self.local_storage.get("modules") if all_modules: for database in all_modules.keys(): self.badges.output_process("Testing modules from " + database + " database...") modules = all_modules[database] for category in modules.keys(): for platform in modules[category].keys(): for module in modules[category][platform].keys(): try: _ = self.importer.import_module( modules[category][platform][module] ['Path']) self.badges.output_success( self.modules.get_full_name( category, platform, module) + ': OK') except Exception: self.badges.output_error( self.modules.get_full_name( category, platform, module) + ': FAIL') fail = True return fail