MCPcopy Create free account
hub / github.com/secdev/scapy / import_krb

Method import_krb

scapy/modules/ticketer.py:665–724  ·  view source on GitHub ↗

Import the result of krb_[tgs/as]_req or a Ticket into the CCache. :param obj: a KRB_Ticket object or a AS_REP/TGS_REP object :param sessionkey: the session key that comes along the ticket

(self, res, key=None, hash=None, _inplace=None)

Source from the content-addressed store, hash-verified

663 del self.ccache.credentials[i]
664
665 def import_krb(self, res, key=None, hash=None, _inplace=None):
666 """
667 Import the result of krb_[tgs/as]_req or a Ticket into the CCache.
668
669 :param obj: a KRB_Ticket object or a AS_REP/TGS_REP object
670 :param sessionkey: the session key that comes along the ticket
671 """
672 # Instantiate CCCredential
673 if _inplace is not None:
674 cred = self.ccache.credentials[_inplace]
675 else:
676 cred = CCCredential()
677
678 # Update the cred
679 if isinstance(res, KRB_Ticket):
680 if key is None:
681 key = self._prompt_hash(
682 res.getSPN(),
683 etype=res.encPart.etype.val,
684 hash=hash,
685 )
686 decTkt = res.encPart.decrypt(key)
687 cred.set_from_krb(
688 res,
689 decTkt,
690 decTkt.key.toKey(),
691 decTkt,
692 )
693 else:
694 if isinstance(res, KerberosClient.RES_AS_MODE):
695 rep = res.asrep
696 elif isinstance(res, KerberosClient.RES_TGS_MODE):
697 rep = res.tgsrep
698
699 # There could be 171 = KERB_DMSA_KEY_PACKAGE to import
700 for padata in res.kdcrep.encryptedPaData:
701 if padata.padataType == 171:
702 # We have keys to import.
703 key_package = padata.padataValue
704 for key in key_package.currentKeys:
705 self.add_cred(
706 principal=rep.getUPN(),
707 key=key.toKey(),
708 )
709 log_interactive.info(
710 "%s DMSA keys found and imported !"
711 % len(key_package.currentKeys)
712 )
713 else:
714 raise ValueError("Unknown type of obj !")
715 cred.set_from_krb(
716 rep.ticket,
717 rep,
718 res.sessionkey,
719 res.kdcrep,
720 )
721
722 # Append to ccache

Callers 3

request_tgtMethod · 0.95
request_stMethod · 0.95
renewMethod · 0.95

Calls 9

_prompt_hashMethod · 0.95
set_from_krbMethod · 0.95
add_credMethod · 0.95
CCCredentialClass · 0.85
getSPNMethod · 0.45
decryptMethod · 0.45
toKeyMethod · 0.45
getUPNMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected