dradis-nexpose 4.11.0 → 4.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fefa5d899cb4a34cead8f685c4bd13efdea29d034ddb7a505ce0e00f23b9b17d
4
- data.tar.gz: 713ae33f6884e7c75393055f4cf68932a4ec9ef310e722d333b34c83df8b65ba
3
+ metadata.gz: b5b342a73c3a4576df7bd68d24142393480c9abed09cd8f7a8c2f9aefe67339e
4
+ data.tar.gz: 4d24a2ed95a57a001e9f909740fd95067332065804d282598c2b86d31db6b644
5
5
  SHA512:
6
- metadata.gz: 7a07af401d0dbe92e6d488244502eae76d2404482429190b8e7a68117c97e79e850905b0ab71954024137e9144125de3169866ef2749343c9b0d909c7e3027e1
7
- data.tar.gz: 69b31e47e60b9ee6bbd6771222ea1a8f5940bf9d40c6700e789bee6a546a2b296d087b9a75fc850c32f827c9ac917bd22cbc16ebffed2ed6449f5ac8ca77023b
6
+ metadata.gz: '0080d88c9b79f02f1a9610d85aa350f26e3c059fae144c15a1ccb66c6acf69e69e076063c2d7451915e9a625892f1fc9a519f099aed3e9577edfa4278cb24b5d'
7
+ data.tar.gz: 9231e9e9a60fe0b06316f024b0f089c76bda3c4bcb4000f0eb4079da893ee295daf59cfabe5f47b85b6f989f2e72b1f87ed988c499ccc64a880a29c9a52e8bbd
data/CHANGELOG.md CHANGED
@@ -1,8 +1,13 @@
1
+ v4.12.0 (May 2024)
2
+ - Migrate integration to use Mappings Manager
3
+ - Update Dradis links in README
4
+
1
5
  v4.11.0 (January 2024)
2
6
  - Add port/protocol to evidences
3
7
  - Use the details in <os> as the OS node property
4
8
  - Import `vulnerability.risk_score` as a new Issue field
5
9
  - Allow multiple evidence with the same test id & node address
10
+ - Add support for tests that start with `ContainerBlockElement`
6
11
 
7
12
  v4.10.0 (September 2023)
8
13
  - Update gemspec links
data/README.md CHANGED
@@ -6,8 +6,7 @@ The Nexpose add-on enables users to upload Nexpose XML files to create a structu
6
6
 
7
7
  This plugin supports both NeXpose-Simple and NeXpose-Full formats.
8
8
 
9
- The add-on requires [Dradis CE](https://dradisframework.org/) > 3.0, or [Dradis Pro](https://dradisframework.com/pro/).
10
-
9
+ The add-on requires [Dradis CE](https://dradis.com/ce/) > 3.0, or [Dradis Pro](https://dradis.com/).
11
10
 
12
11
  ## More information
13
12
 
@@ -14,7 +14,7 @@ module Dradis::Plugins::Nexpose::Formats
14
14
  logger.info { "\tProcessing scan summary" }
15
15
 
16
16
  doc.xpath('//scans/scan').each do |xml_scan|
17
- note_text = template_service.process_template(template: 'full_scan', data: xml_scan)
17
+ note_text = mapping_service.apply_mapping(source: 'full_scan', data: xml_scan)
18
18
  content_service.create_note(node: scan_node, text: note_text)
19
19
  end
20
20
 
@@ -26,7 +26,7 @@ module Dradis::Plugins::Nexpose::Formats
26
26
  logger.info { "\tProcessing host: #{nexpose_node.address}" }
27
27
 
28
28
  # add the summary note for this host
29
- note_text = template_service.process_template(template: 'full_node', data: nexpose_node)
29
+ note_text = mapping_service.apply_mapping(source: 'full_node', data: nexpose_node)
30
30
  content_service.create_note(node: host_node, text: note_text)
31
31
 
32
32
  if host_node.respond_to?(:properties)
@@ -83,7 +83,7 @@ module Dradis::Plugins::Nexpose::Formats
83
83
  endpoint.services.each do |service|
84
84
 
85
85
  # add the summary note for this service
86
- note_text = template_service.process_template(template: 'full_service', data: service)
86
+ note_text = mapping_service.apply_mapping(source: 'full_service', data: service)
87
87
  # content_service.create_note(node: endpoint_node, text: note_text)
88
88
  content_service.create_note(node: host_node, text: note_text)
89
89
 
@@ -123,8 +123,8 @@ module Dradis::Plugins::Nexpose::Formats
123
123
  doc.xpath('//VulnerabilityDefinitions/vulnerability').each do |xml_vulnerability|
124
124
  id = xml_vulnerability['id'].downcase
125
125
  # if @vuln_list.include?(id)
126
- issue_text = template_service.process_template(
127
- template: 'full_vulnerability',
126
+ issue_text = mapping_service.apply_mapping(
127
+ source: 'full_vulnerability',
128
128
  data: xml_vulnerability
129
129
  )
130
130
 
@@ -148,8 +148,8 @@ module Dradis::Plugins::Nexpose::Formats
148
148
  host_node = content_service.create_node(label: host_name, type: :host)
149
149
 
150
150
  evidence[id][host_name].each do |evidence|
151
- evidence_content = template_service.process_template(
152
- template: 'full_evidence',
151
+ evidence_content = mapping_service.apply_mapping(
152
+ source: 'full_evidence',
153
153
  data: evidence
154
154
  )
155
155
  content_service.create_evidence(content: evidence_content, issue: issue, node: host_node)
@@ -26,7 +26,7 @@ module Dradis::Plugins::Nexpose::Formats
26
26
  port_node = content_service.create_node(label: port_label, parent: host_node)
27
27
 
28
28
  findings.each do |id, finding|
29
- port_text = template_service.process_template(template: 'simple_port', data: {id: id, finding: finding})
29
+ port_text = mapping_service.apply_mapping(source: 'simple_port', data: {id: id, finding: finding})
30
30
  port_text << "\n#[host]#\n#{host['address']}\n\n"
31
31
  content_service.create_note node: port_node, text: port_text
32
32
  end
@@ -8,7 +8,7 @@ module Dradis
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 4
11
- MINOR = 11
11
+ MINOR = 12
12
12
  TINY = 0
13
13
  PRE = nil
14
14
 
@@ -0,0 +1,101 @@
1
+ module Dradis::Plugins::Nexpose
2
+ module Mapping
3
+ DEFAULT_MAPPING = {
4
+ full_evidence: {
5
+ 'ID' => '{{ nexpose[evidence.id] }}',
6
+ 'Status' => '{{ nexpose[evidence.status] }}',
7
+ 'Content' => '{{ nexpose[evidence.content] }}'
8
+ },
9
+ full_node: {
10
+ 'Title' => '{{ nexpose[node.address] }}',
11
+ 'Hostname' => '{{ nexpose[node.site_name] }}',
12
+ 'Details' => "Status: {{ nexpose[node.status] }}\nDevice id: {{ nexpose[node.device_id] }}\nHW address: {{ nexpose[node.hardware_address] }}",
13
+ 'Names' => '{{ nexpose[node.names] }}',
14
+ 'Software' => '{{ nexpose[node.software] }}'
15
+ },
16
+ full_scan: {
17
+ 'Title' => '{{ nexpose[scan.name] }} ({{ nexpose[scan.scan_id] }})',
18
+ 'Timing' => "Start time: {{ nexpose[scan.start_time] }}\nEnd time: {{ nexpose[scan.end_time] }}",
19
+ 'Status' => '{{ nexpose[scan.status] }}'
20
+ },
21
+ full_service: {
22
+ 'Title' => 'Service name: {{ nexpose[service.name] }}',
23
+ 'Fingerprinting' => '{{ nexpose[service.fingerprints] }}',
24
+ 'Configuration' => '{{ nexpose[service.configurations] }}',
25
+ 'Tests' => '{{ nexpose[service.tests] }}'
26
+ },
27
+ full_vulnerability: {
28
+ 'Title' => '{{ nexpose[vulnerability.title] }}',
29
+ 'Nexpose Id' => '{{ nexpose[vulnerability.nexpose_id] }}',
30
+ 'Severity' => '{{ nexpose[vulnerability.severity] }}',
31
+ 'PCI Severity' => '{{ nexpose[vulnerability.pci_severity] }}',
32
+ 'CVSS Score' => '{{ nexpose[vulnerability.cvss_score] }}',
33
+ 'CVSS Vector' => '{{ nexpose[vulnerability.cvss_vector] }}',
34
+ 'Published' => '{{ nexpose[vulnerability.published] }}',
35
+ 'Description' => '{{ nexpose[vulnerability.description] }}',
36
+ 'Solution' => '{{ nexpose[vulnerability.solution] }}',
37
+ 'References' => '{{ nexpose[vulnerability.references] }}',
38
+ 'Tags' => '{{ nexpose[vulnerability.tags] }}'
39
+ },
40
+ simple_port: {
41
+ 'Id' => '{{ nexpose[port.id] }}',
42
+ 'References' => '{{ nexpose[port.finding] }}'
43
+ }
44
+ }.freeze
45
+
46
+ SOURCE_FIELDS = {
47
+ full_evidence: [
48
+ 'evidence.id',
49
+ 'evidence.status',
50
+ 'evidence.content',
51
+ 'evidence.port',
52
+ 'evidence.protocol'
53
+ ],
54
+ full_node: [
55
+ 'node.address',
56
+ 'node.device_id',
57
+ 'node.fingerprints',
58
+ 'node.hardware_address',
59
+ 'node.names',
60
+ 'node.tests',
61
+ 'node.risk_score',
62
+ 'node.site_name',
63
+ 'node.status',
64
+ 'node.software'
65
+ ],
66
+ full_scan: [
67
+ 'scan.end_time',
68
+ 'scan.name',
69
+ 'scan.scan_id',
70
+ 'scan.start_time',
71
+ 'scan.status'
72
+ ],
73
+ full_service: [
74
+ 'service.configurations',
75
+ 'service.fingerprints',
76
+ 'service.name',
77
+ 'service.tests'
78
+ ],
79
+ full_vulnerability: [
80
+ 'vulnerability.added',
81
+ 'vulnerability.cvss_score',
82
+ 'vulnerability.cvss_vector',
83
+ 'vulnerability.description',
84
+ 'vulnerability.modified',
85
+ 'vulnerability.nexpose_id',
86
+ 'vulnerability.pci_severity',
87
+ 'vulnerability.published',
88
+ 'vulnerability.risk_score',
89
+ 'vulnerability.references',
90
+ 'vulnerability.severity',
91
+ 'vulnerability.solution',
92
+ 'vulnerability.tags',
93
+ 'vulnerability.title'
94
+ ],
95
+ simple_port: [
96
+ 'port.finding',
97
+ 'port.id'
98
+ ]
99
+ }.freeze
100
+ end
101
+ end
@@ -8,4 +8,5 @@ end
8
8
  require 'dradis/plugins/nexpose/engine'
9
9
  require 'dradis/plugins/nexpose/field_processor'
10
10
  require 'dradis/plugins/nexpose/importer'
11
+ require 'dradis/plugins/nexpose/mapping'
11
12
  require 'dradis/plugins/nexpose/version'
data/lib/nexpose/test.rb CHANGED
@@ -2,13 +2,20 @@ module Nexpose
2
2
  class Test
3
3
  def self.new(xml_node)
4
4
  content =
5
- if xml_node.at_xpath('./Paragraph')
6
- xml_node.
7
- at_xpath('./Paragraph').
8
- text.
9
- split("\n").
10
- collect(&:strip).
11
- reject { |line| line.empty? }.join("\n")
5
+ # get first Paragraph or ContainerBlockElement that's a direct child of <test>
6
+ if xml = xml_node.at_xpath('./Paragraph | ./ContainerBlockElement')
7
+ # get all nested paragraph elements
8
+ nested_paragraphs = xml.xpath('.//Paragraph')
9
+
10
+ content = nested_paragraphs.children.map do |node|
11
+ case node.name
12
+ when 'text'
13
+ node.text.strip
14
+ when 'URLLink'
15
+ node['LinkURL']
16
+ end
17
+ end.compact
18
+ content.map(&:strip).reject(&:empty?).join("\n")
12
19
  else
13
20
  'n/a'
14
21
  end
@@ -20,23 +20,32 @@
20
20
  <fingerprint certainty="0.90" family="NTP" product="NTP" vendor="Cisco"/>
21
21
  </fingerprints>
22
22
  <configuration>
23
- <config name="ntp.variables">system=&quot;cisco&quot;, leap=0, stratum=5, rootdelay=88.21,
24
-
25
- rootdispersion=108.54, peer=24960, refid=135.89.100.96,
26
-
27
- reftime=0xD80BB6B5.715ACDD8, poll=10, clock=0xD80BB78F.8931F3F6,
28
-
29
- phase=8.259, freq=-141.24, error=11.32</config>
23
+ <config name="ntp.variables">system=&quot;cisco&quot;, leap=0, stratum=5, rootdelay=88.21,rootdispersion=108.54, peer=24960, refid=135.89.100.96,reftime=0xD80BB6B5.715ACDD8, poll=10, clock=0xD80BB78F.8931F3F6,phase=8.259, freq=-141.24, error=11.32</config>
30
24
  </configuration>
31
25
  <tests>
32
26
  <test id="ntp-clock-variables-disclosure" pci-compliance-status="pass" scan-id="4" status="vulnerable-exploited" vulnerable-since="20141110T161846666">
33
27
  <Paragraph>
34
- <Paragraph>The following NTP variables were found from a readvar request: system=&quot;cisco&quot;, leap=0, stratum=5, rootdelay=88.21,
35
- rootdispersion=108.54, peer=24960, refid=135.89.100.96,
36
- reftime=0xD80BB6B5.715ACDD8, poll=10, clock=0xD80BB78F.8931F3F6,
37
- phase=8.259, freq=-141.24, error=11.32</Paragraph>
28
+ <Paragraph>The following NTP variables were found from a readvar request: system=&quot;cisco&quot;, leap=0, stratum=5, rootdelay=88.21, rootdispersion=108.54, peer=24960, refid=135.89.100.96, reftime=0xD80BB6B5.715ACDD8, poll=10, clock=0xD80BB78F.8931F3F6,phase=8.259, freq=-141.24, error=11.32</Paragraph>
38
29
  </Paragraph>
39
30
  </test>
31
+ <test id="test-02" pci-compliance-status="pass" scan-id="4" status="vulnerable-exploited" vulnerable-since="20141110T161846666">
32
+ <ContainerBlockElement>
33
+ <Paragraph>Vulnerable URL:
34
+ <URLLink LinkURL="https://1.2.3.4/" LinkTitle="https://1.2.3.4/"></URLLink>
35
+ More info
36
+ </Paragraph>
37
+ <Paragraph>CRAWL TRAFFIC
38
+ Vulnerable response matched:
39
+ </Paragraph>
40
+ <Paragraph>ATTACK TRAFFIC
41
+ Vulnerability proven via 1 attack
42
+ <Paragraph>(1) Attack proof:
43
+ Attack description:
44
+ Missing HTTP header &quot;Content-Security-Policy&quot;
45
+ Vulnerable response matched:
46
+ </Paragraph></Paragraph>
47
+ </ContainerBlockElement>
48
+ </test>
40
49
  </tests>
41
50
  </service>
42
51
  </services>
@@ -86,7 +95,7 @@ phase=8.259, freq=-141.24, error=11.32</Paragraph>
86
95
  </ContainerBlockElement>
87
96
  </solution>
88
97
  </vulnerability>
89
- <vulnerability added="20120412T000000000" cvssScore="4.3" cvssVector="(AV:N/AC:M/Au:N/C:P/I:N/A:N)" id="ntp-clock-variables-disclosure" modified="20130828T000000000" pciSeverity="3" published="20031231T000000000" riskScore="549.07043" severity="4" title="Apache HTTPD: ETag Inode Information Leakage (CVE-2003-1418)">
98
+ <vulnerability added="20120412T000000000" cvssScore="4.3" cvssVector="(AV:N/AC:M/Au:N/C:P/I:N/A:N)" id="test-02" modified="20130828T000000000" pciSeverity="3" published="20031231T000000000" riskScore="549.07043" severity="4" title="Apache HTTPD: ETag Inode Information Leakage (CVE-2003-1418)">
90
99
  <malware/>
91
100
  <exploits/>
92
101
  <description>
@@ -110,33 +119,19 @@ phase=8.259, freq=-141.24, error=11.32</Paragraph>
110
119
  <UnorderedList>
111
120
  <ListItem>
112
121
  <Paragraph>
113
- <Paragraph>You can remove inode information from the ETag header by adding the
114
- following directive to your Apache config:</Paragraph>
122
+ <Paragraph>You can remove inode information from the ETag header by adding the following directive to your Apache config:</Paragraph>
115
123
  <Paragraph preformat="true">FileETag MTime Size</Paragraph>
116
124
  </Paragraph>
117
125
  </ListItem>
118
126
  <ListItem>
119
127
  <Paragraph>OpenBSD</Paragraph>
120
128
  <Paragraph>Download and apply the patch from:
121
-
122
-
123
-
124
-
125
-
126
129
  <URLLink LinkTitle="http://www.openbsd.org/errata32.html#httpd" LinkURL="http://www.openbsd.org/errata32.html#httpd"/></Paragraph>
127
130
  <Paragraph>
128
131
  <Paragraph>The OpenBSD team has released a
129
-
130
-
131
-
132
-
133
-
134
132
  <URLLink LinkTitle="http://www.openbsd.org/errata32.html#httpd" LinkURL="http://www.openbsd.org/errata32.html#httpd" href="http://www.openbsd.org/errata32.html#httpd">
135
- patch</URLLink>for the Apache inode and pid leak problem. This patch can be applied
136
- cleanly to 3.2 stable and rebuilt. Restart httpd for the changes to
137
- take effect. OpenBSD 3.3 will ship with the patched httpd by default.
138
- The patch can be applied to earlier 3.x versions of OpenBSD, but it
139
- may require editing of the source code.</Paragraph>
133
+ patch</URLLink>for the Apache inode and pid leak problem. This patch can be applied cleanly to 3.2 stable and rebuilt. Restart httpd for the changes to take effect. OpenBSD 3.3 will ship with the patched httpd by default. The patch can be applied to earlier 3.x versions of OpenBSD, but it may require editing of the source code.
134
+ </Paragraph>
140
135
  </Paragraph>
141
136
  </ListItem>
142
137
  </UnorderedList>
@@ -119,7 +119,7 @@ describe 'Nexpose upload plugin' do
119
119
 
120
120
  expect(@content_service).to receive(:create_issue) do |args|
121
121
  expect(args[:text]).to include("#[Title]#\nApache HTTPD: ETag Inode Information Leakage (CVE-2003-1418)")
122
- expect(args[:id]).to eq('ntp-clock-variables-disclosure')
122
+ expect(args[:id]).to eq('test-02')
123
123
  OpenStruct.new(args)
124
124
  end.once
125
125
 
@@ -129,6 +129,12 @@ describe 'Nexpose upload plugin' do
129
129
  expect(args[:node].label).to eq('1.1.1.1')
130
130
  end.once
131
131
 
132
+ expect(@content_service).to receive(:create_evidence) do |args|
133
+ expect(args[:content]).to include("#[ID]#\ntest-02\n\n")
134
+ expect(args[:issue].id).to eq('test-02')
135
+ expect(args[:node].label).to eq('1.1.1.1')
136
+ end.once
137
+
132
138
  @importer.import(file: @fixtures_dir + '/full.xml')
133
139
 
134
140
  expect(Node.find_by(label: '1.1.1.1').properties[:os]).to eq('IOS')
@@ -144,7 +150,7 @@ describe 'Nexpose upload plugin' do
144
150
  end
145
151
 
146
152
  # Regression test for github.com/dradis/dradis-nexpose/issues/1
147
- it 'populates solutions regardless they are wrapped in paragraphs or lists' do
153
+ it 'populates solutions regardless of if they are wrapped in paragraphs or lists' do
148
154
  expect(@content_service).to receive(:create_issue) do |args|
149
155
  expect(args[:text]).to include("#[Solution]#\n\nApache HTTPD >= 2.0 and < 2.0.65")
150
156
  OpenStruct.new(args)
@@ -159,6 +165,20 @@ describe 'Nexpose upload plugin' do
159
165
  @importer.import(file: @fixtures_dir + '/full.xml')
160
166
  end
161
167
 
168
+ it 'populates tests regardless of if they contain paragraphs or containerblockelements' do
169
+ expect(@content_service).to receive(:create_evidence) do |args|
170
+ expect(args[:content]).to include("#[Content]#\nThe following NTP variables")
171
+ OpenStruct.new(args)
172
+ end.once
173
+
174
+ expect(@content_service).to receive(:create_evidence) do |args|
175
+ expect(args[:content]).to include("#[Content]#\nVulnerable URL:")
176
+ OpenStruct.new(args)
177
+ end.once
178
+
179
+ @importer.import(file: @fixtures_dir + '/full.xml')
180
+ end
181
+
162
182
  it 'transforms html entities (&lt; and &gt;)' do
163
183
  expect(@content_service).to receive(:create_issue) do |args|
164
184
  expect(args[:text]).to include("#[Solution]#\n\nApache HTTPD >= 2.0 and < 2.0.65")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dradis-nexpose
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.11.0
4
+ version: 4.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-17 00:00:00.000000000 Z
11
+ date: 2024-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dradis-plugins
@@ -121,6 +121,7 @@ files:
121
121
  - lib/dradis/plugins/nexpose/formats/simple.rb
122
122
  - lib/dradis/plugins/nexpose/gem_version.rb
123
123
  - lib/dradis/plugins/nexpose/importer.rb
124
+ - lib/dradis/plugins/nexpose/mapping.rb
124
125
  - lib/dradis/plugins/nexpose/version.rb
125
126
  - lib/nexpose/endpoint.rb
126
127
  - lib/nexpose/node.rb
@@ -135,24 +136,12 @@ files:
135
136
  - spec/fixtures/files/ssl.xml
136
137
  - spec/nexpose_upload_spec.rb
137
138
  - spec/spec_helper.rb
138
- - templates/full_evidence.fields
139
139
  - templates/full_evidence.sample
140
- - templates/full_evidence.template
141
- - templates/full_node.fields
142
140
  - templates/full_node.sample
143
- - templates/full_node.template
144
- - templates/full_scan.fields
145
141
  - templates/full_scan.sample
146
- - templates/full_scan.template
147
- - templates/full_service.fields
148
142
  - templates/full_service.sample
149
- - templates/full_service.template
150
- - templates/full_vulnerability.fields
151
143
  - templates/full_vulnerability.sample
152
- - templates/full_vulnerability.template
153
- - templates/simple_port.fields
154
144
  - templates/simple_port.sample
155
- - templates/simple_port.template
156
145
  homepage: https://dradis.com/integrations/nexpose.html
157
146
  licenses:
158
147
  - GPL-2
@@ -172,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
161
  - !ruby/object:Gem::Version
173
162
  version: '0'
174
163
  requirements: []
175
- rubygems_version: 3.3.7
164
+ rubygems_version: 3.1.4
176
165
  signing_key:
177
166
  specification_version: 4
178
167
  summary: Nexpose add-on for the Dradis Framework.
@@ -1,5 +0,0 @@
1
- evidence.id
2
- evidence.status
3
- evidence.content
4
- evidence.port
5
- evidence.protocol
@@ -1,8 +0,0 @@
1
- #[ID]#
2
- %evidence.id%
3
-
4
- #[Status]#
5
- %evidence.status%
6
-
7
- #[Content]#
8
- %evidence.content%
@@ -1,10 +0,0 @@
1
- node.address
2
- node.device_id
3
- node.fingerprints
4
- node.hardware_address
5
- node.names
6
- node.tests
7
- node.risk_score
8
- node.site_name
9
- node.status
10
- node.software
@@ -1,16 +0,0 @@
1
- #[Title]#
2
- %node.address%
3
-
4
- #[Hostname]#
5
- %node.site_name%
6
-
7
- #[Details]#
8
- Status: %node.status%
9
- Device id: %node.device_id%
10
- HW address: %node.hardware_address%
11
-
12
- #[Names]#
13
- %node.names%
14
-
15
- #[Software]#
16
- %node.software%
@@ -1,5 +0,0 @@
1
- scan.end_time
2
- scan.name
3
- scan.scan_id
4
- scan.start_time
5
- scan.status
@@ -1,9 +0,0 @@
1
- #[Title]#
2
- %scan.name% (%scan.scan_id%)
3
-
4
- #[Timing]#
5
- Start time: %scan.start_time%
6
- End time: %scan.end_time%
7
-
8
- #[Status]#
9
- %scan.status%
@@ -1,4 +0,0 @@
1
- service.configurations
2
- service.fingerprints
3
- service.name
4
- service.tests
@@ -1,11 +0,0 @@
1
- #[Title]#
2
- Service name: %service.name%
3
-
4
- #[Fingerprinting]#
5
- %service.fingerprints%
6
-
7
- #[Configuration]#
8
- %service.configurations%
9
-
10
- #[Tests]#
11
- %service.tests%
@@ -1,14 +0,0 @@
1
- vulnerability.added
2
- vulnerability.cvss_score
3
- vulnerability.cvss_vector
4
- vulnerability.description
5
- vulnerability.modified
6
- vulnerability.nexpose_id
7
- vulnerability.pci_severity
8
- vulnerability.published
9
- vulnerability.risk_score
10
- vulnerability.references
11
- vulnerability.severity
12
- vulnerability.solution
13
- vulnerability.tags
14
- vulnerability.title
@@ -1,34 +0,0 @@
1
- #[Title]#
2
- %vulnerability.title%
3
-
4
- #[Nexpose Id]#
5
- %vulnerability.nexpose_id%
6
-
7
- #[Severity]#
8
- %vulnerability.severity%
9
-
10
- #[PCI Severity]#
11
- %vulnerability.pci_severity%
12
-
13
- #[CVSS Score]#
14
- %vulnerability.cvss_score%
15
-
16
- #[CVSS Vector]#
17
- %vulnerability.cvss_vector%
18
-
19
- #[Published]#
20
- %vulnerability.published%
21
-
22
- #[Description]#
23
- %vulnerability.description%
24
-
25
-
26
- #[Solution]#
27
- %vulnerability.solution%
28
-
29
-
30
- #[References]#
31
- %vulnerability.references%
32
-
33
- #[Tags]#
34
- %vulnerability.tags%
@@ -1,2 +0,0 @@
1
- port.finding
2
- port.id
@@ -1,5 +0,0 @@
1
- #[Id]#
2
- %port.id%
3
-
4
- #[References]#
5
- %port.finding%