risu 1.7.6 → 1.7.7

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -16
  3. data/README.markdown +1 -1
  4. data/Rakefile +10 -3
  5. data/{NEWS.markdown → docs/NEWS.markdown} +10 -0
  6. data/lib/risu/base.rb +1 -0
  7. data/lib/risu/base/graph_template_helper.rb +1 -1
  8. data/lib/risu/base/host_template_helper.rb +1 -1
  9. data/lib/risu/base/malware_template_helper.rb +62 -4
  10. data/lib/risu/base/post_process_manager.rb +1 -1
  11. data/lib/risu/base/scan_helper.rb +77 -0
  12. data/lib/risu/base/schema.rb +1 -3
  13. data/lib/risu/base/shares_template_helper.rb +47 -21
  14. data/lib/risu/base/template_helper.rb +3 -2
  15. data/lib/risu/base/template_manager.rb +3 -5
  16. data/lib/risu/cli/application.rb +2 -2
  17. data/lib/risu/cli/banner.rb +18 -0
  18. data/lib/risu/models/host.rb +58 -64
  19. data/lib/risu/models/item.rb +1 -0
  20. data/lib/risu/models/plugin.rb +7 -1
  21. data/lib/risu/models/report.rb +2 -2
  22. data/lib/risu/parsers/nessus/nessus_document.rb +1 -1
  23. data/lib/risu/parsers/nessus/nessus_sax_listener.rb +4 -2
  24. data/lib/risu/parsers/nessus/postprocess/adobe_acrobat.rb +4 -0
  25. data/lib/risu/parsers/nessus/postprocess/adobe_air.rb +10 -0
  26. data/lib/risu/parsers/nessus/postprocess/adobe_reader.rb +6 -1
  27. data/lib/risu/parsers/nessus/postprocess/apache_tomcat.rb +4 -0
  28. data/lib/risu/parsers/nessus/postprocess/apple_itunes.rb +58 -0
  29. data/lib/risu/parsers/nessus/postprocess/cisco_anyconnect.rb +63 -0
  30. data/lib/risu/parsers/nessus/postprocess/cisco_ios.rb +62 -0
  31. data/lib/risu/parsers/nessus/postprocess/downgrade_plugins.rb +1 -0
  32. data/lib/risu/parsers/nessus/postprocess/firefox.rb +11 -0
  33. data/lib/risu/parsers/nessus/postprocess/flash_player.rb +16 -1
  34. data/lib/risu/parsers/nessus/postprocess/google_chrome.rb +58 -0
  35. data/lib/risu/parsers/nessus/postprocess/hp_system_mgt_homepage.rb +3 -0
  36. data/lib/risu/parsers/nessus/postprocess/irfanview.rb +51 -0
  37. data/lib/risu/parsers/nessus/postprocess/java.rb +7 -0
  38. data/lib/risu/parsers/nessus/postprocess/libreoffice.rb +57 -0
  39. data/lib/risu/parsers/nessus/postprocess/openoffice.rb +56 -0
  40. data/lib/risu/parsers/nessus/postprocess/openssh.rb +10 -0
  41. data/lib/risu/parsers/nessus/postprocess/openssl.rb +2 -0
  42. data/lib/risu/parsers/nessus/postprocess/oracle_database.rb +9 -3
  43. data/lib/risu/parsers/nessus/postprocess/php.rb +8 -0
  44. data/lib/risu/parsers/nessus/postprocess/post_process.rb +2 -2
  45. data/lib/risu/parsers/nessus/postprocess/root_cause.rb +7 -1
  46. data/lib/risu/parsers/nessus/postprocess/shockwave.rb +3 -0
  47. data/lib/risu/parsers/nessus/postprocess/timbuktu.rb +53 -0
  48. data/lib/risu/parsers/nessus/postprocess/vmware_esxi.rb +15 -0
  49. data/lib/risu/parsers/nessus/postprocess/vmware_player.rb +8 -1
  50. data/lib/risu/parsers/nessus/postprocess/vmware_vcenter.rb +11 -0
  51. data/lib/risu/parsers/nessus/postprocess/vmware_vsphere_client.rb +2 -0
  52. data/lib/risu/parsers/nessus/postprocess/windows.rb +140 -3
  53. data/lib/risu/parsers/nessus/postprocess/wireshark.rb +11 -0
  54. data/lib/risu/parsers/nexpose/nexpose_document.rb +1 -1
  55. data/lib/risu/parsers/nexpose/simple_nexpose.rb +0 -3
  56. data/lib/risu/renderers/csvrenderer.rb +2 -1
  57. data/lib/risu/templates/authentication_summary.rb +95 -0
  58. data/lib/risu/templates/findings_summary.rb +7 -3
  59. data/lib/risu/templates/findings_summary_with_pluginid.rb +12 -6
  60. data/lib/risu/templates/host_findings_csv.rb +14 -5
  61. data/lib/risu/templates/malicious_process_detection.rb +1 -5
  62. data/lib/risu/templates/notable_detailed.rb +4 -9
  63. data/lib/risu/templates/technical_findings.rb +3 -3
  64. data/lib/risu/templates/top_25.rb +5 -4
  65. data/lib/risu/version.rb +2 -2
  66. data/risu.gemspec +11 -11
  67. metadata +41 -33
@@ -72,6 +72,17 @@ module Risu
72
72
  60116,
73
73
  51458,
74
74
  52502,
75
+ 83488,
76
+ 36127,
77
+ 40335,
78
+ 43350,
79
+ 44338,
80
+ 46864,
81
+ 48213,
82
+ 48943,
83
+ 89103,
84
+ 90786,
85
+ 90787,
75
86
 
76
87
 
77
88
  ]
@@ -76,7 +76,7 @@ module Risu
76
76
  ip = IPAddr.new host.name
77
77
  host.ip = ip.to_string
78
78
  host.save
79
- rescue ArgumentError => ae
79
+ rescue ArgumentError
80
80
  next
81
81
  end
82
82
  end
@@ -24,8 +24,6 @@
24
24
  # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
25
25
  # OF THE POSSIBILITY OF SUCH DAMAGE.
26
26
 
27
- require 'risu'
28
-
29
27
  ActiveRecord::Migration.verbose = false
30
28
 
31
29
  module Risu
@@ -105,4 +103,3 @@ module Risu
105
103
  end
106
104
  end
107
105
  end
108
-
@@ -31,7 +31,8 @@ module Risu
31
31
  # @TODO comment
32
32
  #
33
33
  def self.generate(output_file, &block)
34
- csv = new(output_file, &block)
34
+ #csv = new(output_file, &block)
35
+ return new(output_file, &block)
35
36
  end
36
37
 
37
38
  # @TODO comment
@@ -0,0 +1,95 @@
1
+ # Copyright (c) 2010-2016 Arxopia LLC.
2
+ # All rights reserved.
3
+ #
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+ #
7
+ # * Redistributions of source code must retain the above copyright
8
+ # notice, this list of conditions and the following disclaimer.
9
+ # * Redistributions in binary form must reproduce the above copyright
10
+ # notice, this list of conditions and the following disclaimer in the
11
+ # documentation and/or other materials provided with the distribution.
12
+ # * Neither the name of the Arxopia LLC nor the names of its contributors
13
+ # may be used to endorse or promote products derived from this software
14
+ # without specific prior written permission.
15
+ #
16
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
+ # DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
20
+ # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22
+ # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23
+ # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
24
+ # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
25
+ # OF THE POSSIBILITY OF SUCH DAMAGE.
26
+
27
+ module Risu
28
+ module Templates
29
+ class AuthenticationSummary < Risu::Base::TemplateBase
30
+ include TemplateHelper
31
+
32
+ #
33
+ def initialize ()
34
+ @template_info =
35
+ {
36
+ :name => "authentication_summary",
37
+ :author => "hammackj",
38
+ :version => "0.0.1",
39
+ :renderer => "PDF",
40
+ :description => "Generates a Authentication Summary Report"
41
+ }
42
+ end
43
+
44
+ #
45
+ #
46
+ def render(output)
47
+ @output.text Report.classification.upcase, :align => :center
48
+ @output.text "\n"
49
+
50
+ report_title Report.title
51
+ report_subtitle "Authentication Summary Report"
52
+ report_author "This report was prepared by\n#{Report.author}"
53
+
54
+ @output.text "\n\n\n"
55
+
56
+ @output.text "Scan Date:", :style => :bold
57
+ @output.text "#{Report.scan_date}"
58
+ @output.text "\n"
59
+
60
+ results = Array.new
61
+
62
+ headers = ["Hostname", "OS", "Authenticated"]
63
+ header_widths = {0 => 230, 1 => 138, 2 => 138}
64
+
65
+ Host.sorted.each do |host|
66
+ row = Array.new
67
+
68
+ authenticated = nil
69
+
70
+ if host.host_properties.where(:name => "Credentialed_Scan").first != nil
71
+ authenticated = host.host_properties.where(:name => "Credentialed_Scan").first.value
72
+ end
73
+
74
+ os = host.os
75
+
76
+ host_name = host.name
77
+ host_name = "#{host.name} (#{host.netbios})" if host.netbios != nil
78
+
79
+ row.push(host_name)
80
+ row.push(os)
81
+ row.push(authenticated)
82
+
83
+ results.push(row)
84
+ end
85
+
86
+ output.table([headers] + results, :header => true, :column_widths => header_widths, :row_colors => ['ffffff', 'E5E5E5']) do
87
+ row(0).style(:font_style => :bold, :background_color => 'D0D0D0')
88
+ cells.borders = [:top, :bottom, :left, :right]
89
+ end
90
+
91
+ output.number_pages "<page> of <total>", :at => [output.bounds.right - 75, 0], :width => 150, :page_filter => :all
92
+ end
93
+ end
94
+ end
95
+ end
@@ -34,25 +34,29 @@ module Risu
34
34
  {
35
35
  :name => "findings_summary",
36
36
  :author => "hammackj",
37
- :version => "0.0.3",
37
+ :version => "0.0.4",
38
38
  :renderer => "PDF",
39
39
  :description => "Generates a findings summary report"
40
40
  }
41
41
  end
42
42
 
43
- def print_risk_summary(risks, text, color)
43
+ def print_risk_title (text, color)
44
44
  @output.font_size(20) do
45
45
  @output.fill_color color.gsub('#', '')
46
46
  @output.text text, :style => :bold
47
47
  @output.fill_color "000000"
48
48
  end
49
+ end
50
+
51
+ def print_risk_summary(risks, text, color)
52
+ print_risk_title(text, color) if risks.length != 0
49
53
 
50
54
  risks.each do |item|
51
55
  name = Plugin.find_by_id(item.plugin_id).plugin_name
52
56
  count = Item.where(:plugin_id => item.plugin_id).count
53
57
 
54
58
  text "#{count} - #{name}"
55
- end
59
+ end
56
60
  end
57
61
 
58
62
  def render(output)
@@ -36,30 +36,36 @@ module Risu
36
36
  {
37
37
  :name => "findings_summary_with_pluginid",
38
38
  :author => "hammackj",
39
- :version => "0.0.5",
39
+ :version => "0.0.6",
40
40
  :renderer => "PDF",
41
41
  :description => "Generates a Findings Summary with Nessus Plugin ID"
42
42
  }
43
43
  end
44
44
 
45
+ # TODO doc
45
46
  #
46
- #
47
- def print_risk_summary_with_plugin_id(risks, text, color)
47
+ def print_risk_title (text, color)
48
48
  @output.font_size(20) do
49
49
  @output.fill_color color.gsub('#', '')
50
50
  @output.text text, :style => :bold
51
51
  @output.fill_color "000000"
52
52
  end
53
+ end
54
+
55
+ # TODO doc
56
+ #
57
+ def print_risk_summary_with_plugin_id(risks, text, color)
58
+ print_risk_title(text, color) if risks.length != 0
53
59
 
54
60
  risks.each do |item|
55
61
  name = Plugin.find_by_id(item.plugin_id).plugin_name
56
62
  count = Item.where(:plugin_id => item.plugin_id).count
57
63
 
58
64
  text "#{count} - #{name} - #{item.plugin_id}"
59
- end
60
- end
65
+ end
66
+ end
61
67
 
62
- #
68
+ # TODO doc
63
69
  #
64
70
  def render(output)
65
71
  text Report.classification.upcase, :align => :center
@@ -35,7 +35,7 @@ module Risu
35
35
  {
36
36
  :name => "host_findings_csv",
37
37
  :author => "hammackj",
38
- :version => "0.0.1",
38
+ :version => "0.0.3",
39
39
  :renderer => "CSV",
40
40
  :description => "Generates a findings report by host and outputs to CSV"
41
41
 
@@ -47,20 +47,29 @@ module Risu
47
47
  #
48
48
  def csv risks
49
49
  risks.order(:cvss_base_score).each do |plugin|
50
- items = Item.where(:plugin_id => plugin.id)
50
+ items = Item.where(:plugin_id => plugin.id).group(:host_id)
51
51
 
52
52
  items.each do |item|
53
+ # Skip all PostProcssed Items
54
+ if item.severity == -1
55
+ next
56
+ end
57
+
53
58
  host = Host.where(:id => item.host_id).first
54
59
 
55
- @output.text "#{host.ip}, #{host.fqdn}, #{host.netbios}, #{item.plugin_name}, #{plugin.risk_factor}"
60
+ solution = plugin.solution.gsub("\n", " ").gsub(",", "")
61
+
62
+ @output.text "#{host.ip}, #{host.fqdn}, #{host.netbios}, #{item.plugin_name}, #{plugin.risk_factor}, #{plugin.cvss_base_score}, #{solution}"
56
63
  end
57
64
  end
58
65
  end
59
66
 
60
- #
67
+ # TODO doc
61
68
  #
62
69
  def render(output)
63
- csv Plugin.critical_risks
70
+ @output.text "IP Address, FQDN, Netbios Name, Finding, Risk Factor, CVSS Base Score, Solution"
71
+ csv Plugin.critical_risks.order(cvss_base_score: :desc)
72
+ csv Plugin.high_risks.order(cvss_base_score: :desc)
64
73
  end
65
74
  end
66
75
  end
@@ -105,11 +105,7 @@ module Risu
105
105
  if plugin.exploit_available != nil
106
106
  text "\nExploit Available", :style => :bold
107
107
 
108
- if plugin.exploit_available == "true"
109
- text "Yes"
110
- else
111
- text "No"
112
- end
108
+ plugin.exploit_available? ? "Yes" : "No"
113
109
  end
114
110
 
115
111
  if plugin.solution != nil
@@ -57,7 +57,7 @@ module Risu
57
57
  @output.text "#{Report.scan_date}"
58
58
  @output.text "\n"
59
59
 
60
- data = Item.top_10_sorted_raw
60
+ #data = Item.top_10_sorted_raw
61
61
 
62
62
  unique_risks = Array.new
63
63
  unique_risks << Hash[:title => "Notable Findings", :color => "9B30FF", :values => Item.top_10_sorted_raw[0..9]]
@@ -71,7 +71,7 @@ module Risu
71
71
  plugin_id = f[0]
72
72
 
73
73
  hosts = Item.where(:plugin_id => plugin_id).group(:host_id)
74
- item = Item.where(:plugin_id => plugin_id)
74
+ #item = Item.where(:plugin_id => plugin_id)
75
75
  plugin = Plugin.find_by_id(plugin_id)
76
76
 
77
77
  references = Reference.where(:plugin_id => plugin.id).group(:value).order(:reference_name)
@@ -79,7 +79,7 @@ module Risu
79
79
  heading3 "#{counter}: #{Item.scrub_plugin_name(plugin.plugin_name)}\n"
80
80
 
81
81
  if hosts.length > 1
82
- @output.text "Hosts", :style => :bold
82
+ @output.text "Hosts (#{hosts.length})", :style => :bold
83
83
  else
84
84
  @output.text "Host", :style => :bold
85
85
  end
@@ -117,11 +117,7 @@ module Risu
117
117
  if plugin.exploit_available != nil
118
118
  @output.text "\nExploit Available", :style => :bold
119
119
 
120
- if plugin.exploit_available == "true"
121
- @output.text "Yes"
122
- else
123
- @output.text "No"
124
- end
120
+ plugin.exploit_available? ? "Yes" : "No"
125
121
  end
126
122
 
127
123
  if plugin.solution != nil
@@ -150,4 +146,3 @@ module Risu
150
146
  end
151
147
  end
152
148
  end
153
-
@@ -48,14 +48,14 @@ module Risu
48
48
  hosts = Item.where(:plugin_id => f.plugin_id).group(:host_id)
49
49
  plugin = Plugin.find_by_id(f.plugin_id)
50
50
 
51
- references = Reference.where(:plugin_id => plugin.id).group(:value).order(:reference_name)
51
+ #references = Reference.where(:plugin_id => plugin.id).group(:value).order(:reference_name)
52
52
 
53
53
  output.font_size(16) do
54
54
  text "#{plugin.plugin_name}\n"
55
55
  end
56
56
 
57
57
  if hosts.length > 1
58
- text "Hosts", :style => :bold
58
+ text "Hosts (#{hosts.length})", :style => :bold
59
59
  else
60
60
  text "Host", :style => :bold
61
61
  end
@@ -74,7 +74,7 @@ module Risu
74
74
  definition "Description", plugin.description.gsub(/[ ]{2,}/, " ") if plugin.description != nil
75
75
  definition "Synopsis", plugin.synopsis
76
76
  definition "CVSS Base Score", plugin.cvss_base_score
77
- definition "Exploit Available", (plugin.exploit_available == "true") ? "Yes" : "No"
77
+ definition "Exploit Available", plugin.exploit_available? ? "Yes" : "No"
78
78
  definition "Solution", plugin.solution
79
79
  definition "References", plugin.references.reference_string, :inline_format => true
80
80
 
@@ -36,7 +36,7 @@ module Risu
36
36
  {
37
37
  :name => "top_25",
38
38
  :author => "hammackj",
39
- :version => "0.0.2",
39
+ :version => "0.0.3",
40
40
  :renderer => "PDF",
41
41
  :description => "Generates a Top 25 Remediation report"
42
42
  }
@@ -60,7 +60,8 @@ module Risu
60
60
  page_width = output.bounds.width
61
61
 
62
62
  #header_widths = {0 => 255, 1 => 56, 2 => 56, 3 => 56, 4 => 57}
63
- header_widths = {
63
+ header_widths =
64
+ {
64
65
  0 => (page_width * 0.50),
65
66
  1 => (page_width * 0.10),
66
67
  2 => (page_width * 0.15),
@@ -68,13 +69,13 @@ module Risu
68
69
  4 => (page_width * 0.15)
69
70
  }
70
71
 
71
- Plugin.where(:risk_factor => "Critical").order(:risk_score).limit(25).reverse_order.each do |plugin|
72
+ #Plugin.where(:risk_factor => "Critical").order(:risk_score).limit(25).reverse_order.each do |plugin|
73
+ Plugin.joins(:items).where(:items => {severity: 4}).order(:risk_score).group(:plugin_id).limit(25).reverse_order.each do |plugin|
72
74
  row = Array.new
73
75
 
74
76
  name = plugin.plugin_name
75
77
  vulns = Item.where(:plugin_id => plugin.id).count
76
78
 
77
-
78
79
  if plugin.exploitability_ease == "Exploits are available"
79
80
  exploitability = "Yes"
80
81
  else
@@ -26,8 +26,8 @@
26
26
 
27
27
  module Risu
28
28
  APP_NAME = "risu"
29
- VERSION = "1.7.6"
29
+ VERSION = "1.7.7"
30
30
  HOME_PAGE = "https://arxopia.github.io/risu/"
31
31
  GITHUB = "http://github.com/arxopia/risu"
32
- EMAIL = "risu@arxopia.com"
32
+ EMAIL = "jacob.hammack@arxopia.com"
33
33
  end
@@ -45,22 +45,22 @@ Gem::Specification.new do |s|
45
45
  s.executables = "#{Risu::APP_NAME}"
46
46
  s.require_paths = ["lib"]
47
47
  s.has_rdoc = 'yard'
48
- s.extra_rdoc_files = ["README.markdown", "LICENSE", "NEWS.markdown"]
48
+ s.extra_rdoc_files = ["README.markdown", "LICENSE", "docs/NEWS.markdown"]
49
49
 
50
50
  s.rubyforge_project = "#{Risu::APP_NAME}"
51
51
 
52
- s.add_runtime_dependency 'rails', '~> 4.2', '>= 4.2.5'
53
- s.add_runtime_dependency 'libxml-ruby', '~> 2.8', '>= 2.8.0'
54
- s.add_runtime_dependency 'prawn', '~> 2.0', '>= 2.0.2'
52
+ s.add_runtime_dependency 'rails', '~> 4.2', '>= 4.2.6'
53
+ s.add_runtime_dependency 'libxml-ruby', '~> 2.9', '>= 2.9.0'
54
+ s.add_runtime_dependency 'prawn', '~> 2.0', '>= 2.1.0'
55
55
  s.add_runtime_dependency 'prawn-table', '~> 0.2', '>= 0.2.2'
56
- s.add_runtime_dependency 'gruff', '~> 0.6', '>= 0.6.0'
57
- s.add_runtime_dependency 'mysql2', '~> 0.4', '>= 0.4.2'
56
+ s.add_runtime_dependency 'gruff', '~> 0.7', '>= 0.7.0'
57
+ s.add_runtime_dependency 'mysql2', '~> 0.4', '>= 0.4.4'
58
58
  s.add_runtime_dependency 'rmagick', '~> 2.15', '>= 2.15.4'
59
59
  s.add_runtime_dependency 'sqlite3', '~> 1.3', '>= 1.3.11'
60
- s.add_runtime_dependency 'nokogiri', '~> 1.6', '>= 1.6.7'
60
+ s.add_runtime_dependency 'nokogiri', '~> 1.6', '>= 1.6.8'
61
61
 
62
- s.add_development_dependency 'simplecov', '~> 0.11', '>= 0.11.1'
63
- s.add_development_dependency 'yard', '~> 0.8', '>= 0.8.0'
64
- s.add_development_dependency 'minitest', '~> 5.0', '>= 5.8.3'
65
- s.add_development_dependency 'test-unit', '~> 3.1', ">= 3.1.5"
62
+ s.add_development_dependency 'simplecov', '~> 0.11', '>= 0.11.2'
63
+ s.add_development_dependency 'yard', '~> 0.8', '>= 0.8.7.6'
64
+ s.add_development_dependency 'minitest', '~> 5.0', '>= 5.9'
65
+ s.add_development_dependency 'test-unit', '~> 3.2', ">= 3.2"
66
66
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: risu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.6
4
+ version: 1.7.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Hammack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-03 00:00:00.000000000 Z
11
+ date: 2016-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '4.2'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 4.2.5
22
+ version: 4.2.6
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,27 +29,27 @@ dependencies:
29
29
  version: '4.2'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 4.2.5
32
+ version: 4.2.6
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: libxml-ruby
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '2.8'
39
+ version: '2.9'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 2.8.0
42
+ version: 2.9.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '2.8'
49
+ version: '2.9'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 2.8.0
52
+ version: 2.9.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: prawn
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: '2.0'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 2.0.2
62
+ version: 2.1.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: '2.0'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 2.0.2
72
+ version: 2.1.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: prawn-table
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -96,20 +96,20 @@ dependencies:
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '0.6'
99
+ version: '0.7'
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 0.6.0
102
+ version: 0.7.0
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0.6'
109
+ version: '0.7'
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: 0.6.0
112
+ version: 0.7.0
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: mysql2
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -119,7 +119,7 @@ dependencies:
119
119
  version: '0.4'
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: 0.4.2
122
+ version: 0.4.4
123
123
  type: :runtime
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
@@ -129,7 +129,7 @@ dependencies:
129
129
  version: '0.4'
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 0.4.2
132
+ version: 0.4.4
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: rmagick
135
135
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +179,7 @@ dependencies:
179
179
  version: '1.6'
180
180
  - - ">="
181
181
  - !ruby/object:Gem::Version
182
- version: 1.6.7
182
+ version: 1.6.8
183
183
  type: :runtime
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
@@ -189,7 +189,7 @@ dependencies:
189
189
  version: '1.6'
190
190
  - - ">="
191
191
  - !ruby/object:Gem::Version
192
- version: 1.6.7
192
+ version: 1.6.8
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: simplecov
195
195
  requirement: !ruby/object:Gem::Requirement
@@ -199,7 +199,7 @@ dependencies:
199
199
  version: '0.11'
200
200
  - - ">="
201
201
  - !ruby/object:Gem::Version
202
- version: 0.11.1
202
+ version: 0.11.2
203
203
  type: :development
204
204
  prerelease: false
205
205
  version_requirements: !ruby/object:Gem::Requirement
@@ -209,7 +209,7 @@ dependencies:
209
209
  version: '0.11'
210
210
  - - ">="
211
211
  - !ruby/object:Gem::Version
212
- version: 0.11.1
212
+ version: 0.11.2
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: yard
215
215
  requirement: !ruby/object:Gem::Requirement
@@ -219,7 +219,7 @@ dependencies:
219
219
  version: '0.8'
220
220
  - - ">="
221
221
  - !ruby/object:Gem::Version
222
- version: 0.8.0
222
+ version: 0.8.7.6
223
223
  type: :development
224
224
  prerelease: false
225
225
  version_requirements: !ruby/object:Gem::Requirement
@@ -229,7 +229,7 @@ dependencies:
229
229
  version: '0.8'
230
230
  - - ">="
231
231
  - !ruby/object:Gem::Version
232
- version: 0.8.0
232
+ version: 0.8.7.6
233
233
  - !ruby/object:Gem::Dependency
234
234
  name: minitest
235
235
  requirement: !ruby/object:Gem::Requirement
@@ -239,7 +239,7 @@ dependencies:
239
239
  version: '5.0'
240
240
  - - ">="
241
241
  - !ruby/object:Gem::Version
242
- version: 5.8.3
242
+ version: '5.9'
243
243
  type: :development
244
244
  prerelease: false
245
245
  version_requirements: !ruby/object:Gem::Requirement
@@ -249,44 +249,44 @@ dependencies:
249
249
  version: '5.0'
250
250
  - - ">="
251
251
  - !ruby/object:Gem::Version
252
- version: 5.8.3
252
+ version: '5.9'
253
253
  - !ruby/object:Gem::Dependency
254
254
  name: test-unit
255
255
  requirement: !ruby/object:Gem::Requirement
256
256
  requirements:
257
257
  - - "~>"
258
258
  - !ruby/object:Gem::Version
259
- version: '3.1'
259
+ version: '3.2'
260
260
  - - ">="
261
261
  - !ruby/object:Gem::Version
262
- version: 3.1.5
262
+ version: '3.2'
263
263
  type: :development
264
264
  prerelease: false
265
265
  version_requirements: !ruby/object:Gem::Requirement
266
266
  requirements:
267
267
  - - "~>"
268
268
  - !ruby/object:Gem::Version
269
- version: '3.1'
269
+ version: '3.2'
270
270
  - - ">="
271
271
  - !ruby/object:Gem::Version
272
- version: 3.1.5
272
+ version: '3.2'
273
273
  description: risu is a Nessus .nessus XML parser and report generation tool
274
- email: risu@arxopia.com
274
+ email: jacob.hammack@arxopia.com
275
275
  executables:
276
276
  - risu
277
277
  extensions: []
278
278
  extra_rdoc_files:
279
279
  - README.markdown
280
280
  - LICENSE
281
- - NEWS.markdown
281
+ - docs/NEWS.markdown
282
282
  files:
283
283
  - Gemfile
284
284
  - Gemfile.lock
285
285
  - LICENSE
286
- - NEWS.markdown
287
286
  - README.markdown
288
287
  - Rakefile
289
288
  - bin/risu
289
+ - docs/NEWS.markdown
290
290
  - lib/risu.rb
291
291
  - lib/risu/base.rb
292
292
  - lib/risu/base/graph_template_helper.rb
@@ -294,6 +294,7 @@ files:
294
294
  - lib/risu/base/malware_template_helper.rb
295
295
  - lib/risu/base/post_process_base.rb
296
296
  - lib/risu/base/post_process_manager.rb
297
+ - lib/risu/base/scan_helper.rb
297
298
  - lib/risu/base/schema.rb
298
299
  - lib/risu/base/shares_template_helper.rb
299
300
  - lib/risu/base/template_base.rb
@@ -333,9 +334,12 @@ files:
333
334
  - lib/risu/parsers/nessus/postprocess/adobe_reader.rb
334
335
  - lib/risu/parsers/nessus/postprocess/apache.rb
335
336
  - lib/risu/parsers/nessus/postprocess/apache_tomcat.rb
337
+ - lib/risu/parsers/nessus/postprocess/apple_itunes.rb
336
338
  - lib/risu/parsers/nessus/postprocess/apple_quicktime.rb
337
339
  - lib/risu/parsers/nessus/postprocess/blackberry_enterprise_server.rb
338
340
  - lib/risu/parsers/nessus/postprocess/ca_brightstor_arcserve.rb
341
+ - lib/risu/parsers/nessus/postprocess/cisco_anyconnect.rb
342
+ - lib/risu/parsers/nessus/postprocess/cisco_ios.rb
339
343
  - lib/risu/parsers/nessus/postprocess/core_ftp.rb
340
344
  - lib/risu/parsers/nessus/postprocess/db2.rb
341
345
  - lib/risu/parsers/nessus/postprocess/downgrade_plugins.rb
@@ -346,7 +350,10 @@ files:
346
350
  - lib/risu/parsers/nessus/postprocess/foxit_reader.rb
347
351
  - lib/risu/parsers/nessus/postprocess/google_chrome.rb
348
352
  - lib/risu/parsers/nessus/postprocess/hp_system_mgt_homepage.rb
353
+ - lib/risu/parsers/nessus/postprocess/irfanview.rb
349
354
  - lib/risu/parsers/nessus/postprocess/java.rb
355
+ - lib/risu/parsers/nessus/postprocess/libreoffice.rb
356
+ - lib/risu/parsers/nessus/postprocess/openoffice.rb
350
357
  - lib/risu/parsers/nessus/postprocess/openssh.rb
351
358
  - lib/risu/parsers/nessus/postprocess/openssl.rb
352
359
  - lib/risu/parsers/nessus/postprocess/oracle_database.rb
@@ -358,6 +365,7 @@ files:
358
365
  - lib/risu/parsers/nessus/postprocess/shockwave.rb
359
366
  - lib/risu/parsers/nessus/postprocess/sigplus_pro.rb
360
367
  - lib/risu/parsers/nessus/postprocess/symantec_pcanywhere.rb
368
+ - lib/risu/parsers/nessus/postprocess/timbuktu.rb
361
369
  - lib/risu/parsers/nessus/postprocess/vlc.rb
362
370
  - lib/risu/parsers/nessus/postprocess/vmware_esxi.rb
363
371
  - lib/risu/parsers/nessus/postprocess/vmware_player.rb
@@ -374,6 +382,7 @@ files:
374
382
  - lib/risu/renderers/pdfrenderer.rb
375
383
  - lib/risu/template_helpers.rb
376
384
  - lib/risu/templates/assets.rb
385
+ - lib/risu/templates/authentication_summary.rb
377
386
  - lib/risu/templates/cover_sheet.rb
378
387
  - lib/risu/templates/data/nessuslogo.jpg
379
388
  - lib/risu/templates/exec_summary.rb
@@ -422,9 +431,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
422
431
  version: '0'
423
432
  requirements: []
424
433
  rubyforge_project: risu
425
- rubygems_version: 2.4.5.1
434
+ rubygems_version: 2.6.6
426
435
  signing_key:
427
436
  specification_version: 4
428
437
  summary: risu
429
438
  test_files: []
430
- has_rdoc: yard