This is an old revision of the document!
dcrack distributes WPA/2 PSK cracking across multiple servers.
A recent version Aircrack-ng and python is required on all systems.
Not much power or RAM is required for this system as it mostly receive commands from the user and communicates with clients.
./dcrack.py server
It will listen on port 1337 (TCP). Firewall rules are recommended to limit access to the server between the user(s) and the server and between the server and the cracking client(s).
This system needs raw power to be able to crack fast. RAM is irrelevant. It needs to be able to reach the server over the network.
./dcrack.py client <SERVER_IP>
Different systems will likely have different cracking speeds and the server adapts the workload (in this case, wordlists) to have all the systems finish at approximately the same time.
The client will first calculate its cracking speed and report it back to the server along with a client ID.
./dcrack.py cmd <SERVER_IP> cap <CAPTURE_FILENAME>
Capture file will be cleaned up too using wpaclean then uploaded. Take note of the BSSID as it will be required later on.
./dcrack.py cmd <SERVER_IP> dict <WORDLIST_PATH>
WPA passphrases must be between 8 and 63 characters long which means anything outside of that range will be removed. It will the compress and upload.
./dcrack.py cmd <SERVER_IP> crack <BSSID>
Now, query the status once in a while. Remember that the cracking clients report back to the server every 60 seconds (except when cracking is done).
./dcrack.py cmd <SERVER_IP> status
Protocol used is HTTP. There isn't any authentication or encryption for now and thus it is recommended to only use it in a trusted network and use firewall rules to prevent unauthorized access.
Once initiated, the client will do a benchmark to get the average speed and report back to the server along with a client ID. It will then poll the server for cracking jobs every 60 seconds. Once it receives one, it will gather the data required and start it.