monarch

module
v0.0.2-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2023 License: BSD-3-Clause

README

Monarch

The Adversary Emulation Framework

Monarch is a C2 Framework designed to give implant developers the convenience of integrating with an existing backend, so that more time can be spent creating cutting-edge features and enhancing overall efficiency. By seamlessly integrating with an established backend, Monarch enables developers to dedicate their efforts to refining and expanding the capabilities of their implants, ensuring a swift and efficient development process.

How it works

Monarch leverages Docker containers to streamline the creation of agent builders, providing an isolated environment for compilation. Using pre-installed RPC endpoints, Monarch abstracts out the effort of building agents by providing an easy-to-use interface for managing build options and profiles.

Additionally, Monarch utilizes HTTP(s) endpoints to manage remote implants. These endpoints serve as a conduit, enabling efficient communication and control over distributed implants from a central hub. This approach empowers administrators to effectively oversee, direct, and interact with remote implants, facilitating smooth command execution and data retrieval.

Installing Monarch

Follow the installation instructions here.

Empress

Empress is the very first integration developed alongside Monarch, and as of version 0.0.1, the most mature. The techniques used to develop the implant and build should be viewed as best practice.

Find Empress here.

Issues

Issues I'm aware of:

  • Backslash replaced with null character on Windows client

If you encounter issues of any sort, please raise a new issue in the issues page, especially as this project is in its early stages of development. I'll do my best to response and resolve the issue on time.

Contributing

Feel free to contact me about wanting to contribute on the #golang channel on the BloodHoundGang slack (@Pygrum).

Inspirations

This project was heavily inspired by the following projects:

  • Mythic: @its-a-feature - Inspiration for Docker container usage
  • Sliver: @moloch-- - Awesome CLI and RPC implementations

Go and check them out!

Directories

Path Synopsis
cmd
pkg
config
Package config is responsible for managing configuration variables that are used by the application.
Package config is responsible for managing configuration variables that are used by the application.
db
log

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL