MCPcopy
hub / github.com/fortra/impacket / test_SamrRemoveMemberFromForeignDomain

Method test_SamrRemoveMemberFromForeignDomain

tests/dcerpc/test_samr.py:1743–1780  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1741 dce.request(request)
1742
1743 def test_SamrRemoveMemberFromForeignDomain(self):
1744 dce, rpc_transport = self.connect()
1745 domainHandle = self.get_domain_handle(dce)
1746
1747 request = samr.SamrCreateAliasInDomain()
1748 request['DomainHandle'] = domainHandle
1749 request['AccountName'] = self.test_group
1750 request['DesiredAccess'] = samr.GROUP_ALL_ACCESS | samr.DELETE
1751
1752 resp = dce.request(request)
1753 aliasHandle = resp['AliasHandle']
1754 relativeId = resp['RelativeId']
1755 resp.dump()
1756
1757 request = samr.SamrRidToSid()
1758 request['ObjectHandle'] = domainHandle
1759 request['Rid'] = relativeId
1760 resp3 = dce.request(request)
1761 resp3.dump()
1762
1763 # Let's extract the SID and remove the RID from one entry
1764 sp = resp3['Sid'].formatCanonical()
1765 domainID = '-'.join(sp.split('-')[:-1])
1766 adminSID = domainID + '-%d' % samr.DOMAIN_USER_RID_ADMIN
1767
1768 request = samr.SamrRemoveMemberFromForeignDomain()
1769 request['DomainHandle'] = domainHandle
1770 request['MemberSid'].fromCanonical(adminSID)
1771 try:
1772 resp = dce.request(request)
1773 resp.dump()
1774 except samr.DCERPCSessionError as e:
1775 if str(e).find('STATUS_SPECIAL_ACCOUNT') < 0:
1776 raise
1777
1778 request = samr.SamrDeleteAlias()
1779 request['AliasHandle'] = aliasHandle
1780 dce.request(request)
1781
1782 def test_hSamrRemoveMemberFromForeignDomain(self):
1783 dce, rpc_transport = self.connect()

Callers

nothing calls this directly

Calls 7

get_domain_handleMethod · 0.95
splitMethod · 0.80
connectMethod · 0.45
requestMethod · 0.45
dumpMethod · 0.45
formatCanonicalMethod · 0.45
fromCanonicalMethod · 0.45

Tested by

no test coverage detected