Skip to main content

External Plugin Development

Develop plugins in any language using gRPC.

gRPC Interface

service ModuleService {
rpc Execute(ExecuteRequest) returns (ExecuteResponse);
rpc GetMetadata(Empty) returns (Metadata);
}

Python Example

import grpc
from pentora_pb2 import ExecuteRequest, ExecuteResponse

class CustomModule:
def Execute(self, request, context):
targets = request.context.get('targets')
results = self.scan(targets)
return ExecuteResponse(context={'results': results})

# Start gRPC server on localhost:50051

Registration

plugins:
- name: custom_python_scanner
type: grpc
endpoint: localhost:50051
timeout: 30s

Usage

pentora scan --targets 192.168.1.100 --plugin custom_python_scanner

See Plugin Architecture for design details.