diff --git a/scb-scanprocesses/nmap-process/src/main/java/io/securecodebox/scanprocess/nmap/delegate/ConfigureHttpHeaderCheck.java b/scb-scanprocesses/nmap-process/src/main/java/io/securecodebox/scanprocess/nmap/delegate/ConfigureHttpHeaderCheck.java new file mode 100644 index 00000000..5f913ac9 --- /dev/null +++ b/scb-scanprocesses/nmap-process/src/main/java/io/securecodebox/scanprocess/nmap/delegate/ConfigureHttpHeaderCheck.java @@ -0,0 +1,56 @@ +package io.securecodebox.scanprocess.nmap.delegate; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.securecodebox.constants.DefaultFields; +import io.securecodebox.model.execution.ScanProcessExecutionFactory; +import io.securecodebox.model.execution.Target; +import org.camunda.bpm.engine.delegate.DelegateExecution; +import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.camunda.bpm.engine.variable.Variables; +import org.camunda.bpm.engine.variable.value.ObjectValue; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import java.util.List; + +@Component +public class ConfigureHttpHeaderCheck implements JavaDelegate { + private static final Logger LOG = LoggerFactory.getLogger(ConfigureHttpHeaderCheck.class); + + @Autowired + ScanProcessExecutionFactory processExecutionFactory; + + @Autowired + ObjectMapper objectMapper; + + @Override + public void execute(DelegateExecution execution) throws Exception { + + LOG.info("Configuring execution profile for http header check..."); + + try { + + String targetsAsString = objectMapper.writeValueAsString(execution.getVariable(DefaultFields.PROCESS_TARGETS.name())); + List targets = objectMapper.readValue(objectMapper.readValue(targetsAsString, String.class), + objectMapper.getTypeFactory().constructCollectionType(List.class, Target.class)); + + for (Target target : targets) { + target.appendOrUpdateAttribute("NMAP_PARAMETER", "-Pn -p 80,8080,443,8443 --script=http-headers"); + } + + ObjectValue objectValue = Variables.objectValue(objectMapper.writeValueAsString(targets)) + .serializationDataFormat(Variables.SerializationDataFormats.JSON) + .create(); + execution.setVariable(DefaultFields.PROCESS_TARGETS.name(), objectValue); + + LOG.info("Finished configuring execution profile"); + + } catch (JsonProcessingException e) { + throw new IllegalStateException("Can't write field to process!", e); + } + + } + +} diff --git a/scb-scanprocesses/nmap-process/src/main/resources/bpmn/nmap_process.bpmn b/scb-scanprocesses/nmap-process/src/main/resources/bpmn/nmap_process.bpmn index 53d5239f..d840ebdf 100644 --- a/scb-scanprocesses/nmap-process/src/main/resources/bpmn/nmap_process.bpmn +++ b/scb-scanprocesses/nmap-process/src/main/resources/bpmn/nmap_process.bpmn @@ -17,6 +17,7 @@ SequenceFlow_ManualStart SequenceFlow_DefaultConfig SequenceFlow_AdvancedConfig + SequenceFlow_0whyqlc @@ -84,6 +85,7 @@ SequenceFlow_PortscanConfigured SequenceFlow_DefaultConfig SequenceFlow_AutomatedStart + SequenceFlow_0whyqlc SequenceFlow_PortscanFinished @@ -94,6 +96,12 @@ + + + + + + results in a generic format @@ -259,6 +267,13 @@ + + + + + + + diff --git a/scb-scanprocesses/nmap-process/src/main/resources/forms/nmap/configure-port-scanner-target.html b/scb-scanprocesses/nmap-process/src/main/resources/forms/nmap/configure-port-scanner-target.html index db0a870d..c5e1ddd2 100644 --- a/scb-scanprocesses/nmap-process/src/main/resources/forms/nmap/configure-port-scanner-target.html +++ b/scb-scanprocesses/nmap-process/src/main/resources/forms/nmap/configure-port-scanner-target.html @@ -142,6 +142,7 @@

Portscan Target

cam-variable-name="NMAP_CONFIGURATION_TYPE" cam-variable-type="String"> +