| 30 | class DumpSecrets: |
| 31 | |
| 32 | def __init__(self, remoteName, username='', password='', domain='', options=None): |
| 33 | self.__useVSSMethod = options.use_vss |
| 34 | self.__remoteName = remoteName |
| 35 | self.__remoteHost = options.target_ip |
| 36 | self.__username = username |
| 37 | self.__password = password |
| 38 | self.__domain = domain |
| 39 | self.__lmhash = '' |
| 40 | self.__nthash = '' |
| 41 | self.__aes_key_128 = options.aes_key_128 |
| 42 | self.__smbConnection = None |
| 43 | self.__remoteOps = None |
| 44 | self.__SAMHashes = None |
| 45 | self.__NTDSHashes = None |
| 46 | self.__LSASecrets = None |
| 47 | self.__systemHive = options.system |
| 48 | self.__bootkey = options.bootkey |
| 49 | self.__securityHive = options.security |
| 50 | self.__samHive = options.sam |
| 51 | self.__ntdsFile = options.ntds |
| 52 | self.__history = options.history |
| 53 | self.__noLMHash = True |
| 54 | self.__isRemote = True |
| 55 | self.__outputFileName = options.outputfile |
| 56 | self.__doKerberos = options.k |
| 57 | self.__justDC = options.just_dc |
| 58 | self.__justDCNTLM = options.just_dc_ntlm |
| 59 | self.__justUser = options.just_dc_user |
| 60 | self.__pwdLastSet = options.pwd_last_set |
| 61 | self.__printUserStatus= options.user_status |
| 62 | self.__resumeFileName = options.resumefile |
| 63 | self.__canProcessSAMLSA = True |
| 64 | self.__kdcHost = options.dc_ip |
| 65 | self.__options = options |
| 66 | |
| 67 | if options.hashes is not None: |
| 68 | self.__lmhash, self.__nthash = options.hashes.split(':') |
| 69 | |
| 70 | def connect(self): |
| 71 | self.__smbConnection = SMBConnection(self.__remoteName, self.__remoteHost) |