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.