Skip to content

Cryptojacker payload #3411

@mssalvatore

Description

@mssalvatore

Description

Build a payload plugin that allows Infection Monkey to simulate a cryptominer. The user should be able to configure:

  • CPU utilization (percentage) (single-core only)
  • Memory utilization (percentage)
  • Time limit (None for unlimited)
  • Send getblocktemplate requests (boolean)

Notes

  • The cryptominer should generate sha256 hashes in order to consume CPU usage
  • The getblocktemplate requests can be sent to the Island (the payload doesn't actually need a response).
  • See Cryptominer Research #3389 for more details

Tasks

  • Create plugin skeleton (0d) - @shreyamalviya
    • options (pydantic)
      • determine what options cryptominer should have
      • create a pydantic model for cryptominer options
    • Create plugin manifest
    • Create config schema
  • Research and define events that the payload will generate (0d) @mssalvatore
  • Modify the payload interface to accept the server (Island) (0d) - @shreyamalviya
    • Modify the puppet to construct payloads with the server
  • Build a basic cryptominer with stubbed components (0d) - @shreyamalviya
    • plugin.py constructs and executes the cryptominer
    • implement and call stubbed memory utilization component
    • implement and call stubbed sha256 CPU utilization component
    • implement and call stubbed getblocktemplate request generator
    • implement the logic that respects the time limit option
  • implement the memory utilization component (0d) @mssalvatore
  • implement the cpu utilization component (0d) - See comments below - @shreyamalviya
  • implement the getblocktemplate component (0d) - @shreyamalviya @mssalvatore @ilija-lazoroski
  • Add a jenkins job to build the plugin (0d) @mssalvatore
    • Update the island build jobs on Jenkins to copy the artifacts from the ransomware plugin build job
  • Final testing (0d)
  • Add documentation (0d) @mssalvatore
  • update changelog @mssalvatore
  • Remove Vulture entries @mssalvatore
  • Manual test procedure

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions