mirror of
https://github.com/samba-team/samba.git
synced 2025-11-11 00:23:51 +03:00
r3590: Add some more commands to rpcclient from a patch by jbm. Add
SamrQueryDomInfo, SamrQueryDomInfo2, SamrEnumDomainAliases, and SamrEnumDomainUsers.
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
6d918f1595
commit
91eb405354
@@ -73,11 +73,10 @@ def string_to_sid(string):
|
||||
|
||||
string = string[match.end():]
|
||||
|
||||
print map(type, sub_auths)
|
||||
|
||||
return {'sid_rev_num': sid_rev_num, 'id_auth': id_auth,
|
||||
'num_auths': num_auths, 'sub_auths': sub_auths}
|
||||
|
||||
|
||||
class SamrHandle:
|
||||
|
||||
def __init__(self, pipe, handle):
|
||||
@@ -92,6 +91,7 @@ class SamrHandle:
|
||||
|
||||
dcerpc.samr_Close(self.pipe, r)
|
||||
|
||||
|
||||
class ConnectHandle(SamrHandle):
|
||||
|
||||
def EnumDomains(self):
|
||||
@@ -139,20 +139,69 @@ class ConnectHandle(SamrHandle):
|
||||
|
||||
result = dcerpc.samr_OpenDomain(self.pipe, r)
|
||||
|
||||
return DomainHandle(pipe, result['domain_handle'])
|
||||
return DomainHandle(self.pipe, result['domain_handle'])
|
||||
|
||||
|
||||
class DomainHandle(SamrHandle):
|
||||
|
||||
def QueryDomainInfo(self, level = 2):
|
||||
|
||||
r = {}
|
||||
r['domain_handle'] = self.domain_handle
|
||||
r['domain_handle'] = self.handle
|
||||
r['level'] = level
|
||||
|
||||
result = dcerpc.samr_QueryDomainInfo(pipe, r)
|
||||
result = dcerpc.samr_QueryDomainInfo(self.pipe, r)
|
||||
|
||||
return result
|
||||
|
||||
def QueryDomainInfo2(self, level = 2):
|
||||
|
||||
r = {}
|
||||
r['domain_handle'] = self.handle
|
||||
r['level'] = level
|
||||
|
||||
result = dcerpc.samr_QueryDomainInfo2(self.pipe, r)
|
||||
|
||||
return result
|
||||
|
||||
def EnumDomainGroups(self):
|
||||
|
||||
r = {}
|
||||
r['domain_handle'] = self.handle
|
||||
r['resume_handle'] = 0
|
||||
r['max_size'] = 1000
|
||||
|
||||
result = dcerpc.samr_EnumDomainGroups(self.pipe, r)
|
||||
|
||||
return result
|
||||
|
||||
def EnumDomainAliases(self):
|
||||
|
||||
r = {}
|
||||
r['domain_handle'] = self.handle
|
||||
r['resume_handle'] = 0
|
||||
# acct_flags in SamrEnumerateAliasesInDomain has probably
|
||||
# no meaning so use 0xffffffff like W2K
|
||||
r['acct_flags'] = 0xffffffff
|
||||
r['max_size'] = 1000
|
||||
|
||||
result = dcerpc.samr_EnumDomainAliases(self.pipe, r)
|
||||
|
||||
return result
|
||||
|
||||
def EnumDomainUsers(self, user_account_flags = 16):
|
||||
|
||||
r = {}
|
||||
r['domain_handle'] = self.handle
|
||||
r['resume_handle'] = 0
|
||||
r['acct_flags'] = user_account_flags
|
||||
r['max_size'] = 1000
|
||||
|
||||
result = dcerpc.samr_EnumDomainUsers(self.pipe, r)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def Connect(pipe, system_name = None, access_mask = 0x02000000):
|
||||
"""Connect to the SAMR pipe."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user