Skip to content

Rebuild the HadoopExploiter as a plugin #2826

@mssalvatore

Description

@mssalvatore

Refactor

Component(s) to be refactored

  • HadoopExploiter

Explanation

The time has come! It's time to start migrating exploiters from being integrated with the agent monolith to plugins that are loaded on-demand.

Tasks

  • Generate a config schema for the hadoop exploiter (0d) @ilija-lazoroski @shreyamalviya
    • Read through the existing exploiter and identify any timeouts, ports, or other options that should be configurable.
  • Generate a plugin manifest for the hadoop exploiter (0d) @shreyamalviya
  • Rewrite the hadoop exploiter as a plugin (0d) @mssalvatore
    • Put this in monkey/agent_plugins/exploiters/hadoop
    • If ports in TargetHost are open, run exploiter. If closed, return. If unknown, run exploiter. Try all configured ports
    • Write a runner to speed up tests/debugging
    • Unit tests! - @mssalvatore
    • Don't inherit from WebRCE or HostExploiter
    • Don't forget to add MITRE attack tags
    • Tag the ExploitationEvent with relevant CVEs (AFAIK there are no CVEs, that's just how Hadoop is by default :/).
    • Write a build script that builds the plugin as a tar archive (Do we need one for each supported OS?) @ilija-lazoroski
    • Test ETE @ilija-lazoroski
    • Add more logging @ilija-lazoroski
    • Fix agent download race condition @mssalvatore
  • Remove hardcoded Hadoop (0d) @ilija-lazoroski
  • Create a wrapper to wrap plugins and protect them from trying to access the same handle simultaneously (0d) @mssalvatore
  • Make TCPPortSelector multiprocessing safe (0d) - @ilija-lazoroski @cakekoa
  • Pass TCPPortSelector to exploiter plugins at construction (0d) - @mssalvatore

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions