コード例 #1
0
    def __init__(self):
        """
        :raises SettingsException:
        """
        self.config_parsers = dict() # dict of DefaultConfigParser indexed by filename
        self.toolbox        = None   # Receives Toolbox object
        self.services       = None   # Receives ServicesConfig object

        # Check directory and presence of *.conf files
        if not FileUtils.is_dir(SETTINGS_DIR):
            raise SettingsException('Configuration directory ({dir}) does not exist'.format(dir=SETTINGS_DIR))
        files = FileUtils.list_directory(SETTINGS_DIR)
        for f in files:
            if not FileUtils.check_extension(f, CONF_EXT):
                files.remove(f)

        if not files:
            raise SettingsException('Configuration directory ({dir}) does not store any *.conf file'.format(
                dir=SETTINGS_DIR))

        if TOOLBOX_CONF_FILE+CONF_EXT not in files:
            raise SettingsException('Missing mandatory {toolbox}{ext} settings file in directory "{dir}"'.format(
                toolbox=TOOLBOX_CONF_FILE, ext=CONF_EXT, dir=SETTINGS_DIR))

        if INSTALL_STATUS_CONF_FILE+CONF_EXT not in files:
            open(SETTINGS_DIR+'/'+INSTALL_STATUS_CONF_FILE+CONF_EXT, 'a').close()
            logger.info('{status}{ext} settings file created in directory "{dir}"'.format(
                status=INSTALL_STATUS_CONF_FILE, ext=CONF_EXT, dir=SETTINGS_DIR))
            files.append(INSTALL_STATUS_CONF_FILE+CONF_EXT)

        # Parse settings files, add tools inside toolbox and create scan configs
        self.__parse_all_conf_files(files)
        self.__create_toolbox()
        self.__create_all_services_checks()
コード例 #2
0
    def __init__(self):
        """
        Start the parsing of settings files and create the Settings object.

        :raises SettingsException: Exception raised if any error is encountered while 
            parsing files (syntax error, missing mandatory file...)
        """
        self.config_parsers = dict(
        )  # Dict of DefaultConfigParser indexed by filename
        self.toolbox = None  # Receives Toolbox object
        self.services = None  # Receives ServicesConfig object
        self.attack_profiles = None  # Receives AttackProfiles object

        # Check directory
        if not FileUtils.is_dir(SETTINGS_DIR):
            raise SettingsException('Configuration directory ({dir}) does not ' \
                'exist'.format(dir=SETTINGS_DIR))

        # Check presence of *.conf files
        files = FileUtils.list_directory(SETTINGS_DIR)
        for f in files:
            if not FileUtils.check_extension(f, CONF_EXT):
                files.remove(f)

        if not files:
            raise SettingsException('Configuration directory ({dir}) does not ' \
                'store any *.conf file'.format(dir=SETTINGS_DIR))

        if TOOLBOX_CONF_FILE + CONF_EXT not in files:
            raise SettingsException('Missing mandatory {toolbox}{ext} settings ' \
                'file in directory "{dir}"'.format(
                    toolbox=TOOLBOX_CONF_FILE,
                    ext=CONF_EXT,
                    dir=SETTINGS_DIR))

        if ATTACK_PROFILES_CONF_FILE + CONF_EXT not in files:
            raise SettingsException('Missing mandatory {profiles}{ext} settings ' \
                'file in directory "{dir}"'.format(
                    profiles=ATTACK_PROFILES_CONF_FILE,
                    ext=CONF_EXT,
                    dir=SETTINGS_DIR))

        # Create _install_status.conf file if necessary
        if INSTALL_STATUS_CONF_FILE + CONF_EXT not in files:
            open(SETTINGS_DIR + '/' + INSTALL_STATUS_CONF_FILE + CONF_EXT,
                 'a').close()
            logger.info('{status}{ext} settings file created in directory ' \
                '"{dir}"'.format(status=INSTALL_STATUS_CONF_FILE,
                                 ext=CONF_EXT,
                                 dir=SETTINGS_DIR))
            files.append(INSTALL_STATUS_CONF_FILE + CONF_EXT)

        # Parse configuration files and create objects from them
        self.__parse_all_conf_files(files)
        self.__create_toolbox()
        self.__create_all_services_config_and_checks()
        self.__create_attack_profiles()
コード例 #3
0
    def __init__(self, settings_dir, toolbox_dir, output):
        """
		Initialize Settings object

		@Args		settings_dir: 	directory where config files are stored
					toolbox_dir: 	directory where the toolbox is stored
					output: 		Instance of CLIOutput

		"""
        self.settings_dir = settings_dir
        self.toolbox_dir = toolbox_dir
        self.output = output

        # config_parsers: dict of config_parsers indexed by conf_filename
        self.config_parsers = {}
        # general_settings: 2 dimensions dict - [service_name][option_name]
        self.general_settings = {}
        self.toolbox = Toolbox(self)

        # Check directory and presence of *.conf files
        if not FileUtils.is_dir(settings_dir):
            self.output.printError(
                'Configuration directory ({0}) does not exist'.format(
                    settings_dir))
            raise ValueError

        files = FileUtils.list_directory(settings_dir)
        for f in files:
            if not FileUtils.check_extension(f, CONF_EXT):
                files.remove(f)
        if not files:
            self.output.printError(
                'Configuration directory ({0}) does not store any *.conf file'.
                format(settings_dir))
            raise ValueError

        # Parse config files
        self.parseAllConfFiles(files)
コード例 #4
0
ファイル: Settings.py プロジェクト: u53r55/jok3r
    def __init__(self, settings_dir, toolbox_dir, output):
        """
		Constructor of Settings object
		@Args		settings_dir: 	directory where config files are stored
					toolbox_dir: 	directory where the toolbox is stored
					output: 		Instance of CLIOutput
		"""
        self.settings_dir = settings_dir
        self.toolbox_dir = toolbox_dir
        self.output = output
        # config_parsers: dict of config_parsers indexed by service_name
        self.config_parsers = {}
        # general_settings: 2 dimensions dict - [service_name][setting]
        self.general_settings = {}
        self.toolbox = Toolbox(self)

        # Check directory and presence of *.conf files
        if not FileUtils.is_dir(settings_dir):
            self.output.printError(
                'Configuration directory ({0}) does not exist'.format(
                    settings_dir))
            sys.exit(0)

        files = FileUtils.list_directory(settings_dir)
        for f in files:
            if not FileUtils.check_extension(f, CONF_EXT):
                files.remove(f)
        if not files:
            self.output.printError(
                'Configuration directory ({0}) does not store any *.conf file'.
                format(settings_dir))
            sys.exit(0)

        # Parse config files
        # i.e. extract tools categories and optional/specific settings for each service
        self.parseConfFiles(files)