πŸ§™β€ Merlin v0.6.0 Beta Released

Aug 7 2018
Share
By: Russel Van Tuyl β€’ 4 min read

Beta version 0.6.0 of Merlin has been released on July 29, 2018 and is packed with many changes. Take a look at theΒ CHANGELOGΒ for a complete list of them. The biggest new feature of this version is support for the QUIC protocol as a C2 channel and is detailed in aΒ separate blog post.

x.509 Certificates

Merlin is distributed with theΒ data/x509/server.crtΒ andΒ data/x509/server.keyΒ certificate files. The idea is to make trying Merlin out for the first time very simple and easy. However, the certificates should be replaced with new files generated by the user and preferable issued by a trusted Certificate Authority. In order to make sure it is very clear the user is running the server using the certificates publicly distributed with Merlin, a message is printed to the console during startup. By default Merlin will look in theΒ data/x509Β directory for x509 certificates. Alternatively, theΒ -x509certΒ andΒ -x509keyΒ command line flags can be used to provide the path to your own certificates.

Insecure x.509 Certificate Warning

Agent Status

TheΒ sessionsΒ command from the main menu and theΒ infoΒ command from the agent menu will display the current status of the agent.Β ActiveΒ indicates the agent is communicating on schedule according to its sleep time.Β DelayedΒ means the agent has missed at least 1 check in based on the known sleep time but not more than number of the maxretry setting, plus 1. One is added to the maxretry setting to account for skew, which is determined randomly each time by the agent. The server does not have a way to account for the agent skew.Β DeadΒ shows when the agent has missed a check in for the value of the maxretry setting plus 1. It should be noted that the agent can still communicate with the server even if it is marked as Dead and the status will change back to Active.

1f003UnCduKit6spi9RVWA

When an agent is marked as dead, you might not want to continue seeing it when you print the sessions table or when you are using the built-in tab completion to select an agent. For this reason, theΒ removeΒ command was added to the main menu. It should be noted that even after an agent is removed, it could still check in and would be treated as an orphaned agent.

Jobs

The way Merlin Server handles job tasking has been changed. In prior releases, a job was only created and added to the channel at the point when the agent checked in. This functionality was re-worked so that jobs are created and added to the channel when they are created, independent of when an agent checks in. In prior releases you might have to wait 30 seconds before you see a message on the console for the job creation. Now a message will display right away.

Job Creation Message

Module Info Alias

Out of muscle memory I kept trying to issue theΒ infoΒ command while in the module menu. This was not a valid command in prior releases. TheΒ infoΒ command was added as an alias for the still presentΒ show infoΒ command.

Module Menu Info Command

Wrap Up

Beta version 0.6.0 added a few minor features along with one big new capability, support for QUIC. There is still plenty of work to be done and I’ll continue to actively add features and fix any issues. I would enjoy hearing from you if you have questions, issues, or just want to talk about Merlin and its capabilities. You can leave a comment here, reach me on Twitter, create a GitHub issue, or join theΒ Slack Channel.

Happy Hacking!