HTTP Listener

Listener UI

Domain Rotation

The options to strategy domain rotation is:

  • Random

  • Failover

  • Round Robin

Proxy Settings

Set Proxy to http connections:

  • Proxy URL

  • Username

  • Password

Use SSL (HTTPS)

  • SSL Certificate Path

  • SSL Key Path

Upload Profile

need be passes the profile json for malleable profile

Malleable Profile Overview

This document provides detailed technical specifications for configuring HTTP listener profiles. The profile defines how client-server communications are handled, including request/response formatting, encryption, encoding, and routing behaviors.


Profile Structure

Root Level

The profile contains an array of callback objects, allowing multiple configurations for different hosts and communication patterns.


Callback Object

Multiple Hosts

Each callback can handle multiple hosts:

  • host array: Multiple target servers and ports

  • Can mix different ports

  • Single callback can communicate with multiple servers

User Agent

Important: The User-Agent is shared across both GET and POST requests from this callback. It identifies the client application for all HTTP methods.


Example Callback Structure


Request Methods: GET and POST

Independent Configuration

Each HTTP method (GET/POST) has its own independent configuration:

  • Separate server.headers

  • Separate client.headers

  • Separate empty_response handling

  • Separate error definitions

  • Separate route configurations

Empty Response

The empty_response field defines what the server should send when no tasking/data is available:

  • "" (empty string) - Send nothing

  • Can contain a custom response string if needed

  • Used when the server has no command or data to transmit

Server Error Configuration

Control HTTP status codes and error responses:

  • http_status (integer): HTTP status code (404, 403, 500, etc.)

  • response (string): Response body sent to client

  • Can be HTML or JSON format

  • Allows simulating various error conditions

Headers

Client Headers (Sent by Client)

Headers that the client includes in requests to the server.

Server Headers (Received from Server)

Headers that the server responds with.


Route Configuration

Route Grouping

Routes with identical behavior can be grouped together:

Routes are separated by spaces in a single string key. This allows reusing the same configuration for multiple endpoints.

Individual Route Configuration

Server Output

Configuration Options:

  • mask (boolean):

    • true - Apply XOR encryption before encoding

    • false - No encryption, direct encoding

    • Encryption is applied to the data before the format encoding

  • format (string): Output encoding format, The raw data is traffic encrypted with Loky Encrypt

    • base64 - Standard Base64 encoding

    • base32 - Base32 encoding

    • base64url - Base64URL encoding

    • raw - No encoding (only XOR encryption if mask is true and default encryption)

Client Output

Configuration Options:

  • mask (boolean): Apply XOR encryption before encoding

  • format (string): Output encoding format (base64, base32, base64url, raw)

  • header (optional string): Send output in HTTP header with this name

  • parameter (optional string): Send output as query/body parameter with this name

  • body:

    • If the payload is in the header/parameter, it's possible to send a body that will be ignored.

Output Location Priority:

  1. If header is specified → output sent in that HTTP header

  2. Else if parameter is specified → output sent as parameter

  3. Else → output sent in request body (default)

Payload Template

Purpose: Define the structure of how data is sent and allow flexible formatting.

Special Placeholder:

  • <<<PAYLOAD_DATA>>> - This is replaced with the actual output data

  • Can appear multiple times in the payload

  • Allows wrapping the data in custom JSON, XML, or other formats

Example Variations:

Parameters

Additional parameters to include in the request:

  • Can include multiple key-value pairs

  • Used for metadata or status information

  • Sent alongside the routed data


Complete Route Configuration Example

Example 1: Grouped Routes with Shared Behavior

Behavior:

  • Routes /route1, /route2, /route3 all use identical configuration

  • Server sends unencrypted base64-encoded data

  • Client sends base64url-encoded, XOR-encrypted data

  • Data sent as query/body parameter named info

  • Includes beacon status and name in parameters

Example 2: Unique Route with Header Output

Behavior:

  • Server sends XOR-encrypted, base64url-encoded data as info parameter

  • Client sends XOR-encrypted, base64-encoded data in cookie header

  • body: "" no false/spoof data sent in the body

  • Payload formatted as PHP session ID

  • Output placed only in header, not in body


Data Flow and Encryption

Encryption and Encoding Process

When mask: true:

When mask: false:


Complete Callback Example



Last updated