Skip to content

Commit

Permalink
Merge dev version 0.1.4 to master
Browse files Browse the repository at this point in the history
  • Loading branch information
Ne0nd0g committed Mar 3, 2018
2 parents 945970c + 49667fe commit cd8f674
Show file tree
Hide file tree
Showing 43 changed files with 3,319 additions and 823 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.DS_STORE
data/agents
data/bin
data/db
data/log
data/x509
24 changes: 20 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
# !!!MAKE SURE YOUR GOPATH ENVIRONMENT VARIABLE IS SET FIRST!!!

# Merlin Server & Agent version number
VERSION=0.1.3
VERSION=0.1.4

MSERVER=merlinServer
MAGENT=merlinAgent
PASSWORD=merlin
BUILD=$(shell git rev-parse HEAD)
DIR=data/bin/v${VERSION}/
LDFLAGS=-ldflags "-s -X main.version=${VERSION} -X main.build=${BUILD}"
WINAGENTLDFLAGS=-ldflags "-s -X main.version=${VERSION} -X main.build=${BUILD} -H=windowsgui"
LDFLAGS=-ldflags "-s -X main.build=${BUILD}"
WINAGENTLDFLAGS=-ldflags "-s -X main.build=${BUILD} -H=windowsgui"
PACKAGE=7za a -p${PASSWORD} -mhe -mx=9
F=README.MD LICENSE data/README.MD data/agents/README.MD data/db/ data/log/README.MD data/x509 data/src data/bin/README.MD
F=README.MD LICENSE data/modules docs data/README.MD data/agents/README.MD data/db/ data/log/README.MD data/x509 data/src data/bin/README.MD
F2=LICENSE
W=Windows-x64
L=Linux-x64
A=Linux-arm
M=Linux-mips
D=Darwin-x64

# Make Directory to store executables
Expand All @@ -31,6 +33,12 @@ windows: server-windows agent-windows
# Compile Linux binaries
linux: server-linux agent-linux

# Compile Arm binaries
arm: agent-arm

# Compile mips binaries
mips: agent-mips

# Compile Darwin binaries
darwin: server-darwin agent-darwin

Expand All @@ -46,6 +54,14 @@ agent-windows:
server-linux:
export GOOS=linux;export GOARCH=amd64;go build ${LDFLAGS} -o ${DIR}/${MSERVER}-${L} cmd/merlinserver/main.go

# Compile Agent - Linux mips
agent-mips:
export GOOS=linux;export GOARCH=mips;go build ${LDFLAGS} -o ${DIR}/${MAGENT}-${M} cmd/merlinagent/main.go

# Compile Agent - Linux arm
agent-arm:
export GOOS=linux;export GOARCH=arm;export GOARM=7;go build ${LDFLAGS} -o ${DIR}/${MAGENT}-${A} cmd/merlinagent/main.go

# Compile Agent - Linux x64
agent-linux:
export GOOS=linux;export GOARCH=amd64;go build ${LDFLAGS} -o ${DIR}/${MAGENT}-${L} cmd/merlinagent/main.go
Expand Down
76 changes: 53 additions & 23 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
[![GoReportCard](https://goreportcard.com/badge/github.com/ne0nd0g/merlin)](https://goreportcard.com/badge/github.com/ne0nd0g/merlin)
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Release](https://img.shields.io/github/release/Ne0nd0g/merlin.svg)](https://github.com/Ne0nd0g/merlin/releases/latest)
[![Downloads](https://img.shields.io/github/downloads/Ne0nd0g/merlin/total.svg)](https://github.com/Ne0nd0g/merlin/releases)
[![Slack](https://img.shields.io/badge/Slack-Sign--Up-blue.svg)](https://communityinviter.com/apps/merlin-go/merlin)

# Merlin (BETA)
Merlin is a cross-platform post-exploitation HTTP/2 Command & Control 
Expand All @@ -9,7 +12,7 @@ An introductory blog post can be found here:
https://medium.com/@Ne0nd0g/introducing-merlin-645da3c635a


[![asciicast](https://asciinema.org/a/ryljo8qNjHz1JFcFDK7wP6e9I.png)](https://asciinema.org/a/ryljo8qNjHz1JFcFDK7wP6e9I)
[![asciicast](https://asciinema.org/a/166722.png)](https://asciinema.org/a/166722&speed=2)

## Getting Started
The quickest and easiest way to start using Merlin is download the
Expand Down Expand Up @@ -73,32 +76,57 @@ Merlin is equipped with a tab completion system that can be used to see
what commands are available at any given time. Hit double tab to get a
list of all available commands.

```
exit Exit and close Merlin
help Show Merlin help menu
quit Exit and close Merlin
? Show Merlin help menu
```
Name | Description
--- | ---
agent | Interact with agents or list agents
banner | Print the Merlin banner
exit | Exit and close the Merlin server
help | Print help screen
interact | Interact with an agent. Alias for Empire users
quit | Exit and close the Merlin server
sessions | List all agents session information. Alias for MSF users
use | Use a function of Merlin (i.e modules)
version | Print the Merlin server version
? | Print help screen
`*` | Anything else will be execute on the host operating system

## Agent Commands
These are the commands to control an agent from the server. Tab
completion can be used to select an Agent's identifier.

```
agent cmd <agent id> <command> A command to run on a remote agent
agent control <agent id> <command> Configure/Control a remote agent (not the host)
[kill,sleep,padding,maxretry]
agent info <agent id> Display all information for an agent
agent list List agents
```
Name | Description
--- | ---
cmd | Execute a command on the agent", "cmd ping -c 3 8.8.8.8"
back | Return to the main menu
download | Download a file from the agent
exit | Exit and close the Merlin server
help | Print help screen
info | Display all information about the agent
kill | Instruct the agent to die or quit
main | Return to the main menu
quit | Exit and close the Merlin server
set | Set the value for one of the agent's options (maxretry, padding, skew, sleep)
show | Show information about a module or its options (show options or show info)
upload | Upload a file to the agent
? | Print help screen
`*` | Anything else will be execute on the host operating system

## Module Commands
These are the commands to configure and execute a module. Tab completion
can be used to select options and agents.

Name | Description
--- | ---
back | Return to the main menu
exit | Exit and close the Merlin server
help | Print help screen
main | Return to the main menu
quit | Exit and close the Merlin server
run | Run or execute the module
set | Set the value for one of the module's options
show | Show information about a module or its options (show options or show info)
? | Print help screen
`*` | Anything else will be execute on the host operating system

### TLS Certificates
By default, Merlin will load server.crt and server.key from the
Expand Down Expand Up @@ -140,7 +168,9 @@ Run Merlin Agent as script: `go run cmd/merlinagent/main.go`
Enable debug output
-sleep duration
Time for agent to sleep (default 10s)
-skew int
Variable time skew for agent to sleep
-url string
Full URL for agent to connect to (default "https://127.0.0.1:443")
-v Enable verbose output
```
```
Loading

0 comments on commit cd8f674

Please sign in to comment.