def test_LsarAddPrivilegesToAccount_LsarRemovePrivilegesFromAccount(self): dce, rpctransport = self.connect() policyHandle = self.open_policy(dce) request = lsad.LsarQueryInformationPolicy2() request['PolicyHandle'] = policyHandle request[ 'InformationClass'] = lsad.POLICY_INFORMATION_CLASS.PolicyAccountDomainInformation resp = dce.request(request) sid = resp['PolicyInformation']['PolicyAccountDomainInfo'][ 'DomainSid'].formatCanonical() sid = sid + '-9999' request = lsad.LsarCreateAccount() request['PolicyHandle'] = policyHandle request['AccountSid'].fromCanonical(sid) request[ 'DesiredAccess'] = MAXIMUM_ALLOWED | lsad.ACCOUNT_ADJUST_PRIVILEGES resp = dce.request(request) resp.dump() accountHandle = resp['AccountHandle'] request = lsad.LsarAddPrivilegesToAccount() request['AccountHandle'] = accountHandle request['Privileges']['PrivilegeCount'] = 1 request['Privileges']['Control'] = 0 attribute = lsad.LSAPR_LUID_AND_ATTRIBUTES() attribute['Luid']['LowPart'] = 0 attribute['Luid']['HighPart'] = 3 attribute['Attributes'] = 3 request['Privileges']['Privilege'].append(attribute) try: resp = dce.request(request) resp.dump() except Exception: request = lsad.LsarDeleteObject() request['ObjectHandle'] = accountHandle dce.request(request) return request = lsad.LsarRemovePrivilegesFromAccount() request['AccountHandle'] = accountHandle request['AllPrivileges'] = 1 request['Privileges'] = NULL resp = dce.request(request) resp.dump() request = lsad.LsarDeleteObject() request['ObjectHandle'] = accountHandle resp = dce.request(request) resp.dump()
def test_LsarCreateAccount_LsarDeleteObject(self): dce, rpctransport, policyHandle = self.connect() request = lsad.LsarQueryInformationPolicy2() request['PolicyHandle'] = policyHandle request['InformationClass'] = lsad.POLICY_INFORMATION_CLASS.PolicyAccountDomainInformation resp = dce.request(request) sid = resp['PolicyInformation']['PolicyAccountDomainInfo']['DomainSid'].formatCanonical() sid = sid + '-9999' request = lsad.LsarCreateAccount() request['PolicyHandle'] = policyHandle request['AccountSid'].fromCanonical(sid) request['DesiredAccess'] = MAXIMUM_ALLOWED resp = dce.request(request) resp.dump() request = lsad.LsarDeleteObject() request['ObjectHandle'] = resp['AccountHandle'] resp = dce.request(request) resp.dump()
def test_LsarCreateSecret_LsarOpenSecret(self): dce, rpctransport = self.connect() policyHandle = self.open_policy(dce) request = lsad.LsarCreateSecret() request['PolicyHandle'] = policyHandle request['SecretName'] = 'MYSECRET' request['DesiredAccess'] = MAXIMUM_ALLOWED resp = dce.request(request) resp.dump() request = lsad.LsarOpenSecret() request['PolicyHandle'] = policyHandle request['SecretName'] = 'MYSECRET' request['DesiredAccess'] = MAXIMUM_ALLOWED resp0 = dce.request(request) resp0.dump() request = lsad.LsarSetSecret() request['SecretHandle'] = resp0['SecretHandle'] request['EncryptedCurrentValue']['Length'] = 16 request['EncryptedCurrentValue']['MaximumLength'] = 16 request['EncryptedCurrentValue']['Buffer'] = list('A' * 16) request['EncryptedOldValue']['Length'] = 16 request['EncryptedOldValue']['MaximumLength'] = 16 request['EncryptedOldValue']['Buffer'] = list('A' * 16) #request['EncryptedCurrentValue'] = NULL #request['EncryptedOldValue'] = NULL try: resp = dce.request(request) resp.dump() except Exception: pass request = lsad.LsarDeleteObject() request['ObjectHandle'] = resp0['SecretHandle'] resp = dce.request(request) resp.dump()