예제 #1
0
    async def get_all_spnservices(self):
        try:
            async for entry in self.ldap.get_all_spn_entries():
                for spn in entry['attributes']['servicePrincipalName']:
                    port = None
                    service, t = spn.rsplit('/', 1)
                    m = t.find(':')
                    if m != -1:
                        computername, port = spn.rsplit(':', 1)
                    else:
                        computername = t

                    s = JackDawSPNService()
                    s.owner_sid = str(entry['attributes']['objectSid'])
                    s.computername = computername
                    s.service = service
                    s.port = port
                    await self.agent_out_q.put(
                        (LDAPAgentCommand.SPNSERVICE, s))
        except:
            await self.agent_out_q.put(
                (LDAPAgentCommand.EXCEPTION, str(traceback.format_exc())))
        finally:
            await self.agent_out_q.put(
                (LDAPAgentCommand.SPNSERVICES_FINISHED, None))
예제 #2
0
파일: aioldap.py 프로젝트: pub999/jackdaw
	async def get_all_spnservices(self):
		try:
			async for entry, err in self.ldap.get_all_spn_entries():
				if err is not None:
					raise err
				if 'servicePrincipalName' not in entry['attributes']:
					continue
				
				for spn in entry['attributes']['servicePrincipalName']:
					port = None
					service_name = None
					service_class, t = spn.split('/',1)
					m = t.find(':')
					if m != -1:
						computername, port = t.rsplit(':',1)
						if port.find('/') != -1:
							port, service_name = port.rsplit('/',1)
					else:
						computername = t
						if computername.find('/') != -1:
							computername, service_name = computername.rsplit('/',1)

					s = JackDawSPNService()
					s.owner_sid = str(entry['attributes']['objectSid'])
					s.computername = computername
					s.service_class = service_class
					s.service_name = service_name
					s.port = port
					await self.agent_out_q.put((LDAPAgentCommand.SPNSERVICE, s))
		except:
			await self.agent_out_q.put((LDAPAgentCommand.EXCEPTION, str(traceback.format_exc())))
		finally:
			await self.agent_out_q.put((LDAPAgentCommand.SPNSERVICES_FINISHED, None))