mirror of
https://github.com/samba-team/samba.git
synced 2025-11-07 12:23:51 +03:00
r2427: Add tests for samr_GetDomPwInfo, samr_RemoveMemberFromForeignDomain,
samr_LookupName, samr_OpenUser, samr_DeleteUser, samr_CreateUse and samr_OpenDomain.
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
a17aaadb7d
commit
086740c178
@@ -77,6 +77,142 @@ def test_QuerySecurity(pipe, handle):
|
|||||||
|
|
||||||
result = dcerpc.samr_QuerySecurity(pipe, r)
|
result = dcerpc.samr_QuerySecurity(pipe, r)
|
||||||
|
|
||||||
|
def test_GetDomPwInfo(pipe, domain):
|
||||||
|
|
||||||
|
print 'testing samr_GetDomPwInfo'
|
||||||
|
|
||||||
|
r = {}
|
||||||
|
r['handle'] = handle
|
||||||
|
r['name'] = {}
|
||||||
|
r['name']['name_len'] = 0
|
||||||
|
r['name']['name_size'] = 0
|
||||||
|
r['name']['name'] = domain
|
||||||
|
|
||||||
|
result = dcerpc.samr_GetDomPwInfo(pipe, r)
|
||||||
|
|
||||||
|
r['name']['name'] = '\\\\%s' % domain
|
||||||
|
|
||||||
|
result = dcerpc.samr_GetDomPwInfo(pipe, r)
|
||||||
|
|
||||||
|
r['name']['name'] = '\\\\__NONAME__'
|
||||||
|
|
||||||
|
result = dcerpc.samr_GetDomPwInfo(pipe, r)
|
||||||
|
|
||||||
|
r['name']['name'] = '\\\\Builtin'
|
||||||
|
|
||||||
|
result = dcerpc.samr_GetDomPwInfo(pipe, r)
|
||||||
|
|
||||||
|
def test_RemoveMemberFromForeignDomain(pipe, domain_handle):
|
||||||
|
|
||||||
|
r = {}
|
||||||
|
r['handle'] = domain_handle
|
||||||
|
r['sid'] = {}
|
||||||
|
r['sid']['sid_rev_num'] = 1
|
||||||
|
r['sid']['id_auth'] = [1, 2, 3, 4, 5, 6]
|
||||||
|
r['sid']['num_auths'] = 4
|
||||||
|
r['sid']['sub_auths'] = [7, 8, 9, 10]
|
||||||
|
|
||||||
|
result = dcerpc.samr_RemoveMemberFromForeignDomain(pipe, r)
|
||||||
|
|
||||||
|
def test_CreateUser2(pipe, domain_handle):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def test_LookupName(pipe, domain_handle, name):
|
||||||
|
|
||||||
|
r = {}
|
||||||
|
r['handle'] = domain_handle
|
||||||
|
r['num_names'] = 1
|
||||||
|
r['names'] = []
|
||||||
|
r['names'].append({'name_len': 0, 'name_size': 0, 'name': name})
|
||||||
|
|
||||||
|
result = dcerpc.samr_LookupNames(pipe, r)
|
||||||
|
|
||||||
|
rid = result['rids']['ids'][0]
|
||||||
|
|
||||||
|
r['num_names'] = 2
|
||||||
|
r['names'].append({'name_len': 0, 'name_size': 0, 'name': 'xxNONAMExx'})
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
result = dcerpc.samr_LookupNames(pipe, r)
|
||||||
|
except dcerpc.NTSTATUS, arg:
|
||||||
|
if arg[0] != 0x00000107:
|
||||||
|
raise dcerpc.NTSTATUS(arg)
|
||||||
|
|
||||||
|
r['num_names'] = 0
|
||||||
|
|
||||||
|
result = dcerpc.samr_LookupNames(pipe, r)
|
||||||
|
|
||||||
|
return rid
|
||||||
|
|
||||||
|
def test_OpenUser_byname(pipe, domain_handle, name):
|
||||||
|
|
||||||
|
rid = test_LookupName(pipe, domain_handle, name)
|
||||||
|
|
||||||
|
r = {}
|
||||||
|
r['handle'] = domain_handle
|
||||||
|
r['access_mask'] = 0x02000000
|
||||||
|
r['rid'] = rid
|
||||||
|
|
||||||
|
result = dcerpc.samr_OpenUser(pipe, r)
|
||||||
|
|
||||||
|
return result['acct_handle']
|
||||||
|
|
||||||
|
def test_DeleteUser_byname(pipe, domain_handle, name):
|
||||||
|
|
||||||
|
user_handle = test_OpenUser_byname(pipe, domain_handle, name)
|
||||||
|
|
||||||
|
r = {}
|
||||||
|
r['handle'] = user_handle
|
||||||
|
|
||||||
|
dcerpc.samr_DeleteUser(pipe, r)
|
||||||
|
|
||||||
|
def test_CreateUser(pipe, domain_handle):
|
||||||
|
|
||||||
|
r = {}
|
||||||
|
r['handle'] = domain_handle
|
||||||
|
r['account_name'] = {}
|
||||||
|
r['account_name']['name_len'] = 0
|
||||||
|
r['account_name']['name_size'] = 0
|
||||||
|
r['account_name']['name'] = 'samrtorturetest'
|
||||||
|
r['access_mask'] = 0x02000000
|
||||||
|
|
||||||
|
try:
|
||||||
|
result = dcerpc.samr_CreateUser(pipe, r)
|
||||||
|
except dcerpc.NTSTATUS, arg:
|
||||||
|
if arg[0] == 0xc0000022:
|
||||||
|
return
|
||||||
|
elif arg[0] == 0xc0000063:
|
||||||
|
test_DeleteUser_byname(pipe, domain_handle, 'samrtorturetest')
|
||||||
|
result = dcerpc.samr_CreateUser(pipe, r)
|
||||||
|
else:
|
||||||
|
raise dcerpc.NTSTATUS(arg)
|
||||||
|
|
||||||
|
user_handle = result['acct_handle']
|
||||||
|
|
||||||
|
# samr_QueryUserInfo(), etc
|
||||||
|
|
||||||
|
def test_OpenDomain(pipe, handle, domain_sid):
|
||||||
|
|
||||||
|
print 'testing samr_OpenDomain'
|
||||||
|
|
||||||
|
r = {}
|
||||||
|
r['handle'] = handle
|
||||||
|
r['access_mask'] = 0x02000000
|
||||||
|
r['sid'] = domain_sid
|
||||||
|
|
||||||
|
result = dcerpc.samr_OpenDomain(pipe, r)
|
||||||
|
|
||||||
|
domain_handle = result['domain_handle']
|
||||||
|
|
||||||
|
test_QuerySecurity(pipe, domain_handle)
|
||||||
|
|
||||||
|
test_RemoveMemberFromForeignDomain(pipe, domain_handle)
|
||||||
|
|
||||||
|
test_CreateUser2(pipe, domain_handle)
|
||||||
|
|
||||||
|
test_CreateUser(pipe, domain_handle)
|
||||||
|
|
||||||
def test_LookupDomain(pipe, handle, domain):
|
def test_LookupDomain(pipe, handle, domain):
|
||||||
|
|
||||||
print 'testing samr_LookupDomain'
|
print 'testing samr_LookupDomain'
|
||||||
@@ -86,9 +222,13 @@ def test_LookupDomain(pipe, handle, domain):
|
|||||||
r['domain'] = {}
|
r['domain'] = {}
|
||||||
r['domain']['name_len'] = 0
|
r['domain']['name_len'] = 0
|
||||||
r['domain']['name_size'] = 0
|
r['domain']['name_size'] = 0
|
||||||
r['domain']['name'] = domain
|
r['domain']['name'] = None
|
||||||
|
|
||||||
result = dcerpc.samr_LookupDomain(pipe, r)
|
try:
|
||||||
|
result = dcerpc.samr_LookupDomain(pipe, r)
|
||||||
|
except dcerpc.NTSTATUS, arg:
|
||||||
|
if arg[0] != 0xc000000d:
|
||||||
|
raise dcerpc.NTSTATUS(arg)
|
||||||
|
|
||||||
r['domain']['name'] = 'xxNODOMAINxx'
|
r['domain']['name'] = 'xxNODOMAINxx'
|
||||||
|
|
||||||
@@ -98,6 +238,14 @@ def test_LookupDomain(pipe, handle, domain):
|
|||||||
if arg[0] != 0xc00000df:
|
if arg[0] != 0xc00000df:
|
||||||
raise dcerpc.NTSTATUS(arg)
|
raise dcerpc.NTSTATUS(arg)
|
||||||
|
|
||||||
|
r['domain']['name'] = domain
|
||||||
|
|
||||||
|
result = dcerpc.samr_LookupDomain(pipe, r)
|
||||||
|
|
||||||
|
test_GetDomPwInfo(pipe, domain)
|
||||||
|
|
||||||
|
test_OpenDomain(pipe, handle, result['sid'])
|
||||||
|
|
||||||
def test_EnumDomains(pipe, handle):
|
def test_EnumDomains(pipe, handle):
|
||||||
|
|
||||||
print 'testing samr_EnumDomains'
|
print 'testing samr_EnumDomains'
|
||||||
|
|||||||
Reference in New Issue
Block a user