dradis-nexpose 4.1.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8fd614ab4ae6d76629846fcc4b4446ae557f34057bc60abee7a10e7e73859bd9
4
- data.tar.gz: f41b9074788b7c48ee2868424cceeb0d4857499c1ed1a811920c9887cc283be8
3
+ metadata.gz: d9b36849f6712c97827772ce7f05c78114e83b82677bf8019fbd2e44b1e505ab
4
+ data.tar.gz: 91f3fa3599201045962abd082d85069da3aa698f45f4696d3f4729c64d3e5d39
5
5
  SHA512:
6
- metadata.gz: 5ee4f44de8248385c6fc0d4ced288088bc2561b7dc2ad0e5fce555f2ec86186092cd23d7d85ef790f439df3f27c731c9e78f892042aaad68a5dddedbeb5ff0f0
7
- data.tar.gz: 076bffc61f49b676914e19f075fc23da290d4e87f88d227e4c9efcf519e8078d5f0a961e5e59785da2da86ae9b74aa18773cf7e688ddbf10f33d1eeaa29ee5e5
6
+ metadata.gz: 16491a215ac75a2ae56ed537c3b203c243610b41cea1e5caa5b2550ec6ba3603cbd9bce14dcecc6286882f4035cbbe6b5336e019a5a82a56b9a2847902a71f43
7
+ data.tar.gz: 051356d800eb248d2186dad362aba87b5bea5e7287c856975b81f63d5b96e25ab120899e146a2d9dcc6fa7f8bdb96fcfb78c60eff6862b0d5249bd166d0e8610
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ v4.4.0 (June 2022)
2
+ - Registers template mappings locally
3
+
4
+ v4.3.0 (April 2022)
5
+ - Update HTML tag cleanup to cover `UnorderedList` tags without spaces and double `Paragraph preformat` tags
6
+
7
+ v4.2.0 (February 2022)
8
+ - Pull the Hostname Node property from the `name` rather than `site-name` tag
9
+
1
10
  v4.1.0 (November 2021)
2
11
  - Update HTML tag cleanup to better cover `UnorderedList` and `URLLink` tags in the solution field
3
12
 
@@ -34,7 +34,7 @@ module Dradis::Plugins::Nexpose::Formats
34
34
  if host_node.respond_to?(:properties)
35
35
  logger.info{ "\tAdding host properties to #{nexpose_node.address}"}
36
36
  host_node.set_property(:ip, nexpose_node.address)
37
- host_node.set_property(:hostname, nexpose_node.site_name)
37
+ host_node.set_property(:hostname, nexpose_node.names)
38
38
  host_node.set_property(:os, nexpose_node.software)
39
39
  host_node.set_property(:risk_score, nexpose_node.risk_score)
40
40
  host_node.save
@@ -8,7 +8,7 @@ module Dradis
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 4
11
- MINOR = 1
11
+ MINOR = 4
12
12
  TINY = 0
13
13
  PRE = nil
14
14
 
@@ -7,6 +7,10 @@ module Dradis::Plugins::Nexpose
7
7
  include Formats::Full
8
8
  include Formats::Simple
9
9
 
10
+ def self.templates
11
+ { evidence: 'full_evidence', issue: 'full_vulnerability' }
12
+ end
13
+
10
14
  # The framework will call this function if the user selects this plugin from
11
15
  # the dropdown list and uploads a file.
12
16
  # @returns true if the operation was successful, false otherwise
@@ -31,4 +35,4 @@ module Dradis::Plugins::Nexpose
31
35
  end
32
36
  end
33
37
  end
34
- end
38
+ end
@@ -112,10 +112,11 @@ module Nexpose
112
112
  def cleanup_html(source)
113
113
  result = source.to_s
114
114
  result.gsub!(/<ContainerBlockElement>(.*?)<\/ContainerBlockElement>/m){|m| "#{ $1 }"}
115
+ result.gsub!(/<Paragraph preformat=\"true\">(\s*)<Paragraph preformat=\"true\">(.*?)<\/Paragraph>(\s*)<\/Paragraph>/mi){|m| "\nbc. #{ $2 }\n\n"}
115
116
  result.gsub!(/<Paragraph preformat=\"true\">(.*?)<\/Paragraph>/mi){|m| "\nbc. #{ $1 }\n\n"}
116
117
  result.gsub!(/<Paragraph>(.*?)<\/Paragraph>/m){|m| "#{ $1 }\n"}
117
118
  result.gsub!(/<Paragraph>|<\/Paragraph>/, '')
118
- result.gsub!(/<UnorderedList (.*?)>(.*?)<\/UnorderedList>/m){|m| "#{ $2 }"}
119
+ result.gsub!(/<UnorderedList(.*?)>(.*?)<\/UnorderedList>/m){|m| "#{ $2 }"}
119
120
  result.gsub!(/<OrderedList(.*?)>(.*?)<\/OrderedList>/m){|m| "#{ $2 }"}
120
121
  result.gsub!(/<ListItem>|<\/ListItem>/, '')
121
122
  result.gsub!(/ /, '')
@@ -5,6 +5,9 @@
5
5
  </scans>
6
6
  <nodes>
7
7
  <node address="1.1.1.1" device-id="75" risk-score="0.0" scan-template="Edge Standard" site-importance="Normal" site-name="USDA_Internal" status="alive">
8
+ <names>
9
+ <name>localhost:5000</name>
10
+ </names>
8
11
  <fingerprints>
9
12
  <os certainty="0.80" family="IOS" product="IOS" vendor="Cisco"/>
10
13
  </fingerprints>
@@ -79,7 +79,6 @@ describe 'Nexpose upload plugin' do
79
79
 
80
80
  describe "Importer: Full" do
81
81
  it "creates nodes, issues, notes and an evidences as needed" do
82
-
83
82
  expect(@content_service).to receive(:create_node).with(hash_including label: "Nexpose Scan Summary").once
84
83
  expect(@content_service).to receive(:create_note) do |args|
85
84
  expect(args[:text]).to include("#[Title]#\nUSDA_Internal (4)")
@@ -123,6 +122,14 @@ describe 'Nexpose upload plugin' do
123
122
  expect(args[:node].label).to eq("1.1.1.1")
124
123
  end.once
125
124
 
125
+ allow_any_instance_of(OpenStruct).to receive(:respond_to?).with(:properties).and_return(true)
126
+ allow_any_instance_of(OpenStruct).to receive(:set_service).and_return(true)
127
+
128
+ expect_any_instance_of(OpenStruct).to receive(:set_property).with(:hostname, ['localhost:5000'])
129
+ expect_any_instance_of(OpenStruct).to receive(:set_property).with(:ip, '1.1.1.1')
130
+ expect_any_instance_of(OpenStruct).to receive(:set_property).with(:os, [])
131
+ expect_any_instance_of(OpenStruct).to receive(:set_property).with(:risk_score, '0.0')
132
+
126
133
  @importer.import(file: 'spec/fixtures/files/full.xml')
127
134
  end
128
135
 
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.1.0
4
+ version: 4.4.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: 2021-11-18 00:00:00.000000000 Z
11
+ date: 2022-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dradis-plugins
@@ -172,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  requirements: []
175
- rubygems_version: 3.1.6
175
+ rubygems_version: 3.2.32
176
176
  signing_key:
177
177
  specification_version: 4
178
178
  summary: Nexpose add-on for the Dradis Framework.