API: Listeners
Listener management endpoints for creating, listing, and deleting listeners.
GET /api/v1/listeners
List all configured listeners.
Authentication: Required
Response (200 OK):
{
"listeners": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "https-listener",
"protocol": "HTTPS",
"port": "443",
"ip": "0.0.0.0",
"pipe_name": "",
"get_profile": "microsoft-graph-get",
"post_profile": "microsoft-graph-post",
"server_response_profile": "microsoft-graph-response"
},
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "smb-listener",
"protocol": "SMB",
"port": "",
"ip": "",
"pipe_name": "spoolss",
"get_profile": "default-get",
"post_profile": "default-post",
"server_response_profile": "default-response"
}
]
}
GET /api/v1/listeners/:name
Get a specific listener by name.
Authentication: Required
URL Parameters:
name(required): Listener name
Response (200 OK):
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "https-listener",
"protocol": "HTTPS",
"port": "443",
"ip": "0.0.0.0",
"pipe_name": "",
"get_profile": "microsoft-graph-get",
"post_profile": "microsoft-graph-post",
"server_response_profile": "microsoft-graph-response"
}
Errors:
404 Not Found: Listener not found
POST /api/v1/listeners
Create a new listener with optional malleable profile bindings.
Authentication: Required
Request Body:
{
"name": "string", // Required: Unique listener name
"protocol": "string", // Required: "HTTP", "HTTPS", "SMB", or "RPC"
"port": 443, // Required for HTTP/HTTPS: Port number (1-65535)
"ip": "string", // Optional: Bind IP (default: "0.0.0.0")
"pipe_name": "string", // Required for SMB: Named pipe name
"get_profile": "string", // Optional: GET malleable profile name (default: "default-get")
"post_profile": "string", // Optional: POST malleable profile name (default: "default-post")
"server_response_profile": "string" // Optional: Server response profile name (default: "default-response")
}
Example (HTTPS with default profiles):
{
"name": "https-listener",
"protocol": "HTTPS",
"port": 443,
"ip": "0.0.0.0"
}
Example (HTTPS with Microsoft Graph profiles):
{
"name": "ms-graph-listener",
"protocol": "HTTPS",
"port": 443,
"ip": "0.0.0.0",
"get_profile": "microsoft-graph-get",
"post_profile": "microsoft-graph-post",
"server_response_profile": "microsoft-graph-response"
}
Example (SMB):
{
"name": "smb-listener",
"protocol": "SMB",
"pipe_name": "spoolss"
}
Response (201 Created):
{
"message": "listener created successfully",
"listener": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "ms-graph-listener",
"protocol": "HTTPS",
"port": "443",
"ip": "0.0.0.0",
"pipe_name": "",
"get_profile": "microsoft-graph-get",
"post_profile": "microsoft-graph-post",
"server_response_profile": "microsoft-graph-response"
}
}
Errors:
400 Bad Request: Invalid protocol, port, missing required fields, or unknown profile name
DELETE /api/v1/listeners/:name
Delete a listener.
Authentication: Required
URL Parameters:
name(required): Listener name
Response (200 OK):
{
"message": "listener deleted successfully"
}
Errors:
404 Not Found: Listener not found