async def get_all_users(self): try: async for user_data, err in self.ldap.get_all_users(): if err is not None: raise err try: user = ADUser.from_aduser(user_data) except: await self.agent_out_q.put((LDAPAgentCommand.EXCEPTION, str(traceback.format_exc()))) continue spns = [] if user_data.servicePrincipalName is not None: for spn in user_data.servicePrincipalName: spns.append( JackDawSPN.from_spn_str(spn, user.objectSid)) await self.agent_out_q.put((LDAPAgentCommand.USER, { 'user': user, 'spns': spns })) except: await self.agent_out_q.put( (LDAPAgentCommand.EXCEPTION, str(traceback.format_exc()))) finally: await self.agent_out_q.put((LDAPAgentCommand.USERS_FINISHED, None))
def enum_user(self, user_data): user_data = MSADUser.from_ldap(user_data) user = ADUser.from_aduser(user_data) user.ad_id = self.ad_id self.session.add(user) self.session.commit() self.session.refresh(user) for spn in getattr(user, 'allowedtodelegateto', []): con = JackDawUserConstrainedDelegation() con.spn = spn con.targetaccount = LDAPEnumeratorManager.spn_to_account(spn) user.allowedtodelegateto.append(con) self.session.commit() membership_attr = { 'dn': str(user.dn), 'cn': str(user.cn), 'guid': str(user.objectGUID), 'sid': str(user.objectSid), 'type': 'user' } self.member_ctr += 1 job = LDAPAgentJob(LDAPAgentCommand.MEMBERSHIPS, membership_attr) self.agent_in_q.put(job) self.sd_ctr += 1 job = LDAPAgentJob(LDAPAgentCommand.SDS, { 'dn': user.dn, 'obj_type': 'user' }) self.agent_in_q.put(job)
async def get_all_users(self): try: async for user_data in self.ldap.get_all_user_objects(): user = ADUser.from_aduser(user_data) await self.agent_out_q.coro_put((LDAPAgentCommand.USER, user)) except: await self.agent_out_q.coro_put( (LDAPAgentCommand.EXCEPTION, str(traceback.format_exc()))) finally: await self.agent_out_q.coro_put( (LDAPAgentCommand.USERS_FINISHED, None))
def get_all_users(self): for user in self.ldap.get_all_user_objects(): #TODO: fix this ugly stuff here... if user.sAMAccountName[-1] == "$": continue yield (user, ADUser.from_aduser(user))