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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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'))