コード例 #1
0
ファイル: service.py プロジェクト: zhentan911/thorns
    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
コード例 #2
0
 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)
コード例 #3
0
ファイル: test_cpe.py プロジェクト: CaiJiJi/python-libnmap
 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)
コード例 #4
0
 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)
コード例 #5
0
ファイル: test_cpe.py プロジェクト: CaiJiJi/python-libnmap
    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(), '')
コード例 #6
0
    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(), '')
コード例 #7
0
    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(), "")
コード例 #8
0
    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