🤖 AI Summary
Addressing challenges in practical cryptanalysis—including poor adaptability to heterogeneous environments, inefficient task scheduling, and suboptimal resource utilization—this paper proposes and implements a lightweight distributed password cracking platform built upon hashcat. The platform introduces a novel WebSocket-driven modular architecture, enabling dynamic onboarding and unified management of heterogeneous nodes across operating systems, CPU/GPU architectures, and vendor-specific hardware. Leveraging coordinated Web APIs and microservices, it achieves intelligent hash task distribution, real-time status synchronization, and adaptive load balancing. Experimental evaluation demonstrates that the platform significantly improves large-scale hash cracking throughput (3.2×–5.8× higher than single-node execution) and resource utilization in mixed-hardware environments. It thus delivers a highly compatible, scalable, and production-ready distributed solution for operational cryptanalysis.
📝 Abstract
This article documents the HashKitty platform, a distributed solution for password analysis based on the hashcat tool, designed to improve efficiency in both offensive and defensive security operations. The main objectives of this work are to utilise and characterise the hashcat tool, to develop a central platform that connects various computational nodes, to allow the use of nodes with different equipment and manufacturers, to distribute tasks among the nodes through a web platform, and to perform distributed password analysis. The results show that the presented solution achieves the proposed objectives, demonstrating effectiveness in workload distribution and password analysis using different types of nodes based on various operating systems and architectures. The architecture of HashKitty is based on a scalable and modular distributed architecture, composed of several components such as computational nodes, integration and control software, a web platform that implements our API, and database servers. In order to achieve a fast and organised development process for our application we used multiple frameworks, runtimes and libraries. For the communication between the computational nodes and the other software we made use of websockets so that we have real-time updates between them.