Custom security modules can be written in Python, Node.js, Bash, Go, or provided as compiled binaries. You can deploy them to a Go Slave without restarting the Slave — the folder watcher will pick it up instantly.
Place a new folder inside the Slave’s modules/ directory:
remote-runner/
└── modules/
└── my-scanner/
├── manifest.json
└── run.py
Every module must define its metadata and inputs:
{
"id": "my-scanner",
"name": "My Custom Scanner",
"description": "Performs an advanced scan.",
"category": "Custom",
"language": "python",
"entry": "run.py",
"requires_strict_approval": false,
"parameters": [
{
"name": "target",
"type": "string",
"required": true,
"description": "Target IP"
}
]
}
The parameters are passed to your script as CLI arguments.
Your script should output data to stdout. JSON output is highly recommended.
Example (run.py):
import sys
import json
target = sys.argv[1]
print(json.dumps({"status": "success", "target_scanned": target}))