shadowbrokers-exploits/windows/Resources/Ops/PyScripts/lib/ops/override/commands.py

61 lines
3 KiB
Python
Raw Normal View History

import sys
import dsz
import ops.cmd, ops.data
from ops.pprint import pprint
from ops.parseargs import ArgumentParser
LOCATION_LOCAL = 0
LOCATION_REMOTE = 1
def main(args=[]):
flags = dsz.control.Method()
if ((__name__ == '__main__') and (dsz.script.Env['script_parent_echo_disabled'].lower() == 'true')):
dsz.control.quiet.On()
parser = ArgumentParser(prog='prettych', add_help=False)
cmdopts = parser.add_argument_group(title='commands options')
cmdopts.add_argument('--all', action='store_true', help='Also display finished commands')
cmdopts.add_argument('--any', action='store_true', help='Display commands from any address')
locationgrp = cmdopts.add_mutually_exclusive_group()
locationgrp.add_argument('--local', dest='location', default=LOCATION_LOCAL, const=LOCATION_LOCAL, action='store_const', help='List local commands (default)')
locationgrp.add_argument('--remote', dest='location', const=LOCATION_REMOTE, action='store_const', help='List remote commands')
cmdopts.add_argument('--astyped', action='store_true', help='Show commands as typed (rather than displaying expanded aliases)')
cmdopts.add_argument('--verbose', action='store_true', help='Show additional command information')
parser.add_argument('--echo', dest='dszquiet', default=True, action='store_false', help='Echo out the raw DSZ commands output in addition to pretty printing.')
options = parser.parse_args(args)
commands = ops.cmd.getDszCommand('commands', prefixes=['stopaliasing'], all=options.all, any=options.any, astyped=options.astyped, verbose=options.verbose, dszquiet=options.dszquiet)
if (options.location == LOCATION_LOCAL):
header = []
fields = []
if options.all:
header.append('Status')
fields.append('status')
header.extend(['ID', 'Target'])
fields.extend(['id', 'targetaddress'])
if (options.astyped or options.verbose):
header.append('Command (as-typed)')
fields.append('commandastyped')
if ((not options.astyped) or options.verbose):
header.append('Full Command')
fields.append('fullcommand')
header.extend(['Sent', 'Received'])
fields.extend(['bytessent', 'bytesreceived'])
elif (options.location == LOCATION_REMOTE):
commands.remote = True
header = ['ID', 'Command']
fields = ['id', 'name']
else:
print 'You win a prize! Also, you fail.'
sys.exit((-1))
result = commands.execute()
if (__name__ == '__main__'):
ops.data.script_export(result)
if (__name__ == '__main__'):
for i in xrange(len(result.command)):
if (result.command[i].id == int(dsz.script.Env['script_command_id'])):
del result.command[i]
break
pprint(result.command, header=header, dictorder=fields)
del flags
return True
if (__name__ == '__main__'):
main(sys.argv[1:])