MythicAgents / Apollo

A .NET Framework 4.0 Windows Agent
BSD 3-Clause "New" or "Revised" License
439 stars 89 forks source link

[WIP] Screenshot overhaul (milestone 1) #16

Closed reznok closed 3 years ago

reznok commented 3 years ago

This PR is to address Milestone 1, Screenshot Overhaul: https://github.com/MythicAgents/Apollo/milestone/1

Screenshot now functions similarly to psinject/assembly_inject. It will:

  1. Inject screenshot functionality into remote process
  2. Open a named pipe
  3. Take screenshots from all screens and send them into the pipe
  4. Apollo screenshot command module will connect to pipe and receive screenshot bytes
  5. Apollo uploads screenshots to Mythic

TODO:

djhohnstein commented 3 years ago

The kind of PR people dream about. I'll review today.

djhohnstein commented 3 years ago

Overall, very well done. My main feedback points are:

reznok commented 3 years ago

Error handling and IPC messages/BiunaryFormatter bindings have been added.

Design Changes: As we talked about in Slack, the client has no way of knowing how many screenshot messages it will be receiving. It is currently designed to keep processing screenshot messages until a ScreenshotTerminationMessage is received.