Come dice @Lester T., hashcat è una buona opzione.
Come componente aggiuntivo, potresti anche esaminare GNU Parallel per utilizzare più macchine come un cluster. O forse OpenSSI che utilizza uno schema di immagine di sistema singolo per utilizzare più macchine con un singolo sistema operativo. Con un tale sistema, aircrack-ng può essere fatto per eseguire lo stesso comando su più macchine utilizzando molte liste di parole diverse o eventualmente mettendo in pipe un output di permutazione in aircrack-ng su ogni macchina.
(edit)
Un altro metodo al quale non ho pensato al momento di scrivere questa risposta sarebbe un software chiamato openmpi che è in grado di fare lo stesso dei metodi sopra (usando più risorse macchina). Puoi anche usare openmpi per controllare quanti core CPU e / o thread hardware è consentito utilizzare un processo. openmpi non richiede root per l'utilizzo su macchine locali a meno che il comando o il programma in esecuzione richieda le autorizzazioni di root. Puoi anche impostare openmpi su autossh su altre macchine su una rete utilizzando le connessioni ssh senza password a node0,node1,node2,... . È davvero molto utile se una GPU di fascia alta non è disponibile per un numero elevato di crunch.