dradis-saint 3.18.0

Sign up to get free protection for your applications and to get access to all the features.
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: []