CrackLord is a system designed to provide a scalable, pluggable, and distributed system for both password cracking as well as any other jobs needing lots of computing resources. Better said, CrackLord is a way to load balance the resources, such as CPU, GPU, Network, etc. from multiple hardware systems into a single queueing service across two primary services: the Resource and Queue. It won't make these tasks faster, but it will make it easier to manage them.
There are three primary components to CrackLord as shown in the above image:
- Queue - The Queue is a service that runs on a single system, providing an interface for users to submit, pause, resume, and delete jobs. These jobs are then processed and sent to available Resources to perform the actual work and handle the results.
- Resource / Resource Managers - Resources are the individual servers that are connected into the queue. They are managed by a resource manager plugins. These are code that allow various types of resources to be connected. Managers can directly connect to physical resources you own, or use cloud services to spawn resources as necessary.
- Tools - Tools are a set of plugins, configured on resources, that perform the underlying tasks such as running oclHashcat to crack passwords. Tools are written in the Go programming language and have a standard interface to make them easy to write or enhance. They are wrappers of the various tools used that require great deals of resources, such as John, HashCat, etc.
We have a set of packages built for every release we make, if you'd like to just use that you can do it by simply following the instructions here.
If you'd like to get things build from source, it will first require you to have a working Go build environment with the GOPATH setup. Additionally, you'll probably want Git and Mercurial setup to gather the various libraries and plugins that we've used in the code.
- First, you'll need to get cracklord itself.
go get github.com/jmmcatee/cracklord
- Next we need to get all of the dependencies downloaded for both the resource daemon and queue daemon.
go get github.com/jmmcatee/cracklord/cmd/queued
go get github.com/jmmcatee/cracklord/cmd/resourced
- Now we can actually build the queue daemon and resource daemon
go build github.com/jmmcatee/cracklord/cmd/queued
go build github.com/jmmcatee/cracklord/cmd/resourced
- Finally, we can run both the resource and queue daemons, which will both be in the cmd/queued and cmd/resourced directories. You will also need to setup the various configuration files, information for those can be found in our wiki.