# The opsec function is called when a payload is created as a check to see if the parameters supplied are good
# The input for "request" is a dictionary of:
# "param_name": "param_value",
# "param_name2: "param_value2",
# This function should return one of two things:
# For success: {"status": "success", "message": "your success message here" }
# For error: {"status": "error", "error": "your error message here" }
async def opsec(request):
if request["parameters"]["callback_host"] == "https://domain.com":
return {"status": "error", "error": "Callback Host is set to default of https://domain.com!\n"}
if request["parameters"]["callback_host"].count(":") == 2:
return {"status": "error", "error": f"Callback Host specifies a port ({request['parameters']['callback_host']})! This should be omitted and specified in the Callback Port parameter.\n"}
if "https" in request["parameters"]["callback_host"] and request["parameters"]["callback_port"] not in ["443", "8443", "7443"]:
return {"status": "success", "message": f"Mismatch in callback host: HTTPS specified, but port {request['parameters']['callback_port']}, is not standard HTTPS port\n"}
return {"status": "success", "message": "Basic OPSEC Check Passed\n"}