dradis-saint 3.18.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.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.github/issue_template.md +16 -0
  3. data/.github/pull_request_template.md +36 -0
  4. data/.gitignore +12 -0
  5. data/CHANGELOG.md +39 -0
  6. data/CONTRIBUTING.md +3 -0
  7. data/Gemfile +20 -0
  8. data/LICENSE +339 -0
  9. data/README.md +25 -0
  10. data/Rakefile +1 -0
  11. data/dradis-saint.gemspec +28 -0
  12. data/lib/dradis-saint.rb +7 -0
  13. data/lib/dradis/plugins/saint.rb +11 -0
  14. data/lib/dradis/plugins/saint/engine.rb +13 -0
  15. data/lib/dradis/plugins/saint/field_processor.rb +31 -0
  16. data/lib/dradis/plugins/saint/gem_version.rb +18 -0
  17. data/lib/dradis/plugins/saint/importer.rb +130 -0
  18. data/lib/dradis/plugins/saint/version.rb +11 -0
  19. data/lib/saint/base.rb +29 -0
  20. data/lib/saint/evidence.rb +18 -0
  21. data/lib/saint/vulnerability.rb +15 -0
  22. data/lib/tasks/thorfile.rb +19 -0
  23. data/spec/dradis/plugins/saint/field_processor_spec.rb +39 -0
  24. data/spec/dradis/plugins/saint/importer_spec.rb +33 -0
  25. data/spec/fixtures/files/evidence-01.xml +8 -0
  26. data/spec/fixtures/files/full_report.xml +45 -0
  27. data/spec/fixtures/files/host-01.xml +5 -0
  28. data/spec/fixtures/files/saint_metasploitable_sample.xml +718 -0
  29. data/spec/fixtures/files/vulnerability-01.xml +17 -0
  30. data/spec/saint/evidence_spec.rb +8 -0
  31. data/spec/saint/host_spec.rb +8 -0
  32. data/spec/saint/vulnerability_spec.rb +8 -0
  33. data/spec/spec_helper.rb +10 -0
  34. data/spec/xml_element.rb +10 -0
  35. data/templates/evidence.fields +5 -0
  36. data/templates/evidence.sample +8 -0
  37. data/templates/evidence.template +14 -0
  38. data/templates/vulnerability.fields +14 -0
  39. data/templates/vulnerability.sample +35 -0
  40. data/templates/vulnerability.template +41 -0
  41. metadata +166 -0
@@ -0,0 +1,17 @@
1
+ <vulnerability>
2
+ <description>Test Description</description>
3
+ <hostname>Test Hostname</hostname>
4
+ <ipaddr>Test Ipaddr</ipaddr>
5
+ <hosttype>Test Hosttype</hosttype>
6
+ <scan_time>Test Scan time</scan_time>
7
+ <status>Test Status</status>
8
+ <severity>Test Severity</severity>
9
+ <cve>Test Cve</cve>
10
+ <cvss_base_score>Test Cvss base score</cvss_base_score>
11
+ <impact>Test Impact</impact>
12
+ <background>Test Background</background>
13
+ <problem>Test Problem</problem>
14
+ <resolution>Test Resolution</resolution>
15
+ <reference>Test Reference</reference>
16
+ <vuln_details></vuln_details>
17
+ </vulnerability>
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'xml_element'
3
+
4
+ describe Saint::Evidence do
5
+ let(:xml_file) { File.expand_path('../../fixtures/files/evidence-01.xml', __FILE__) }
6
+
7
+ it_behaves_like 'Saint XML element'
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'xml_element'
3
+
4
+ describe Saint::Host do
5
+ let(:xml_file) { File.expand_path('../../fixtures/files/host-01.xml', __FILE__) }
6
+
7
+ it_behaves_like 'Saint XML element'
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'xml_element'
3
+
4
+ describe Saint::Vulnerability do
5
+ let(:xml_file) { File.expand_path('../../fixtures/files/vulnerability-01.xml', __FILE__) }
6
+
7
+ it_behaves_like 'Saint XML element'
8
+ end
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'nokogiri'
4
+
5
+ require 'combustion'
6
+
7
+ Combustion.initialize!
8
+
9
+ RSpec.configure do |config|
10
+ end
@@ -0,0 +1,10 @@
1
+ shared_examples 'Saint XML element' do
2
+ it 'responds to its supported fields' do
3
+ doc = Nokogiri::XML(File.read(xml_file))
4
+ object_name = described_class.to_s.split('::').last.downcase
5
+ object = described_class.new(doc.xpath("./#{object_name}").first)
6
+ object.supported_tags.each do |tag|
7
+ expect(object.send(tag)).to eq("Test #{tag.to_s.humanize}")
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ evidence.port
2
+ evidence.severity
3
+ evidence.class
4
+ evidence.cve
5
+ evidence.cvss_base_score
@@ -0,0 +1,8 @@
1
+ <evidence>
2
+ <port>587/tcp</port>
3
+ <severity>potential</severity>
4
+ <description>server is susceptible to BEAST attack</description>
5
+ <class>Other</class>
6
+ <cve>CVE-2011-3389</cve>
7
+ <cvss_base_score>4.3</cvss_base_score>
8
+ </evidence>
@@ -0,0 +1,14 @@
1
+ #[Port]#
2
+ %evidence.port%
3
+
4
+ #[Severity]#
5
+ %evidence.severity%
6
+
7
+ #[Class]#
8
+ %evidence.class%
9
+
10
+ #[cve]#
11
+ %evidence.cve%
12
+
13
+ #[CVSS Base Score]#
14
+ %evidence.cvss_base_score%
@@ -0,0 +1,14 @@
1
+ vulnerability.description
2
+ vulnerability.hostname
3
+ vulnerability.ipaddr
4
+ vulnerability.hosttype
5
+ vulnerability.scan_time
6
+ vulnerability.status
7
+ vulnerability.severity
8
+ vulnerability.cve
9
+ vulnerability.cvss_base_score
10
+ vulnerability.impact
11
+ vulnerability.background
12
+ vulnerability.problem
13
+ vulnerability.resolution
14
+ vulnerability.reference
@@ -0,0 +1,35 @@
1
+ <vulnerability>
2
+ <description>SSL/TLS server supports short block sizes (SWEET32 attack)</description>
3
+ <hostname>192.168.150.163</hostname>
4
+ <ipaddr>192.168.150.163</ipaddr>
5
+ <hosttype>Linux 2.6.18 - 2.6.22</hosttype>
6
+ <scan_time>Mar 22 13:22:35 2017</scan_time>
7
+ <status>new</status>
8
+ <severity>Potential Problem</severity>
9
+ <cve>CVE-2016-2183</cve>
10
+ <cvss_base_score>5.0</cvss_base_score>
11
+ <impact>A remote attacker with the ability to sniff network traffic could decrypt long-lived TLS or SSL sessions.</impact>
12
+ <background>A Block Cipher is an encryption algorithm which operates on a fixed-size block of data. Plaintext messages which are larger than the block size must be split into multiple blocks before being encrypted by the algorithm.
13
+ </background>
14
+ <problem>SWEET32 Attack
15
+ 08/29/16
16
+ CVE 2016-2183
17
+ Block ciphers with small block sizes are susceptible to a class of attacks known as birthday attacks.
18
+ These attacks take advantage of multiple blocks which return identical ciphertext, known as collisions. The probability of collisions occurring becomes significant after a large number of blocks have been encrypted using the same key.
19
+ The SWEET32 attack is a specific birthday attack which reveals the XOR (exclusive-OR) between a fixed secret and known plaintext, thus allowing the secret to be determined.
20
+ This attack can be launched in a browser session by javascript code which makes repeated requests containing an authentication token and predictable headers.
21
+ Successful exploitation requires about 785 GB of data to be captured, and the attacker must be able to inject javascript into a web session and to sniff data from the network.
22
+ </problem>
23
+ <resolution>Disable ciphers which have a 64-bit block size, such as Triple-DES as follows:
24
+ Apache/OpenSSL: Upgrade to OpenSSL 1.1.0, which disables Triple-DES ciphers by default. Alternatively, upgrade to OpenSSL 1.0.1u or 1.0.2i or higher, which classify Triple-DES ciphers as MEDIUM, and insert !MEDIUM in the SSLCipherSuite directive in the appropriate web server configuration file.
25
+ IIS: Disable DES and 3DES ciphers as described in Microsoft Knowledge Base Article
26
+ [http://support.microsoft.com/kb/245030] 245030.
27
+ Note: disabling Triple-DES ciphers may affect compatibility with older clients.
28
+ </resolution>
29
+ <reference>For more information on the SWEET32 attack, see
30
+ [https://sweet32.info] sweet32.info and the
31
+ [https://bobcares.com/blog/how-to-fix-sweet32-birthday-attacks-vulnerability-cve-2016-2183/] Bobcares Blog.
32
+ </reference>
33
+ <vuln_details>Service: 587:TCP
34
+ Server accepted TLS 1.0 64-bit block size cipher: TLS_RSA_WITH_3DES_EDE_CBC_SHA </vuln_details>
35
+ </vulnerability>
@@ -0,0 +1,41 @@
1
+ #[Title]#
2
+ %vulnerability.description%
3
+
4
+ #[Host Name]#
5
+ %vulnerability.hostname%
6
+
7
+ #[IP Address]#
8
+ %vulnerability.ipaddr%
9
+
10
+ #[Host Type]#
11
+ %vulnerability.hosttype%
12
+
13
+ #[Scan Time]#
14
+ %vulnerability.scan_time%
15
+
16
+ #[Status]#
17
+ %vulnerability.status%
18
+
19
+ #[Severity]#
20
+ %vulnerability.severity%
21
+
22
+ #[CVE]#
23
+ %vulnerability.cve%
24
+
25
+ #[CVSS Base Score]#
26
+ %vulnerability.cvss_base_score%
27
+
28
+ #[Impact]#
29
+ %vulnerability.impact%
30
+
31
+ #[Background]#
32
+ %vulnerability.background%
33
+
34
+ #[Problem]#
35
+ %vulnerability.problem%
36
+
37
+ #[Resolution]#
38
+ %vulnerability.resolution%
39
+
40
+ #[Reference]#
41
+ %vulnerability.reference%
metadata ADDED
@@ -0,0 +1,166 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dradis-saint
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.18.0
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Martin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-07-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dradis-plugins
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.8'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '13.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '13.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.6'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.6'
69
+ - !ruby/object:Gem::Dependency
70
+ name: combustion
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.6.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.6.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: This add-on allows you to upload and parse reports from Saint.
98
+ email:
99
+ - etd@nomejortu.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".github/issue_template.md"
105
+ - ".github/pull_request_template.md"
106
+ - ".gitignore"
107
+ - CHANGELOG.md
108
+ - CONTRIBUTING.md
109
+ - Gemfile
110
+ - LICENSE
111
+ - README.md
112
+ - Rakefile
113
+ - dradis-saint.gemspec
114
+ - lib/dradis-saint.rb
115
+ - lib/dradis/plugins/saint.rb
116
+ - lib/dradis/plugins/saint/engine.rb
117
+ - lib/dradis/plugins/saint/field_processor.rb
118
+ - lib/dradis/plugins/saint/gem_version.rb
119
+ - lib/dradis/plugins/saint/importer.rb
120
+ - lib/dradis/plugins/saint/version.rb
121
+ - lib/saint/base.rb
122
+ - lib/saint/evidence.rb
123
+ - lib/saint/vulnerability.rb
124
+ - lib/tasks/thorfile.rb
125
+ - spec/dradis/plugins/saint/field_processor_spec.rb
126
+ - spec/dradis/plugins/saint/importer_spec.rb
127
+ - spec/fixtures/files/evidence-01.xml
128
+ - spec/fixtures/files/full_report.xml
129
+ - spec/fixtures/files/host-01.xml
130
+ - spec/fixtures/files/saint_metasploitable_sample.xml
131
+ - spec/fixtures/files/vulnerability-01.xml
132
+ - spec/saint/evidence_spec.rb
133
+ - spec/saint/host_spec.rb
134
+ - spec/saint/vulnerability_spec.rb
135
+ - spec/spec_helper.rb
136
+ - spec/xml_element.rb
137
+ - templates/evidence.fields
138
+ - templates/evidence.sample
139
+ - templates/evidence.template
140
+ - templates/vulnerability.fields
141
+ - templates/vulnerability.sample
142
+ - templates/vulnerability.template
143
+ homepage: http://dradisframework.org
144
+ licenses:
145
+ - GPL-2
146
+ metadata: {}
147
+ post_install_message:
148
+ rdoc_options: []
149
+ require_paths:
150
+ - lib
151
+ required_ruby_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ requirements: []
162
+ rubygems_version: 3.1.2
163
+ signing_key:
164
+ specification_version: 4
165
+ summary: Saint upload add-on for Dradis Framework.
166
+ test_files: []