Jump to content

Worth piping crunch to pyrit GPU


bolus
 Share

Recommended Posts

Hi all.

I've got a WPA2 handshake to crack, I know the format is 8 upper case A-Z and 0-9. I was thinking of using an AWS GPU instance to pipe Crunch output into Pyrit GPU, as I don't have masses of storage space to save the output. Does this sound like a feasible option, or can you think of a better way?

Cheers

Link to comment
Share on other sites

Why save the output?

Crunch spits out the generated sequence to try, the result is yes or no and you know there's only going to be 1 yes which just happens to be the only one you're interested in.

So your need isn't storage space, it's processing power. Correct?

Link to comment
Share on other sites

Why save the output?

Crunch spits out the generated sequence to try, the result is yes or no and you know there's only going to be 1 yes which just happens to be the only one you're interested in.

So your need isn't storage space, it's processing power. Correct?

Sorry, I worded my question rather vaguely. I have not a lot at home in terms of processing power, so am thinking that AWS GPU solution might be the way to go.

thanks for your quick response

Link to comment
Share on other sites

Just curious, what kind of GPU/GPU's are you using?

Probably one of these: https://aws.amazon.com/ec2/instance-types/(Scroll down for GPU G2). TBH I've only just started looking into this, and I was fortunate enough to receive a $50 AWS voucher, so thought I'd have a play around with GPU pyrit.

Model GPUs vCPU Mem (GiB) SSD Storage (GB)

g2.2xlarge 1 8 15 1 x 60

g2.8xlarge 4 32 60 2 x 120

Edited by bolus
Link to comment
Share on other sites

I wrote this a while ago. It works very similar to crunch, but also allows you to break up the whole task into individual parts easily.

So you can run it on multiple machines/devices/whatever and the same time. Just needs python.

#!/usr/bin/python
import getopt, sys
charset=['A', 'B'];minpasswordlength=2;maxpasswordlength=4;cores=-1;startindex=-1;endindex=-1;master=False
options, remainder = getopt.getopt(sys.argv[1:], '', ['master', 'charset=', 'minp=', 'maxp=', 'cores=', 'startindex=', 'endindex='])
for opt, arg in options:
	if opt == '--charset':
		charset = list(arg)
	elif opt == '--minp':
		minpasswordlength = int(arg)
	elif opt == '--maxp':
		maxpasswordlength = int(arg)
	elif opt == '--cores':
		cores = int(arg)
	elif opt == '--startindex':
		startindex = int(arg)
	elif opt == '--endindex':
		endindex = int(arg)
	elif opt == '--master':
		master = True

def find_max_index(charset, minpasswordlength, maxpasswordlength):
	maxindex = 0
	charsetlen = len(charset)
	for l in range(minpasswordlength, maxpasswordlength+1):
		maxindex += pow(charsetlen, l)
	return maxindex

def index2password(index, charset, minpasswordlength, maxpasswordlength):
	subsum = 0
	charsetlen = len(charset)
	for l in range(minpasswordlength, maxpasswordlength+1):
		passwordlength = l
		subsum += pow(charsetlen, l)
		if index < subsum:
			break
	subindex = (index-subsum) % pow(charsetlen, l)
	maxvarsize = pow(len(charset), passwordlength)
	ary = []
	for i in range(0,passwordlength):
		ary.append(charset[(subindex / pow(charsetlen,i)) % charsetlen])
	return ''.join(list(reversed(ary)))

if master and cores > 0:
	m=find_max_index(charset, minpasswordlength, maxpasswordlength)
	for i in range(0,cores):
		print "python "+sys.argv[0]+" --charset=\""+"".join(charset)+"\" --minp="+str(minpasswordlength)+" --maxp="+str(maxpasswordlength)+" --startindex="+str(int(i*(float(m)/float(cores))))+" --endindex="+str(int((i+1)*(float(m)/float(cores)))-1)
elif startindex != -1 and endindex != -1:
	for index in range(startindex, endindex+1):
		print index2password(index, charset, minpasswordlength, maxpasswordlength)
else:
	print "Usage: python "+sys.argv[0]+" --master --charset=\"ABC\" --minp=2 --maxp=4 --cores=3"
	print "\tmaster = create the various commands to split amongst the various devices"
	print "\tcharset = the characters you have in the password"
	print "\tminp = minimum number of characters in the password"
	print "\tmaxp = maximum number of characters in the password"
	print "\tcores = number of devices you want to split this task up into"
Link to comment
Share on other sites

do you have this gpu in your possession?

Post your pyrit benchmark speeds. My labtop is around 13000per second nvidia 560m and my desktop was like 17000per second. Nvidia something...

So, a little bit of math.

36**8=2,821,109,907,456

2.8 trillion combinations possible.

And how many seconds will it take me to complete the 2.8trillion using 2 of my machines...

36**8/30000=94,036,996

It will take me 94 million seconds to complete this 2.8trillion crunch... but we hope to find it half way threw lol...

31,536,000 thats how many seconds in a year so... 3 years of my machines crunching away at this...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...