unclesp1d3r / CipherSwarm

CipherSwarm is a distributed hash cracking system designed for efficiency and scalability, built on Ruby on Rails.
Mozilla Public License 2.0
2 stars 0 forks source link

Create a user api to enable the development of a CLI for administering CipherSwarm #214

Open unclesp1d3r opened 1 month ago

unclesp1d3r commented 1 month ago

We need to develop a user API endpoint that exposes the various models that allow us to manage users, hash lists, campaigns, word lists, rule lists, and mask lists. It should also expose enough data to allow us to view the status of attacks, campaigns, and agents and download cracked hashes as John the Ripper-compatible pot files.

Objectives:

  1. User Management:

    • Create endpoints for adding, deleting, and updating user information.
    • Ensure proper authentication and authorization mechanisms are in place.
  2. Hash Lists Management:

    • Provide endpoints to upload, list, and delete hash lists.
    • Enable the association of hash lists with specific campaigns.
  3. Campaigns Management:

    • Develop endpoints to create, start, pause, and stop campaigns.
    • Implement functionality for listing active and completed campaigns.
  4. Word Lists, Rule Lists, and Mask Lists Management:

    • Create endpoints for managing word, rule, and mask lists.
    • Ensure these lists can be easily associated with campaigns.
  5. Status and Monitoring:

    • Provide endpoints to retrieve the status of attacks, individual campaigns, and agents.
    • Implement real-time monitoring features to track the progress of ongoing tasks.
  6. Result Handling:

    • Develop endpoints for downloading cracked hashes in John the Ripper-compatible pot files.
    • Ensure secure and efficient data transfer mechanisms.

Expected Behavior:

Separation of Concerns:

Environment Details:

Additional Context:

Steps to Reproduce:

  1. Define the API endpoints and their functionalities.
  2. Implement the endpoints following the outlined objectives.
  3. Test the endpoints to ensure they meet the expected behavior.
  4. Document the API for developers and users.