def import_exploit(path: str): """ Imports exploit module :param str path: absolute path to exploit e.g. secistsploit.modules.exploits.asus_auth_bypass :return: exploit module or error """ try: module = importlib.import_module(path) if hasattr(module, "Payload"): return getattr(module, "Payload") elif hasattr(module, "Encoder"): return getattr(module, "Encoder") elif hasattr(module, "Exploit"): return getattr(module, "Exploit") else: raise ImportError("No module named '{}'".format(path)) except (ImportError, AttributeError, KeyError) as err: raise secistsploitException( "Error during loading '{}'\n\n" "Error: {}\n\n" "It should be valid path to the module. " "Use <tab> key multiple times for completion.".format(humanize_path(path), err) )
def get_command_handler(self, command): """ Parsing command and returning appropriate handler. :param command: command :return: command_handler """ try: command_handler = getattr(self, "command_{}".format(command)) except AttributeError: raise secistsploitException("Unknown command: '{}'".format(command)) return command_handler