mirror of
https://github.com/samba-team/samba.git
synced 2025-11-09 20:23:51 +03:00
90 lines
2.1 KiB
Python
Executable File
90 lines
2.1 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import dcerpc
|
|
from optparse import OptionParser
|
|
|
|
def test_Connect(handle):
|
|
|
|
print 'testing samr_Connect'
|
|
|
|
r = {}
|
|
r['system_name'] = '\0\0'
|
|
r['access_mask'] = 0x02000000
|
|
|
|
result = dcerpc.samr_Connect(pipe, r)
|
|
|
|
dcerpc.samr_Close(pipe, result)
|
|
|
|
print 'testing samr_Connect2'
|
|
|
|
r = {}
|
|
r['system_name'] = None
|
|
r['access_mask'] = 0x02000000
|
|
|
|
result = dcerpc.samr_Connect2(pipe, r)
|
|
dcerpc.samr_Close(pipe, result)
|
|
|
|
print 'testing samr_Connect3'
|
|
|
|
r = {}
|
|
r['system_name'] = None
|
|
r['unknown'] = 0
|
|
r['access_mask'] = 0x02000000
|
|
|
|
result = dcerpc.samr_Connect3(pipe, r)
|
|
dcerpc.samr_Close(pipe, result)
|
|
|
|
print 'testing samr_Connect4'
|
|
|
|
r = {}
|
|
r['system_name'] = None
|
|
r['unknown'] = 0
|
|
r['access_mask'] = 0x02000000
|
|
|
|
result = dcerpc.samr_Connect4(pipe, r)
|
|
dcerpc.samr_Close(pipe, result)
|
|
|
|
print 'testing samr_Connect5'
|
|
|
|
r = {}
|
|
r['system_name'] = None
|
|
r['access_mask'] = 0x02000000
|
|
r['level'] = 1
|
|
r['info'] = {}
|
|
r['info']['info1'] = {}
|
|
r['info']['info1']['unknown1'] = 0
|
|
r['info']['info1']['unknown2'] = 0
|
|
|
|
result = dcerpc.samr_Connect5(pipe, r)
|
|
|
|
print result
|
|
|
|
# parse command line
|
|
parser = OptionParser()
|
|
parser.add_option("-b", "--binding", action="store", type="string", dest="binding")
|
|
parser.add_option("-d", "--domain", action="store", type="string", dest="domain")
|
|
parser.add_option("-u", "--username", action="store", type="string", dest="username")
|
|
parser.add_option("-p", "--password", action="store", type="string", dest="password")
|
|
|
|
(options, args) = parser.parse_args()
|
|
|
|
if not options.binding:
|
|
parser.error('You must supply a binding string')
|
|
|
|
if not options.username or not options.password or not options.domain:
|
|
parser.error('You must supply a domain, username and password')
|
|
|
|
|
|
binding=options.binding
|
|
domain=options.domain
|
|
username=options.username
|
|
password=options.password
|
|
|
|
# Connect to server
|
|
|
|
pipe = dcerpc.pipe_connect(binding,
|
|
dcerpc.DCERPC_SAMR_UUID, dcerpc.DCERPC_SAMR_VERSION,
|
|
domain, username, password)
|
|
|
|
test_Connect(pipe)
|