示例#1
0
    def test_get_ctime_xml_failed(self):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        ctime = u'\u0006'
        w.get_creation_time_vt_as_xml_str(
            '1.3.6.1.4.1.25623.1.0.100061', vt_creation_time=ctime
        )

        assert_called_once(logging.Logger.warning)
示例#2
0
    def test_get_dependencies_xml_failed(self):
        w = DummyDaemon()
        logging.Logger.error = Mock()

        dep = [u"\u0006"]
        w.get_dependencies_vt_as_xml_str(
            '1.3.6.1.4.1.25623.1.0.100061', vt_dependencies=dep
        )

        assert_called_once(logging.Logger.error)
示例#3
0
    def test_get_severities_xml_failed(self):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        sever = {'severity_base_vector': u"\u0006"}
        w.get_severities_vt_as_xml_str(
            '1.3.6.1.4.1.25623.1.0.100061', severities=sever
        )

        assert_called_once(logging.Logger.warning)
示例#4
0
    def test_get_custom_xml_failed(self):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        custom = {'a': u"\u0006"}
        w.get_custom_vt_as_xml_str(
            '1.3.6.1.4.1.25623.1.0.100061', custom=custom
        )

        assert_called_once(logging.Logger.warning)
示例#5
0
    def test_get_affected_xml_failed(self):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        affected = u"\u0006" + "affected"
        w.get_affected_vt_as_xml_str(
            '1.3.6.1.4.1.25623.1.0.100061', affected=affected
        )

        assert_called_once(logging.Logger.warning)
示例#6
0
    def test_build_alive_test_opt_fail_1(self):
        w = DummyDaemon()
        logging.Logger.debug = Mock()

        target_options_dict = {'alive_test': 'a'}
        p = PreferenceHandler('1234-1234', None, w.scan_collection, None)
        target_options = p.build_alive_test_opt_as_prefs(target_options_dict)

        assert_called_once(logging.Logger.debug)
        self.assertEqual(len(target_options), 0)
示例#7
0
    def test_process_vts_not_found(self, mock_kb):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        vts = {
            '1.3.6.1.4.1.25623.1.0.100065': {'3': 'new value'},
            'vt_groups': ['family=debian', 'family=general'],
        }

        p = PreferenceHandler('1234-1234', mock_kb, w.scan_collection, w.nvti)
        w.nvti.get_nvt_metadata.return_value = None
        p._process_vts(vts)

        assert_called_once(logging.Logger.warning)
示例#8
0
    def test_get_params_xml_failed(self):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        params = {
            '1': {
                'id': '1',
                'type': 'entry',
                'default': u'\u0006',
                'name': 'dns-fuzz.timelimit',
                'description': 'Description',
            }
        }
        w.get_params_vt_as_xml_str('1.3.6.1.4.1.25623.1.0.100061', params)

        assert_called_once(logging.Logger.warning)
    def test_result_without_vt_oid(self, mock_add_scan_alarm_to_list,
                                   MockDBClass):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        target_element = w.create_xml_target()
        targets = OspRequest.process_target_element(target_element)
        w.create_scan('123-456', targets, None, [])
        w.scan_collection.scans_table['123-456']['results'] = list()
        results = ["ALARM||| ||| ||| ||| |||some alarm|||path", None]
        MockDBClass.get_result.return_value = results
        mock_add_scan_alarm_to_list.return_value = None

        w.report_openvas_results(MockDBClass, '123-456')

        assert_called_once(logging.Logger.warning)
示例#10
0
    def test_process_vts_not_found(self):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        vts = {
            '1.3.6.1.4.1.25623.1.0.100065': {
                '3': 'new value'
            },
            'vt_groups': ['family=debian', 'family=general'],
        }

        w.load_vts()
        w.temp_vts = w.vts

        w.process_vts(vts)

        assert_called_once(logging.Logger.warning)
示例#11
0
    def test_process_vts_not_found(self, mock_kb):
        w = DummyDaemon()
        logging.Logger.warning = Mock()

        vts = {
            '1.3.6.1.4.1.25623.1.0.100065': {
                '3': 'new value'
            },
            'vt_groups': ['family=debian', 'family=general'],
        }

        w.load_vts()
        temp_vts = w.vts
        p = PreferenceHandler('1234-1234', mock_kb, w.scan_collection,
                              temp_vts)

        p._process_vts(vts)

        assert_called_once(logging.Logger.warning)
示例#12
0
    def test_set_credentials(self, mock_kb):
        w = DummyDaemon()

        creds = {
            'ssh': {
                'type': 'ssh',
                'port': '22',
                'username': '******',
                'password': '******',
            },
            'smb': {
                'type': 'smb',
                'username': '******',
                'password': '******'
            },
            'esxi': {
                'type': 'esxi',
                'username': '******',
                'password': '******',
            },
            'snmp': {
                'type': 'snmp',
                'username': '******',
                'password': '******',
                'community': 'some comunity',
                'auth_algorithm': 'some auth algo',
                'privacy_password': '******',
                'privacy_algorithm': 'privacy algo',
            },
        }

        w.scan_collection.get_credentials = MagicMock(return_value=creds)

        p = PreferenceHandler('1234-1234', mock_kb, w.scan_collection, None)
        p._openvas_scan_id = '456-789'
        p.kbdb.add_scan_preferences = MagicMock()
        r = p.prepare_credentials_for_openvas()

        self.assertTrue(r)
        assert_called_once(p.kbdb.add_scan_preferences)
示例#13
0
    def test_set_credentials(self, mock_kb):
        dummy = DummyDaemon()

        creds = {
            'ssh': {
                'type': 'up',
                'port': '22',
                'username': '******',
                'password': '******',
                'priv_username': "******",
                'priv_password': "******",
            },
            'smb': {'type': 'up', 'username': '******', 'password': '******'},
            'esxi': {
                'type': 'up',
                'username': '******',
                'password': '******',
            },
            'snmp': {
                'type': 'snmp',
                'username': '******',
                'password': '******',
                'community': 'some comunity',
                'auth_algorithm': 'md5',
                'privacy_password': '******',
                'privacy_algorithm': 'aes',
            },
        }

        dummy.scan_collection.get_credentials = MagicMock(return_value=creds)

        p_handler = PreferenceHandler(
            '1234-1234', mock_kb, dummy.scan_collection, None
        )
        p_handler.scan_id = '456-789'
        p_handler.kbdb.add_credentials_to_scan_preferences = MagicMock()
        ret = p_handler.prepare_credentials_for_openvas()

        self.assertTrue(ret)
        assert_called_once(p_handler.kbdb.add_credentials_to_scan_preferences)
    def test_get_single_vt_severity_cvssv3(self):
        w = DummyDaemon()
        w.nvti.get_nvt_metadata.return_value = {
            'category': '3',
            'creation_date': '1237458156',
            'cvss_base_vector': 'AV:N/AC:L/Au:N/C:N/I:N/A:N',
            'severity_vector': 'CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:L',
            'severity_date': '1237458156',
            'severity_origin': 'Greenbone',
            'excluded_keys': 'Settings/disable_cgi_scanning',
            'family': 'Product detection',
            'filename': 'mantis_detect.nasl',
            'last_modification': ('1533906565'),
            'name': 'Mantis Detection',
            'qod_type': 'remote_banner',
            'required_ports': 'Services/www, 80',
            'solution': 'some solution',
            'solution_type': 'WillNotFix',
            'solution_method': 'DebianAPTUpgrade',
            'impact': 'some impact',
            'insight': 'some insight',
            'summary': ('some summary'),
            'affected': 'some affection',
            'timeout': '0',
            'vt_params': {
                '1': {
                    'id': '1',
                    'default': '',
                    'description': 'Description',
                    'name': 'Data length :',
                    'type': 'entry',
                },
                '2': {
                    'id': '2',
                    'default': 'no',
                    'description': 'Description',
                    'name':
                    'Do not randomize the  order  in  which ports are scanned',  # pylint: disable=line-too-long
                    'type': 'checkbox',
                },
            },
            'refs': {
                'bid': [''],
                'cve': [''],
                'xref': ['URL:http://www.mantisbt.org/'],
            },
        }

        vthelper = VtHelper(w.nvti)

        res = vthelper.get_single_vt("1.3.6.1.4.1.25623.1.0.100061")
        assert_called_once(w.nvti.get_nvt_metadata)

        severities = res.get('severities')
        self.assertEqual(
            "CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:L",
            severities.get('severity_base_vector'),
        )
        self.assertEqual("cvss_base_v3", severities.get('severity_type'))
        self.assertEqual("Greenbone", severities.get('severity_origin'))
        self.assertEqual("1237458156", severities.get('severity_date'))