if attr == 'this' or attr == 'thisown':
continue
-
+
result[attr] = getattr(obj, attr)
return result
Cmd.onecmd(self, line)
except dcerpc.NTSTATUS, arg:
print 'The command returned an error: %s' % arg[1]
-
+
# Command handlers
def do_help(self, line):
print 'Command exited with code %d' % os.WEXITSTATUS(status)
else:
print 'Command exited with signal %d' % os.WTERMSIG(status)
-
+
def do_EOF(self, line):
"""Exits rpcclient."""
print
def do_SamrEnumDomains(self, line):
"""Enumerate domain names."""
-
+
usage = 'usage: SamrEnumDomains'
if line != '':
print connect_handle.LookupDomain(args[0])
def do_SamrQueryDomInfo(self, line):
- """Return information about a domain designated by its SID."""
+ """Return information about a domain designated by its SID."""
- usage = 'SamrQueryDomInfo DOMAIN_SID [info_level]'
+ usage = 'SamrQueryDomInfo DOMAIN_SID [info_level]'
- parser = OptionParser(usage)
- options, args = parser.parse_args(string.split(line))
+ parser = OptionParser(usage)
+ options, args = parser.parse_args(string.split(line))
- if (len(args) == 0) or (len(args) > 2):
- print 'usage:', usage
- return
+ if (len(args) == 0) or (len(args) > 2):
+ print 'usage:', usage
+ return
pipe = dcerpc.pipe_connect(
'ncacn_np:%s' % self.server,
self.cred)
connect_handle = samr.Connect(pipe)
- domain_handle = connect_handle.OpenDomain(args[0])
+ domain_handle = connect_handle.OpenDomain(args[0])
- if (len(args) == 2):
- result = domain_handle.QueryDomainInfo(int(args[1]))
- else:
- result = domain_handle.QueryDomainInfo()
+ if (len(args) == 2):
+ result = domain_handle.QueryDomainInfo(int(args[1]))
+ else:
+ result = domain_handle.QueryDomainInfo()
pprint(swig2dict(result))
def do_SamrQueryDomInfo2(self, line):
- """Return information about a domain designated by its SID.
+ """Return information about a domain designated by its SID.
(Windows 2000 and >)"""
- usage = 'SamrQueryDomInfo2 DOMAIN_SID [info_level] (Windows 2000 and >)'
- parser = OptionParser(usage)
- options, args = parser.parse_args(string.split(line))
+ usage = 'SamrQueryDomInfo2 DOMAIN_SID [info_level] (Windows 2000 and >)'
+ parser = OptionParser(usage)
+ options, args = parser.parse_args(string.split(line))
- if len(args) == 0 or len(args) > 2:
- print 'usage:', usage
- return
+ if len(args) == 0 or len(args) > 2:
+ print 'usage:', usage
+ return
pipe = dcerpc.pipe_connect(
'ncacn_np:%s' % self.server,
self.cred)
connect_handle = samr.Connect(pipe)
- domain_handle = connect_handle.OpenDomain(args[0])
+ domain_handle = connect_handle.OpenDomain(args[0])
- if (len(args) == 2):
- result = domain_handle.QueryDomainInfo2(int(args[1]))
- else:
- result = domain_handle.QueryDomainInfo2()
+ if (len(args) == 2):
+ result = domain_handle.QueryDomainInfo2(int(args[1]))
+ else:
+ result = domain_handle.QueryDomainInfo2()
pprint(swig2dict(result))
def do_SamrEnumDomainGroups(self, line):
- """Return the list of groups of a domain designated by its SID."""
+ """Return the list of groups of a domain designated by its SID."""
- usage = 'SamrEnumDomainGroups DOMAIN_SID'
+ usage = 'SamrEnumDomainGroups DOMAIN_SID'
parser = OptionParser(usage)
options, args = parser.parse_args(string.split(line))
dcerpc.DCERPC_SAMR_UUID, int(dcerpc.DCERPC_SAMR_VERSION),
self.cred)
- connect_handle = samr.Connect(pipe)
- domain_handle = connect_handle.OpenDomain(args[0])
+ connect_handle = samr.Connect(pipe)
+ domain_handle = connect_handle.OpenDomain(args[0])
- result = domain_handle.EnumDomainGroups()
+ result = domain_handle.EnumDomainGroups()
pprint(result)
"""Return the list of aliases (local groups) of a domain designated
by its SID."""
- usage = 'SamrEnumDomainAliases DOMAIN_SID'
+ usage = 'SamrEnumDomainAliases DOMAIN_SID'
parser = OptionParser(usage)
options, args = parser.parse_args(string.split(line))
connect_handle = samr.Connect(pipe)
domain_handle = connect_handle.OpenDomain(args[0])
- result = domain_handle.EnumDomainAliases()
+ result = domain_handle.EnumDomainAliases()
pprint(result)
def do_SamrEnumDomainUsers(self, line):
- """Return the list of users of a domain designated by its SID."""
+ """Return the list of users of a domain designated by its SID."""
- usage = 'SamrEnumDomainUsers DOMAIN_SID [user_account_flags]'
+ usage = 'SamrEnumDomainUsers DOMAIN_SID [user_account_flags]'
parser = OptionParser(usage)
options, args = parser.parse_args(string.split(line))
- if (len(args) == 0) or (len(args) > 2):
- print 'usage:', usage
- return
+ if (len(args) == 0) or (len(args) > 2):
+ print 'usage:', usage
+ return
pipe = dcerpc.pipe_connect(
'ncacn_np:%s' % self.server,
connect_handle = samr.Connect(pipe)
domain_handle = connect_handle.OpenDomain(args[0])
- if (len(args) == 2):
- result = domain_handle.EnumDomainUsers(int(args[1]))
- else:
- result = domain_handle.EnumDomainUsers()
+ if (len(args) == 2):
+ result = domain_handle.EnumDomainUsers(int(args[1]))
+ else:
+ result = domain_handle.EnumDomainUsers()
pprint(result)
username = options.username
if username != '':
- cred = (domain, username, password)
+ cred = (domain, username, password)
# Run command loop