Skip to content

Commit

Permalink
Fixing key generation and exception handling
Browse files Browse the repository at this point in the history
  • Loading branch information
skelsec committed Oct 7, 2018
1 parent a30b286 commit e7e8d0a
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
9 changes: 5 additions & 4 deletions minikerberos/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import hashlib
import collections
from minikerberos.constants import *
from minikerberos.encryption import string_to_key, Enctype


# this is from impacket, a bit modified
Expand Down Expand Up @@ -72,14 +73,14 @@ def get_key_for_enctype(self, etype):
return bytes.fromhex(self.kerberos_key_aes_256)
if self.password is not None:
salt = (self.domain.upper() + self.username).encode()
return string_to_key(Enctype.AES256, self.password, salt).contents
return string_to_key(Enctype.AES256, self.password.encode(), salt).contents
raise Exception('There is no key for AES256 encryption')
elif etype == EncryptionType.AES128_CTS_HMAC_SHA1_96:
if self.kerberos_key_aes_128:
return bytes.fromhex(self.kerberos_key_aes_128)
if self.password is not None:
salt = (self.domain.upper() + self.username).encode()
return string_to_key(Enctype.AES128, self.password, salt).contents
return string_to_key(Enctype.AES128, self.password.encode(), salt).contents
raise Exception('There is no key for AES128 encryption')
elif etype == EncryptionType.ARCFOUR_HMAC_MD5:
if self.kerberos_key_rc4:
Expand All @@ -96,7 +97,7 @@ def get_key_for_enctype(self, etype):
return bytes.fromhex(self.kerberos_key_des)
elif self.password:
salt = (self.domain.upper() + self.username).encode()
return string_to_key(Enctype.DES3, self.password, salt).contents
return string_to_key(Enctype.DES3, self.password.encode(), salt).contents
else:
raise Exception('There is no key for DES3 encryption')

Expand All @@ -105,7 +106,7 @@ def get_key_for_enctype(self, etype):
return bytes.fromhex(self.kerberos_key_des)
elif self.password:
salt = (self.domain.upper() + self.username).encode()
return string_to_key(Enctype.DES_MD5, self.password, salt).contents
return string_to_key(Enctype.DES_MD5, self.password.encode(), salt).contents
else:
raise Exception('There is no key for DES3 encryption')

Expand Down
2 changes: 1 addition & 1 deletion minikerberos/security.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ def run(self, targets, override_etype = [2, 3, 16, 23, 17, 18]):
self.kcomm.get_TGT()
except Exception as e:
logger.exception('Failed to get TGT ticket! Reason: %s' % str(e))
return


tgss = []
for target in targets:
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
name="minikerberos",

# Version number (initial):
version="0.0.6",
version="0.0.7",

# Application author details:
author="Tamas Jos",
Expand Down

0 comments on commit e7e8d0a

Please sign in to comment.