def __init__(self, portid, protocol='tcp', state=None, service=None, owner=None, service_extras=None): """ Constructor :param portid: port number :type portid: string :param protocol: protocol of port scanned (tcp, udp) :type protocol: string :param state: python dict describing the service status :type state: python dict :param service: python dict describing the service name and banner :type service: python dict :param service_extras: additional info about the tested service like scripts' data """ try: self._portid = int(portid or -1) except (ValueError, TypeError): raise if self._portid < 0 or self._portid > 65535: raise ValueError self._protocol = protocol # self._taskid = taskid # self._address = address self._state = state if state is not None else {} self._service = service if service is not None else {} self._cpelist = [] if 'cpelist' in self._service: for _cpe in self._service['cpelist']: _cpeobj = CPE(_cpe) self._cpelist.append(_cpeobj) self._owner = '' if owner is not None and 'name' in owner: self._owner = owner['name'] self._reason = '' self._reason_ip = '' self._reason_ttl = '' self._servicefp = '' self._tunnel = '' if 'reason' in self._state: self._reason = self._state['reason'] if 'reason_ttl' in self._state: self._reason_ttl = self._state['reason_ttl'] if 'reason_ip' in self._state: self._reason_ip = self._state['reason_ip'] if 'servicefp' in self._service: self._servicefp = self._service['servicefp'] if 'tunnel' in self._service: self._tunnel = self._service['tunnel'] self._service_extras = [] if service_extras is not None: self._service_extras = service_extras
def test_full_cpe(self): cpestr = 'cpe:/a:mozilla:firefox:2.0::osx:es-es' resdict = { 'part':'/a', 'vendor':"mozilla", 'product':"firefox", 'version':"2.0", 'update':'', 'edition':"osx", 'language':'es-es' } ocpe = CPE(cpestr) objdict = {'part': ocpe.get_part(), 'vendor': ocpe.get_vendor(), 'product': ocpe.get_product(), 'version': ocpe.get_version(), 'update': ocpe.get_update(), 'language': ocpe.get_language(), 'edition': ocpe.get_edition() } self.assertEqual(objdict, resdict)
def test_full_cpe(self): cpestr = "cpe:/a:mozilla:firefox:2.0::osx:es-es" resdict = { "part": "/a", "vendor": "mozilla", "product": "firefox", "version": "2.0", "update": "", "edition": "osx", "language": "es-es", } ocpe = CPE(cpestr) objdict = { "part": ocpe.get_part(), "vendor": ocpe.get_vendor(), "product": ocpe.get_product(), "version": ocpe.get_version(), "update": ocpe.get_update(), "language": ocpe.get_language(), "edition": ocpe.get_edition(), } self.assertEqual(objdict, resdict) # self.assertEqual(ocpe.cpedict, resdict) self.assertEqual(str(ocpe), cpestr)
def test_cpe(self): apa = CPE(self.cpelist[0]) self.assertTrue(apa.is_application()) self.assertFalse(apa.is_hardware()) self.assertFalse(apa.is_operating_system()) win = CPE(self.cpelist[12]) self.assertEqual(win.get_vendor(), 'microsoft') self.assertEqual(win.get_product(), 'windows_server_2008') self.assertEqual(win.get_version(), '') self.assertEqual(win.get_update(), 'beta3') self.assertEqual(win.get_edition(), '') self.assertEqual(win.get_language(), '')
def test_cpe(self): apa = CPE(self.cpelist[0]) self.assertTrue(apa.is_application()) self.assertFalse(apa.is_hardware()) self.assertFalse(apa.is_operating_system()) self.assertEqual( apa.cpedict, { "cpe": "cpe", "edition": "", "language": "", "part": "/a", "product": "http_server", "update": "", "vendor": "apache", "version": "2.2.22", }, ) win = CPE(self.cpelist[12]) self.assertEqual(win.get_vendor(), "microsoft") self.assertEqual(win.get_product(), "windows_server_2008") self.assertEqual(win.get_version(), "") self.assertEqual(win.get_update(), "beta3") self.assertEqual(win.get_edition(), "") self.assertEqual(win.get_language(), "")
def __init__( self, portid, protocol="tcp", state=None, service=None, owner=None, service_extras=None, ): """ Constructor :param portid: port number :type portid: string :param protocol: protocol of port scanned (tcp, udp) :type protocol: string :param state: python dict describing the service status :type state: python dict :param service: python dict describing the service name and banner :type service: python dict :param service_extras: additional info about the tested service like scripts' data """ try: self._portid = int(portid or -1) except (ValueError, TypeError): raise if self._portid < 0 or self._portid > 65535: raise ValueError self._protocol = protocol self._state = state if state is not None else {} self._service = service if service is not None else {} self._cpelist = [] if "cpelist" in self._service: for _cpe in self._service["cpelist"]: _cpeobj = CPE(_cpe) self._cpelist.append(_cpeobj) self._owner = "" if owner is not None and "name" in owner: self._owner = owner["name"] self._reason = "" self._reason_ip = "" self._reason_ttl = "" self._servicefp = "" self._tunnel = "" if "reason" in self._state: self._reason = self._state["reason"] if "reason_ttl" in self._state: self._reason_ttl = self._state["reason_ttl"] if "reason_ip" in self._state: self._reason_ip = self._state["reason_ip"] if "servicefp" in self._service: self._servicefp = self._service["servicefp"] if "tunnel" in self._service: self._tunnel = self._service["tunnel"] self._service_extras = [] if service_extras is not None: self._service_extras = service_extras