Pyrit on AWS
From charlesreid1
You can trash password cracker performance on AWS all day, but it sure beats the pants off my $40 server.
What This Is All About
Pyrit is a GPU password cracking tool. I'm going to use it as a password recovery tool to see how long it takes to find my home network's password.
AWS is Amazon Web Services, the rent-a-supercomputer marketplace. You can rent all kinds of computers, but most interesting for our purposes, you can rent a GPU cluster.
AWS
How To Do It
AWS Account Setup
First things first: set up an AWS account (requires credit card and phone number).
There is some useful AWS documentation here, that guides you through the steps of getting set up with AWS: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html
Amazon IAM
Now you will need to create users and groups for your EC2 instances. This can be done with Amazon's IAM, Integrated Account Manger. This will allow you to have the proper credentials to access an Amazon EC2 instance.
Administrator Group
This will give you administrator access on any EC2 instances that you fire up. Create the administrator group as described in the instructions here: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html
Make Users
Create your users: I made a root account and a normal account. Download their credentials file.
Now you'll use the IAM interface to add both of these users to the Administrators group, and set their passwords.
The instructions here are good: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html
When you go to the IAM main page, which lists all the users, you should also see a special URL you can use to sign in as the user that you have created. (Users?)
The url will look something like this:
https://[some multi-digit number that is actually your Amazon Web Services ID].signin.aws.amazon.com/console
Log In As Your User
Once you log in as your root user, you'll see an AWS console. One more step before you fire up an instance, and that's adding an SSH key.
Create Key Pair
Now, let's return to the AWS Control Panel.
The Linux instances you rent through Amazon can't be accessed with a password - they use public and private keys to connect. So you'll need to give a public key to Amazon.
You first create a key. You will name it (since you need one key per region, you can just name it with your username plus whatever region it is for).
Then you'll download a .pem file. This is your private AWS key. You will use this to prove to Amazon that, yes, you are in fact you, each time that you connect to your compute notes.
Keep the private key secret:
$ chmod 400 charles-oregon-key-pair.pem
Now you can connect with SSH, and point SSH to the private key with the -i flag:
$ ssh -i charles-oregon-key-pair.pem [etc etc etc]
Create Virtual Private Cloud
Whew! Almost done. Now you have to determine if you have a Virtual Private Cloud (VPC) by default. When I logged into my AWS account, and opened the EC2 portal, I saw "VPC" in the upper right hand part of the page.
Create Security Group
Now you have to create a security group that can access the node you're renting. Add access to port 22 for SSH. This allows your user account to access the nodes through port 22.
It will also be useful to have HTTP and HTTPS traffic turned on, so add those too.
That'll open ports 22, 80, and 443 on our AWS node.
Finally DONE
We're finally done setting everything up in AWS, we're ready to grab our $2 GPU node.
Getting GPU Instance
Okay, now its time to oggle at all the things on offer at the AWS store.
Operating System
Your first choice is operating system. I went with Ubuntu - classic - nothing fancy. We'll install everything we need from source.
Hardware
Your second choice is hardware. You can use the drop down menu to find GPU instances. There were two available to me: a GPU cluster with 8 CPU cores, 60 GB memory, and 16 GB RAM, or a monster 32 CPU core machine with 60 GB, 240 GB SSD storage, and a 10 Gigabit network link. Woah. That's serious.