Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import pika
- import hashlib
- with open('hexstrings.txt', 'r') as fp:
- hash_list = fp.readlines()
- hash_list = [hash.strip() for hash in hash_list]
- print 'Loaded hash list'
- username = 'wmpdxxri'
- password = 'U54DKYFi22O5geZQ-sDUKIatP1JvNN_N'
- host = 'orangutan.rmq.cloudamqp.com'
- vhost = username
- exchange='ie3x'
- creds = pika.PlainCredentials(username, password)
- params = pika.ConnectionParameters(credentials=creds, host=host,
- virtual_host = vhost)
- conn = pika.BlockingConnection(params)
- channel = conn.channel()
- channel.exchange_declare(exchange='ie3x', type='topic')
- pattern = 'IEEE?Xtreme'
- def callback(ch, method, properties, body):
- global hash_list, pattern
- # print body
- msg = json.loads(body)
- if msg['event'] == 'password':
- print 'New password message with %d passwords' % len(msg['passwords'])
- print '%s-%s' % (msg['passwords'][0], msg['passwords'][-1])
- for password in msg['passwords']:
- hash = hashlib.sha256(pattern.replace('?', password)).hexdigest()
- if hash in hash_list:
- print 'Password MATCH %s:%s' % (password, hash)
- match_msg = {'event': 'match', 'hash': hash, 'password': password}
- channel.basic_publish(exchange='ie3x', routing_key='match', body=json.dumps(match_msg))
- ch.basic_ack(delivery_tag=method.delivery_tag)
- channel.queue_declare(queue='ie3x_worker')
- channel.queue_bind(queue='ie3x_worker', exchange='ie3x', routing_key='password')
- channel.basic_qos(prefetch_count=1)
- channel.basic_consume(callback, queue='ie3x_worker')
- print 'Waiting for messages...'
- channel.start_consuming()
Add Comment
Please, Sign In to add comment