Relay Agent Reverse TCP Listener
This relay listener uses an existing agent to accept reversed connections. Instead of opening ports on the C2 system, a selected agent is configured to listen for connections. New agents connect to this relay agent, which then forwards all communication through the established channel.
Plugin ID: shelldot.listener.relay-agent-reverse-tcp
Configuration
The If omitted column describes hand-written JSON sent directly to the server. The
plugin's named default example generates a random UUID and explicitly supplies host
localhost, port 5555, and an empty Base64 handshake value. Replace the generated UUID
with the UUID of the relay agent you intend to use.
| Parameter | Type | Required | If omitted | Description |
|---|---|---|---|---|
relayAgentGuid |
UUID string | Yes | Invalid | UUID of the existing agent that will listen for connections. |
hosts |
string[] | Yes | Invalid | One or more valid hostnames or IP addresses where the relay agent can be reached. |
port |
int | Yes | Invalid | TCP port (1-65535) on which the relay agent will listen for connections. |
handshakeBytes |
Base64 string | Yes | Configuration serialization fails | Bytes used for the initial handshake between agents. Direct JSON must supply this field; use "" to disable the handshake. |
startTime |
string | No | null |
Optional UTC start time if the listener should not start immediately. |
Operation Flow
| Stage | Action |
|---|---|
| Setup | Existing agent is configured to listen on specified port |
| Connection | New agent connects to relay agent using provided hosts |
| Communication | All traffic is routed through the relay agent |
| Security | Adds layer of indirection between new agent and C2 |