Python impacket.dcerpc.v5.dtypes.RPC_SID Examples
The following are 26
code examples of impacket.dcerpc.v5.dtypes.RPC_SID().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
impacket.dcerpc.v5.dtypes
, or try the search function
.
Example #1
Source File: test_samr.py From CVE-2017-7494 with GNU General Public License v3.0 | 5 votes |
def test_SamrAddMemberToAlias_SamrRemoveMemberFromAlias(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) request = samr.SamrAddMemberToAlias() request['AliasHandle'] = aliasHandle request['MemberId'] = sid resp2 = dce.request(request) resp2.dump() request = samr.SamrRemoveMemberFromAlias() request['AliasHandle'] = aliasHandle request['MemberId'] = sid resp2 = dce.request(request) resp2.dump() request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request)
Example #2
Source File: test_samr.py From PiBunny with MIT License | 5 votes |
def test_hSamrRemoveMemberFromForeignDomain(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) try: resp= samr.hSamrRemoveMemberFromForeignDomain(dce, domainHandle, sid) resp = dce.request(request) resp.dump() except Exception, e: if str(e).find('STATUS_SPECIAL_ACCOUNT') < 0: raise
Example #3
Source File: test_samr.py From PiBunny with MIT License | 5 votes |
def test_hSamrAddMemberToAlias_hSamrRemoveMemberFromAlias(self): dce, rpctransport, domainHandle = self.connect() resp = samr.hSamrCreateAliasInDomain(dce, domainHandle, 'testGroup', samr.GROUP_ALL_ACCESS | samr.DELETE) resp.dump() aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) resp2 = samr.hSamrAddMemberToAlias(dce, aliasHandle, sid) resp2.dump() resp2 = samr.hSamrRemoveMemberFromAlias(dce, aliasHandle, sid) resp2.dump() resp = samr.hSamrDeleteAlias(dce, aliasHandle) resp.dump()
Example #4
Source File: test_samr.py From PiBunny with MIT License | 5 votes |
def test_SamrAddMemberToAlias_SamrRemoveMemberFromAlias(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) request = samr.SamrAddMemberToAlias() request['AliasHandle'] = aliasHandle request['MemberId'] = sid resp2 = dce.request(request) resp2.dump() request = samr.SamrRemoveMemberFromAlias() request['AliasHandle'] = aliasHandle request['MemberId'] = sid resp2 = dce.request(request) resp2.dump() request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request)
Example #5
Source File: test_samr.py From PiBunny with MIT License | 5 votes |
def test_hSamrOpenDomain(self): dce, rpctransport, domainHandle = self.connect() resp = samr.hSamrConnect(dce) SID = 'S-1-5-352321536-2562177771-1589929855-2033349547' sid = dtypes.RPC_SID() sid.fromCanonical(SID) try: resp = samr.hSamrOpenDomain(dce, serverHandle = resp['ServerHandle'], domainId = sid) resp.dump() except Exception, e: if str(e).find('STATUS_NO_SUCH_DOMAIN') < 0: raise
Example #6
Source File: test_samr.py From Slackor with GNU General Public License v3.0 | 5 votes |
def test_hSamrRemoveMemberFromForeignDomain(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) try: resp= samr.hSamrRemoveMemberFromForeignDomain(dce, domainHandle, sid) resp = dce.request(request) resp.dump() except Exception as e: if str(e).find('STATUS_SPECIAL_ACCOUNT') < 0: raise request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle dce.request(request)
Example #7
Source File: test_samr.py From Slackor with GNU General Public License v3.0 | 5 votes |
def test_hSamrAddMemberToAlias_hSamrRemoveMemberFromAlias(self): dce, rpctransport, domainHandle = self.connect() resp = samr.hSamrCreateAliasInDomain(dce, domainHandle, 'testGroup', samr.GROUP_ALL_ACCESS | samr.DELETE) resp.dump() aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) resp2 = samr.hSamrAddMemberToAlias(dce, aliasHandle, sid) resp2.dump() resp2 = samr.hSamrRemoveMemberFromAlias(dce, aliasHandle, sid) resp2.dump() resp = samr.hSamrDeleteAlias(dce, aliasHandle) resp.dump()
Example #8
Source File: test_samr.py From Slackor with GNU General Public License v3.0 | 5 votes |
def test_SamrAddMemberToAlias_SamrRemoveMemberFromAlias(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) request = samr.SamrAddMemberToAlias() request['AliasHandle'] = aliasHandle request['MemberId'] = sid resp2 = dce.request(request) resp2.dump() request = samr.SamrRemoveMemberFromAlias() request['AliasHandle'] = aliasHandle request['MemberId'] = sid resp2 = dce.request(request) resp2.dump() request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle dce.request(request)
Example #9
Source File: test_samr.py From Slackor with GNU General Public License v3.0 | 5 votes |
def test_hSamrOpenDomain(self): dce, rpctransport, domainHandle = self.connect() resp = samr.hSamrConnect(dce) SID = 'S-1-5-352321536-2562177771-1589929855-2033349547' sid = dtypes.RPC_SID() sid.fromCanonical(SID) try: resp = samr.hSamrOpenDomain(dce, serverHandle = resp['ServerHandle'], domainId = sid) resp.dump() except Exception as e: if str(e).find('STATUS_NO_SUCH_DOMAIN') < 0: raise
Example #10
Source File: dpapi.py From Slackor with GNU General Public License v3.0 | 5 votes |
def dump(self): print("[NGC VAULT]") print('Sid : %s' % RPC_SID(b'\x05\x00\x00\x00'+self['Sid']).formatCanonical()) print('Friendly Name: %s' % self['Name'].decode('utf-16le')) self['Blob'].dump() print()
Example #11
Source File: dpapi.py From Slackor with GNU General Public License v3.0 | 5 votes |
def dump(self): print("[WINDOWS BIOMETRIC KEY]") print('Sid : %s' % RPC_SID(b'\x05\x00\x00\x00'+self['Sid']).formatCanonical()) print('Friendly Name: %s' % self['Name'].decode('utf-16le')) print('Biometric Key: 0x%s' % (hexlify(self['BioKey']['bKey'])).decode('latin-1')) print()
Example #12
Source File: test_samr.py From cracke-dit with MIT License | 5 votes |
def test_hSamrRemoveMemberFromForeignDomain(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) try: resp= samr.hSamrRemoveMemberFromForeignDomain(dce, domainHandle, sid) resp = dce.request(request) resp.dump() except Exception, e: if str(e).find('STATUS_SPECIAL_ACCOUNT') < 0: raise
Example #13
Source File: test_samr.py From cracke-dit with MIT License | 5 votes |
def test_hSamrAddMemberToAlias_hSamrRemoveMemberFromAlias(self): dce, rpctransport, domainHandle = self.connect() resp = samr.hSamrCreateAliasInDomain(dce, domainHandle, 'testGroup', samr.GROUP_ALL_ACCESS | samr.DELETE) resp.dump() aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) resp2 = samr.hSamrAddMemberToAlias(dce, aliasHandle, sid) resp2.dump() resp2 = samr.hSamrRemoveMemberFromAlias(dce, aliasHandle, sid) resp2.dump() resp = samr.hSamrDeleteAlias(dce, aliasHandle) resp.dump()
Example #14
Source File: test_samr.py From cracke-dit with MIT License | 5 votes |
def test_SamrAddMemberToAlias_SamrRemoveMemberFromAlias(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) request = samr.SamrAddMemberToAlias() request['AliasHandle'] = aliasHandle request['MemberId'] = sid resp2 = dce.request(request) resp2.dump() request = samr.SamrRemoveMemberFromAlias() request['AliasHandle'] = aliasHandle request['MemberId'] = sid resp2 = dce.request(request) resp2.dump() request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request)
Example #15
Source File: test_samr.py From cracke-dit with MIT License | 5 votes |
def test_hSamrOpenDomain(self): dce, rpctransport, domainHandle = self.connect() resp = samr.hSamrConnect(dce) SID = 'S-1-5-352321536-2562177771-1589929855-2033349547' sid = dtypes.RPC_SID() sid.fromCanonical(SID) try: resp = samr.hSamrOpenDomain(dce, serverHandle = resp['ServerHandle'], domainId = sid) resp.dump() except Exception, e: if str(e).find('STATUS_NO_SUCH_DOMAIN') < 0: raise
Example #16
Source File: test_samr.py From CVE-2017-7494 with GNU General Public License v3.0 | 5 votes |
def test_hSamrRemoveMemberFromForeignDomain(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) try: resp= samr.hSamrRemoveMemberFromForeignDomain(dce, domainHandle, sid) resp = dce.request(request) resp.dump() except Exception, e: if str(e).find('STATUS_SPECIAL_ACCOUNT') < 0: raise
Example #17
Source File: test_samr.py From CVE-2017-7494 with GNU General Public License v3.0 | 5 votes |
def test_hSamrAddMemberToAlias_hSamrRemoveMemberFromAlias(self): dce, rpctransport, domainHandle = self.connect() resp = samr.hSamrCreateAliasInDomain(dce, domainHandle, 'testGroup', samr.GROUP_ALL_ACCESS | samr.DELETE) resp.dump() aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) resp2 = samr.hSamrAddMemberToAlias(dce, aliasHandle, sid) resp2.dump() resp2 = samr.hSamrRemoveMemberFromAlias(dce, aliasHandle, sid) resp2.dump() resp = samr.hSamrDeleteAlias(dce, aliasHandle) resp.dump()
Example #18
Source File: test_samr.py From CVE-2017-7494 with GNU General Public License v3.0 | 5 votes |
def test_hSamrOpenDomain(self): dce, rpctransport, domainHandle = self.connect() resp = samr.hSamrConnect(dce) SID = 'S-1-5-352321536-2562177771-1589929855-2033349547' sid = dtypes.RPC_SID() sid.fromCanonical(SID) try: resp = samr.hSamrOpenDomain(dce, serverHandle = resp['ServerHandle'], domainId = sid) resp.dump() except Exception, e: if str(e).find('STATUS_NO_SUCH_DOMAIN') < 0: raise
Example #19
Source File: test_samr.py From cracke-dit with MIT License | 4 votes |
def test_hSamrGetAliasMembership(self): dce, rpctransport, domainHandle = self.connect() #resp = samr.hSamrEnumerateAliasesInDomain(dce, domainHandle) #resp = samr.hSamrOpenAlias(dce, domainHandle, samr.DELETE, 1268) #resp = samr.hSamrDeleteAlias(dce, resp['AliasHandle']) request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) guestSID = domainID + '-%d' % samr.DOMAIN_USER_RID_GUEST sid1 = samr.RPC_SID() sid1.fromCanonical(adminSID) sid2 = samr.RPC_SID() sid2.fromCanonical(guestSID) si = samr.PSAMPR_SID_INFORMATION() si['SidPointer'] = sid1 si2 = samr.PSAMPR_SID_INFORMATION() si2['SidPointer'] = sid2 sidsArray = samr.SAMPR_PSID_ARRAY() sidsArray['Sids'].append(si) sidsArray['Sids'].append(si2) try: resp = samr.hSamrGetAliasMembership(dce, domainHandle, sidsArray) resp.dump() except Exception, e: request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request) raise
Example #20
Source File: test_samr.py From cracke-dit with MIT License | 4 votes |
def test_hSamrAddMultipleMembersToAlias_hSamrRemoveMultipleMembersFromAliass(self): dce, rpctransport, domainHandle = self.connect() #resp = samr.hSamrEnumerateAliasesInDomain(dce, domainHandle) #resp = samr.hSamrOpenAlias(dce, domainHandle, samr.DELETE, 1257) #resp = samr.hSamrDeleteAlias(dce, resp['AliasHandle']) resp = samr.hSamrCreateAliasInDomain(dce, domainHandle, 'testGroup', samr.GROUP_ALL_ACCESS | samr.DELETE) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) sid = samr.RPC_SID() sid.fromCanonical(adminSID) guestSID = domainID + '-%d' % samr.DOMAIN_USER_RID_GUEST sid1 = samr.RPC_SID() sid1.fromCanonical(adminSID) sid2 = samr.RPC_SID() sid2.fromCanonical(guestSID) si = samr.PSAMPR_SID_INFORMATION() si['SidPointer'] = sid1 si2 = samr.PSAMPR_SID_INFORMATION() si2['SidPointer'] = sid2 sidArray = samr.SAMPR_PSID_ARRAY() sidArray['Sids'].append(si) sidArray['Sids'].append(si2) resp = samr.hSamrAddMultipleMembersToAlias(dce, aliasHandle, sidArray) resp.dump() resp = samr.hSamrRemoveMultipleMembersFromAlias(dce, aliasHandle, sidArray) resp.dump() request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request)
Example #21
Source File: test_samr.py From CVE-2017-7494 with GNU General Public License v3.0 | 4 votes |
def test_hSamrGetAliasMembership(self): dce, rpctransport, domainHandle = self.connect() #resp = samr.hSamrEnumerateAliasesInDomain(dce, domainHandle) #resp = samr.hSamrOpenAlias(dce, domainHandle, samr.DELETE, 1268) #resp = samr.hSamrDeleteAlias(dce, resp['AliasHandle']) request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) guestSID = domainID + '-%d' % samr.DOMAIN_USER_RID_GUEST sid1 = samr.RPC_SID() sid1.fromCanonical(adminSID) sid2 = samr.RPC_SID() sid2.fromCanonical(guestSID) si = samr.PSAMPR_SID_INFORMATION() si['SidPointer'] = sid1 si2 = samr.PSAMPR_SID_INFORMATION() si2['SidPointer'] = sid2 sidsArray = samr.SAMPR_PSID_ARRAY() sidsArray['Sids'].append(si) sidsArray['Sids'].append(si2) try: resp = samr.hSamrGetAliasMembership(dce, domainHandle, sidsArray) resp.dump() except Exception, e: request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request) raise
Example #22
Source File: test_samr.py From Slackor with GNU General Public License v3.0 | 4 votes |
def test_SamrGetAliasMembership(self): dce, rpctransport, domainHandle = self.connect() request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) guestSID = domainID + '-%d' % samr.DOMAIN_USER_RID_GUEST sid1 = samr.RPC_SID() sid1.fromCanonical(adminSID) sid2 = samr.RPC_SID() sid2.fromCanonical(guestSID) si = samr.PSAMPR_SID_INFORMATION() si['SidPointer'] = sid1 si2 = samr.PSAMPR_SID_INFORMATION() si2['SidPointer'] = sid2 request = samr.SamrGetAliasMembership() request['DomainHandle'] = domainHandle request['SidArray']['Count'] = 2 request['SidArray']['Sids'].append(si) request['SidArray']['Sids'].append(si2) resp = dce.request(request) resp.dump() request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle dce.request(request)
Example #23
Source File: test_samr.py From Slackor with GNU General Public License v3.0 | 4 votes |
def test_hSamrGetAliasMembership(self): dce, rpctransport, domainHandle = self.connect() #resp = samr.hSamrEnumerateAliasesInDomain(dce, domainHandle) #resp = samr.hSamrOpenAlias(dce, domainHandle, samr.DELETE, 1268) #resp = samr.hSamrDeleteAlias(dce, resp['AliasHandle']) request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) guestSID = domainID + '-%d' % samr.DOMAIN_USER_RID_GUEST sid1 = samr.RPC_SID() sid1.fromCanonical(adminSID) sid2 = samr.RPC_SID() sid2.fromCanonical(guestSID) si = samr.PSAMPR_SID_INFORMATION() si['SidPointer'] = sid1 si2 = samr.PSAMPR_SID_INFORMATION() si2['SidPointer'] = sid2 sidsArray = samr.SAMPR_PSID_ARRAY() sidsArray['Sids'].append(si) sidsArray['Sids'].append(si2) try: resp = samr.hSamrGetAliasMembership(dce, domainHandle, sidsArray) resp.dump() except Exception as e: request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle dce.request(request) raise request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle dce.request(request)
Example #24
Source File: test_samr.py From CVE-2017-7494 with GNU General Public License v3.0 | 4 votes |
def test_hSamrAddMultipleMembersToAlias_hSamrRemoveMultipleMembersFromAliass(self): dce, rpctransport, domainHandle = self.connect() #resp = samr.hSamrEnumerateAliasesInDomain(dce, domainHandle) #resp = samr.hSamrOpenAlias(dce, domainHandle, samr.DELETE, 1257) #resp = samr.hSamrDeleteAlias(dce, resp['AliasHandle']) resp = samr.hSamrCreateAliasInDomain(dce, domainHandle, 'testGroup', samr.GROUP_ALL_ACCESS | samr.DELETE) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) sid = samr.RPC_SID() sid.fromCanonical(adminSID) guestSID = domainID + '-%d' % samr.DOMAIN_USER_RID_GUEST sid1 = samr.RPC_SID() sid1.fromCanonical(adminSID) sid2 = samr.RPC_SID() sid2.fromCanonical(guestSID) si = samr.PSAMPR_SID_INFORMATION() si['SidPointer'] = sid1 si2 = samr.PSAMPR_SID_INFORMATION() si2['SidPointer'] = sid2 sidArray = samr.SAMPR_PSID_ARRAY() sidArray['Sids'].append(si) sidArray['Sids'].append(si2) resp = samr.hSamrAddMultipleMembersToAlias(dce, aliasHandle, sidArray) resp.dump() resp = samr.hSamrRemoveMultipleMembersFromAlias(dce, aliasHandle, sidArray) resp.dump() request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request)
Example #25
Source File: test_samr.py From PiBunny with MIT License | 4 votes |
def test_hSamrAddMultipleMembersToAlias_hSamrRemoveMultipleMembersFromAliass(self): dce, rpctransport, domainHandle = self.connect() #resp = samr.hSamrEnumerateAliasesInDomain(dce, domainHandle) #resp = samr.hSamrOpenAlias(dce, domainHandle, samr.DELETE, 1257) #resp = samr.hSamrDeleteAlias(dce, resp['AliasHandle']) resp = samr.hSamrCreateAliasInDomain(dce, domainHandle, 'testGroup', samr.GROUP_ALL_ACCESS | samr.DELETE) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) sid = samr.RPC_SID() sid.fromCanonical(adminSID) guestSID = domainID + '-%d' % samr.DOMAIN_USER_RID_GUEST sid1 = samr.RPC_SID() sid1.fromCanonical(adminSID) sid2 = samr.RPC_SID() sid2.fromCanonical(guestSID) si = samr.PSAMPR_SID_INFORMATION() si['SidPointer'] = sid1 si2 = samr.PSAMPR_SID_INFORMATION() si2['SidPointer'] = sid2 sidArray = samr.SAMPR_PSID_ARRAY() sidArray['Sids'].append(si) sidArray['Sids'].append(si2) resp = samr.hSamrAddMultipleMembersToAlias(dce, aliasHandle, sidArray) resp.dump() resp = samr.hSamrRemoveMultipleMembersFromAlias(dce, aliasHandle, sidArray) resp.dump() request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request)
Example #26
Source File: test_samr.py From PiBunny with MIT License | 4 votes |
def test_hSamrGetAliasMembership(self): dce, rpctransport, domainHandle = self.connect() #resp = samr.hSamrEnumerateAliasesInDomain(dce, domainHandle) #resp = samr.hSamrOpenAlias(dce, domainHandle, samr.DELETE, 1268) #resp = samr.hSamrDeleteAlias(dce, resp['AliasHandle']) request = samr.SamrCreateAliasInDomain() request['DomainHandle'] = domainHandle request['AccountName'] = 'testGroup' request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE #request.dump() resp = dce.request(request) aliasHandle = resp['AliasHandle'] relativeId = resp['RelativeId'] resp.dump() request = samr.SamrRidToSid() request['ObjectHandle'] = domainHandle request['Rid'] = relativeId resp3 = dce.request(request) resp3.dump() # Let's extract the SID and remove the RID from one entry sp = resp3['Sid'].formatCanonical() domainID = '-'.join(sp.split('-')[:-1]) adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN sid = samr.RPC_SID() sid.fromCanonical(adminSID) guestSID = domainID + '-%d' % samr.DOMAIN_USER_RID_GUEST sid1 = samr.RPC_SID() sid1.fromCanonical(adminSID) sid2 = samr.RPC_SID() sid2.fromCanonical(guestSID) si = samr.PSAMPR_SID_INFORMATION() si['SidPointer'] = sid1 si2 = samr.PSAMPR_SID_INFORMATION() si2['SidPointer'] = sid2 sidsArray = samr.SAMPR_PSID_ARRAY() sidsArray['Sids'].append(si) sidsArray['Sids'].append(si2) try: resp = samr.hSamrGetAliasMembership(dce, domainHandle, sidsArray) resp.dump() except Exception, e: request = samr.SamrDeleteAlias() request['AliasHandle'] = aliasHandle resp = dce.request(request) raise