Skip to content

Commit fceccc6

Browse files
author
Grzegorz Siewruk
committed
adjusting to gmp 20
1 parent 252aefd commit fceccc6

15 files changed

+153
-67
lines changed

pom.xml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>io.mixeway</groupId>
77
<artifactId>MixewayOpenVasRestAPI</artifactId>
8-
<version>1.0.0-SNAPSHOT</version>
8+
<version>1.1.0-SNAPSHOT</version>
99
<packaging>jar</packaging>
1010

1111
<name>MixewayOpenVasRestAPI</name>
@@ -83,6 +83,16 @@
8383
<artifactId>javassist</artifactId>
8484
<version>3.25.0-GA</version>
8585
</dependency>
86+
<dependency>
87+
<groupId>org.springframework</groupId>
88+
<artifactId>spring-test</artifactId>
89+
<version>5.2.3.RELEASE</version>
90+
</dependency>
91+
<dependency>
92+
<groupId>junit</groupId>
93+
<artifactId>junit</artifactId>
94+
</dependency>
95+
8696

8797
</dependencies>
8898

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* @created 2021-01-27 : 09:38
3+
* @project MixewayScanner
4+
* @author siewer
5+
*/
6+
package pl.orange.bst.mixer;
7+
8+
import org.junit.runner.RunWith;
9+
import org.springframework.test.context.ContextConfiguration;
10+
import org.springframework.test.context.junit4.SpringRunner;
11+
import org.springframework.test.context.support.AnnotationConfigContextLoader;
12+
import pl.orange.bst.mixer.openvas.helper.XmlOperationBuilder;
13+
import pl.orange.bst.mixer.openvas.pojo.User;
14+
15+
import javax.xml.bind.JAXBException;
16+
import java.util.HashMap;
17+
18+
@RunWith(SpringRunner.class)
19+
@ContextConfiguration(classes= AnnotationConfigContextLoader.class)
20+
public class Test {
21+
22+
23+
@org.junit.Test
24+
public void createTarget() throws JAXBException {
25+
XmlOperationBuilder xob = new XmlOperationBuilder();
26+
User user = new User("gvmadmin","1qaz@WSX");
27+
HashMap<String, String> params =new HashMap<>();
28+
params.put("hosts","192.168.1.1,192.168.1.2");
29+
params.put("name","random_rtarget");
30+
System.out.println("Create TargeT:");
31+
System.out.println(buildCommandPrefix(user) + "\""+xob.buildCreateTarget(user, params)+"\"");
32+
}
33+
@org.junit.Test
34+
public void createTask() throws JAXBException {
35+
XmlOperationBuilder xob = new XmlOperationBuilder();
36+
User user = new User("gvmadmin","1qaz@WSX");
37+
HashMap<String, String> params =new HashMap<>();
38+
params.put("report_id","c9299f55-c17f-4e33-a3b0-48809213ee6d");
39+
System.out.println("Create task:");
40+
System.out.println(buildCommandPrefix(user) + "'"+xob.buildGetReport(user, params)+"'");
41+
}
42+
43+
44+
45+
public String buildCommandPrefix(User user){
46+
return String.format("gvm-cli --gmp-username=%s --gmp-password=%s socket --socketpath %s --xml ",user.getUsername(), user.getPassword(), "/opt/gvm/var/run/gvmd.sock");
47+
}
48+
}

src/main/java/pl/orange/bst/mixer/openvas/OpenVasClient.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public ReportXml getReport(RestRequestBody body) throws JAXBException, SAXExcept
6969

7070

7171
private ReportXml getReportResponse(User user, HashMap<String, String> params) throws JAXBException, SAXException, IOException, ParserConfigurationException {
72-
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "gvm-cli socket --socketpath "+socket+" --xml '"+xob.buildGetReport(user, params)+"'");
72+
ProcessBuilder pb = new ProcessBuilder("bash", "-c", buildCommandPrefix(user) + "'"+xob.buildGetReport(user, params)+"'");
7373
String output = IOUtils.toString(pb.start().getInputStream());
7474
Document doc = DocumentBuilderFactory.newInstance()
7575
.newDocumentBuilder()
@@ -104,7 +104,7 @@ private ReportXml getReportResponse(User user, HashMap<String, String> params) t
104104
return new ReportXml(vulns);
105105
}
106106
private String getTaskStatusResponse(User user, HashMap<String, String> params) throws JAXBException, SAXException, IOException, ParserConfigurationException {
107-
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "gvm-cli socket --socketpath "+socket+" --xml '"+xob.buildGetTask(user, params)+"'");
107+
ProcessBuilder pb = new ProcessBuilder("bash", "-c", buildCommandPrefix(user) + "'"+xob.buildGetTask(user, params)+"'");
108108
String output = IOUtils.toString(pb.start().getInputStream());
109109
Document doc = DocumentBuilderFactory.newInstance()
110110
.newDocumentBuilder()
@@ -118,7 +118,7 @@ private String getTaskStatusResponse(User user, HashMap<String, String> params)
118118
return null;
119119
}
120120
private String getRunTask(User user, HashMap<String, String> params) throws JAXBException, SAXException, IOException, ParserConfigurationException {
121-
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "gvm-cli socket --socketpath "+socket+" --xml '"+xob.buildStartTask(user, params)+"'");
121+
ProcessBuilder pb = new ProcessBuilder("bash", "-c", buildCommandPrefix(user) + "'"+xob.buildStartTask(user, params)+"'");
122122
String output = IOUtils.toString(pb.start().getInputStream());
123123
Document doc = DocumentBuilderFactory.newInstance()
124124
.newDocumentBuilder()
@@ -131,7 +131,7 @@ private String getRunTask(User user, HashMap<String, String> params) throws JAXB
131131
return null;
132132
}
133133
private String getModifyTaskResponse(User user, HashMap<String, String> params) throws JAXBException, SAXException, IOException, ParserConfigurationException {
134-
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "gvm-cli socket --socketpath "+socket+" --xml '"+xob.buildModifyTask(user, params)+"'");
134+
ProcessBuilder pb = new ProcessBuilder("bash", "-c", buildCommandPrefix(user) + "'"+xob.buildModifyTask(user, params)+"'");
135135
String output = IOUtils.toString(pb.start().getInputStream());
136136
Document doc = DocumentBuilderFactory.newInstance()
137137
.newDocumentBuilder()
@@ -144,7 +144,7 @@ private String getModifyTaskResponse(User user, HashMap<String, String> params)
144144
return null;
145145
}
146146
private String getCreateTaskResponse(User user, HashMap<String, String> params) throws JAXBException, SAXException, IOException, ParserConfigurationException {
147-
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "gvm-cli socket --socketpath "+socket+" --xml '"+xob.buildCreateTask(user, params)+"'");
147+
ProcessBuilder pb = new ProcessBuilder("bash", "-c", buildCommandPrefix(user) + "'"+xob.buildCreateTask(user, params)+"'");
148148
String output = IOUtils.toString(pb.start().getInputStream());
149149
Document doc = DocumentBuilderFactory.newInstance()
150150
.newDocumentBuilder()
@@ -157,8 +157,7 @@ private String getCreateTaskResponse(User user, HashMap<String, String> params)
157157
return null;
158158
}
159159
private String getConfigResponse(User user) throws SAXException, IOException, ParserConfigurationException, JAXBException {
160-
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "gvm-cli socket --socketpath "+socket+" --xml \""+xob.buildGetConfig(user)+"\"");
161-
System.out.println("gvm-cli socket --socketpath "+socket+" --xml \""+xob.buildGetConfig(user)+"\"");
160+
ProcessBuilder pb = new ProcessBuilder("bash", "-c", buildCommandPrefix(user) + "'"+xob.buildGetConfig(user)+"'");
162161
String output = IOUtils.toString(pb.start().getInputStream());
163162
Document doc = DocumentBuilderFactory.newInstance()
164163
.newDocumentBuilder()
@@ -179,7 +178,7 @@ private String getConfigResponse(User user) throws SAXException, IOException, Pa
179178
}
180179

181180
private String getScannerResponse(User user) throws SAXException, IOException, ParserConfigurationException, JAXBException {
182-
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "gvm-cli socket --socketpath "+socket+" --xml \""+xob.buildGetScanners(user)+"\"");
181+
ProcessBuilder pb = new ProcessBuilder("bash", "-c", buildCommandPrefix(user) + "'"+xob.buildGetScanners(user)+"'");
183182
String output = IOUtils.toString(pb.start().getInputStream());
184183
Document doc = DocumentBuilderFactory.newInstance()
185184
.newDocumentBuilder()
@@ -200,7 +199,7 @@ private String getScannerResponse(User user) throws SAXException, IOException, P
200199
}
201200
private String getCreateTargetRespnse(User user, HashMap<String, String> params) throws JAXBException, SAXException, IOException, ParserConfigurationException {
202201

203-
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "gvm-cli socket --socketpath "+socket+" --xml \""+xob.buildCreateTarget(user, params)+"\"");
202+
ProcessBuilder pb = new ProcessBuilder("bash", "-c", buildCommandPrefix(user) + "'"+xob.buildCreateTarget(user, params)+"'");
204203
String output = IOUtils.toString(pb.start().getInputStream());
205204
Document doc = DocumentBuilderFactory.newInstance()
206205
.newDocumentBuilder()
@@ -213,4 +212,7 @@ private String getCreateTargetRespnse(User user, HashMap<String, String> params)
213212
return null;
214213
}
215214

215+
public String buildCommandPrefix(User user){
216+
return String.format("gvm-cli --gmp-username=%s --gmp-password=%s socket --socketpath %s --xml ",user.getUsername(), user.getPassword(), socket);
217+
}
216218
}

src/main/java/pl/orange/bst/mixer/openvas/helper/CommandsGetConfig.java

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,11 @@
55
import pl.orange.bst.mixer.openvas.pojo.Authenticate;
66
import pl.orange.bst.mixer.openvas.pojo.User;
77

8-
@XmlRootElement(name="commands")
8+
@XmlRootElement(name="get_configs")
99
public class CommandsGetConfig {
1010

11-
private Authenticate authenticate;
12-
private String get_configs;
13-
14-
public Authenticate getAuthenticate() {
15-
return authenticate;
16-
}
17-
18-
public void setAuthenticate(Authenticate authenticate) {
19-
this.authenticate = authenticate;
20-
}
21-
22-
23-
public String getGet_configs() {
24-
return get_configs;
25-
}
26-
27-
public void setGet_configs(String get_configs) {
28-
this.get_configs = get_configs;
29-
}
3011

3112
public CommandsGetConfig(User user) {
32-
this.setAuthenticate(new Authenticate(user));
33-
this.setGet_configs("");
3413
}
3514
public CommandsGetConfig() {}
3615
}

src/main/java/pl/orange/bst/mixer/openvas/helper/CommandsGetScanner.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,10 @@
55
import pl.orange.bst.mixer.openvas.pojo.Authenticate;
66
import pl.orange.bst.mixer.openvas.pojo.User;
77

8-
@XmlRootElement(name="commands")
8+
@XmlRootElement(name="get_scanners")
99
public class CommandsGetScanner {
10-
private Authenticate authenticate;
11-
private String get_scanners;
12-
public Authenticate getAuthenticate() {
13-
return authenticate;
14-
}
15-
public void setAuthenticate(Authenticate authenticate) {
16-
this.authenticate = authenticate;
17-
}
18-
public String getGet_scanners() {
19-
return get_scanners;
20-
}
21-
public void setGet_scanners(String get_scanners) {
22-
this.get_scanners = get_scanners;
23-
}
24-
10+
2511
public CommandsGetScanner() {}
2612
public CommandsGetScanner(User user) {
27-
this.setAuthenticate(new Authenticate(user));
28-
this.setGet_scanners("");
2913
}
3014
}

src/main/java/pl/orange/bst/mixer/openvas/helper/XmlOperationBuilder.java

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@
77
import javax.xml.bind.JAXBException;
88
import javax.xml.bind.Marshaller;
99

10+
import org.slf4j.Logger;
11+
import org.slf4j.LoggerFactory;
1012
import org.springframework.stereotype.Component;
1113

1214
import pl.orange.bst.mixer.ConstantStrings;
15+
import pl.orange.bst.mixer.openvas.OpenVasClient;
1316
import pl.orange.bst.mixer.openvas.pojo.Config;
1417
import pl.orange.bst.mixer.openvas.pojo.CreateTarget;
1518
import pl.orange.bst.mixer.openvas.pojo.CreateTask;
@@ -24,8 +27,9 @@
2427

2528
@Component
2629
public class XmlOperationBuilder {
27-
30+
private static final Logger log = LoggerFactory.getLogger(XmlOperationBuilder.class);
2831
public String buildGetConfig(User user) throws JAXBException {
32+
log.info("Getting Config info");
2933
CommandsGetConfig cgc = new CommandsGetConfig(user);
3034
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsGetConfig.class);
3135
Marshaller marshaller = jaxbContext.createMarshaller();
@@ -35,6 +39,7 @@ public String buildGetConfig(User user) throws JAXBException {
3539
return sw.toString();
3640
}
3741
public String buildGetScanners(User user) throws JAXBException {
42+
log.info("Getting scanners info");
3843
CommandsGetScanner cgs = new CommandsGetScanner(user);
3944
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsGetScanner.class);
4045
Marshaller marshaller = jaxbContext.createMarshaller();
@@ -44,50 +49,54 @@ public String buildGetScanners(User user) throws JAXBException {
4449
return sw.toString();
4550
}
4651
public String buildCreateTarget(User user, HashMap<String, String> target) throws JAXBException {
47-
CommandsCreateTarget cct = new CommandsCreateTarget(user);
52+
log.info("Creating target for {}", target.get(ConstantStrings.HOSTS));
53+
//CommandsCreateTarget cct = new CommandsCreateTarget(user);
4854
CreateTarget ct = new CreateTarget();
4955
ct.setHosts(target.get(ConstantStrings.HOSTS));
5056
ct.setName(target.get(ConstantStrings.TARGET_NAME));
51-
cct.setCreateTarget(ct);
57+
//cct.setCreateTarget(ct);
5258
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsCreateTarget.class);
5359
Marshaller marshaller = jaxbContext.createMarshaller();
5460
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
5561
StringWriter sw = new StringWriter();
56-
marshaller.marshal(cct, sw);
62+
marshaller.marshal(ct, sw);
5763
return sw.toString();
5864

5965
}
6066
public String buildDeleteTarget(User user, HashMap<String, String> target) throws JAXBException {
61-
CommandsDeleteTarget cdt = new CommandsDeleteTarget(user);
67+
//CommandsDeleteTarget cdt = new CommandsDeleteTarget(user);
6268
DeleteTarget dt = new DeleteTarget();
6369
dt.setTargetId(target.get(ConstantStrings.TARGET_ID));
64-
cdt.setDeleteTarget(dt);
70+
//cdt.setDeleteTarget(dt);
6571
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsDeleteTarget.class);
6672
Marshaller marshaller = jaxbContext.createMarshaller();
6773
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
6874
StringWriter sw = new StringWriter();
69-
marshaller.marshal(cdt, sw);
75+
marshaller.marshal(dt, sw);
7076
return sw.toString();
7177

7278
}
7379
public String buildCreateTask(User user, HashMap<String, String> target) throws JAXBException {
74-
CommandsCreateTask cct = new CommandsCreateTask(user);
80+
log.info("Creating task for {}",target.get(ConstantStrings.TARGET_NAME));
81+
//CommandsCreateTask cct = new CommandsCreateTask(user);
7582
CreateTask ct = new CreateTask();
7683
ct.setConfig(new Config(target.get(ConstantStrings.CONFIG_ID)));
7784
ct.setScanner(new Scanner(target.get(ConstantStrings.SCANNER_ID)));
7885
ct.setTarget(new Target(target.get(ConstantStrings.TARGET_ID)));
7986
ct.setName(target.get(ConstantStrings.TARGET_NAME));
80-
cct.setCreateTask(ct);
87+
//cct.setCreateTask(ct);
8188
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsCreateTask.class);
8289
Marshaller marshaller = jaxbContext.createMarshaller();
8390
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
8491
StringWriter sw = new StringWriter();
85-
marshaller.marshal(cct, sw);
92+
marshaller.marshal(ct, sw);
8693
return sw.toString();
8794

8895
}
8996
public String buildModifyTask(User user, HashMap<String, String> target) throws JAXBException {
90-
CommandsModifyTask cmt = new CommandsModifyTask(user, new ModifyTask(target.get(ConstantStrings.TASK_ID), new Target(target.get(ConstantStrings.TARGET_ID))));
97+
log.info("Modyfing task {}",target.get(ConstantStrings.TASK_ID));
98+
//CommandsModifyTask cmt = new CommandsModifyTask(user, new ModifyTask(target.get(ConstantStrings.TASK_ID), new Target(target.get(ConstantStrings.TARGET_ID))));
99+
ModifyTask cmt = new ModifyTask(target.get(ConstantStrings.TASK_ID), new Target(target.get(ConstantStrings.TARGET_ID)));
91100
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsModifyTask.class);
92101
Marshaller marshaller = jaxbContext.createMarshaller();
93102
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
@@ -97,7 +106,9 @@ public String buildModifyTask(User user, HashMap<String, String> target) throws
97106

98107
}
99108
public String buildStartTask(User user, HashMap<String, String> target) throws JAXBException {
100-
CommandsStartTask cst = new CommandsStartTask(user, new StartTask(target.get(ConstantStrings.TASK_ID)));
109+
log.info("Starting task {}", target.get(ConstantStrings.TASK_ID));
110+
//CommandsStartTask cst = new CommandsStartTask(user, new StartTask(target.get(ConstantStrings.TASK_ID)));
111+
StartTask cst = new StartTask(target.get(ConstantStrings.TASK_ID));
101112
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsStartTask.class);
102113
Marshaller marshaller = jaxbContext.createMarshaller();
103114
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
@@ -107,7 +118,8 @@ public String buildStartTask(User user, HashMap<String, String> target) throws J
107118

108119
}
109120
public String buildGetTask(User user, HashMap<String, String> target) throws JAXBException {
110-
CommandsGetTasks cgt = new CommandsGetTasks(user, new GetTask(target.get(ConstantStrings.TASK_ID)));
121+
//CommandsGetTasks cgt = new CommandsGetTasks(user, new GetTask(target.get(ConstantStrings.TASK_ID)));
122+
GetTask cgt = new GetTask(target.get(ConstantStrings.TASK_ID));
111123
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsGetTasks.class);
112124
Marshaller marshaller = jaxbContext.createMarshaller();
113125
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
@@ -117,7 +129,9 @@ public String buildGetTask(User user, HashMap<String, String> target) throws JAX
117129

118130
}
119131
public String buildGetReport(User user, HashMap<String, String> target) throws JAXBException {
120-
CommandsGetReport cgr = new CommandsGetReport(user, new Report(target.get(ConstantStrings.REPORT_ID)));
132+
log.info("Building report for report_id {}",target.get(ConstantStrings.REPORT_ID));
133+
//CommandsGetReport cgr = new CommandsGetReport(user, new Report(target.get(ConstantStrings.REPORT_ID)));
134+
Report cgr = new Report(target.get(ConstantStrings.REPORT_ID));
121135
JAXBContext jaxbContext = JAXBContext.newInstance(CommandsGetReport.class);
122136
Marshaller marshaller = jaxbContext.createMarshaller();
123137
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);

src/main/java/pl/orange/bst/mixer/openvas/pojo/CreateTarget.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
11
package pl.orange.bst.mixer.openvas.pojo;
22

3+
import javax.xml.bind.annotation.XmlElement;
4+
import javax.xml.bind.annotation.XmlRootElement;
5+
6+
@XmlRootElement(name = "create_target")
37
public class CreateTarget {
48

59
private String name;
610
private String hosts;
711
private String alive_tests;
12+
private PortList port_list;
13+
14+
public PortList getPort_list() {
15+
return port_list;
16+
}
17+
18+
public void setPort_list(PortList port_list) {
19+
this.port_list = port_list;
20+
}
21+
822
public String getName() {
923
return name;
1024
}
@@ -24,6 +38,7 @@ public void setAlive_tests(String alive_tests) {
2438
this.alive_tests = alive_tests;
2539
}
2640
public CreateTarget() {
41+
this.port_list = new PortList();
2742
this.setAlive_tests("Consider Alive");
2843
}
2944

src/main/java/pl/orange/bst/mixer/openvas/pojo/CreateTask.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package pl.orange.bst.mixer.openvas.pojo;
22

3+
import javax.xml.bind.annotation.XmlRootElement;
4+
5+
@XmlRootElement(name = "create_task")
36
public class CreateTask {
47
private String name;
58
private Config config;

src/main/java/pl/orange/bst/mixer/openvas/pojo/DeleteTarget.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import javax.xml.bind.annotation.XmlAccessType;
44
import javax.xml.bind.annotation.XmlAccessorType;
55
import javax.xml.bind.annotation.XmlAttribute;
6+
import javax.xml.bind.annotation.XmlRootElement;
67

8+
@XmlRootElement(name = "delete_target")
79
@XmlAccessorType(XmlAccessType.FIELD)
810
public class DeleteTarget {
911

0 commit comments

Comments
 (0)