risu 1.7.9 → 1.8.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 (139) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/LICENSE +1 -1
  5. data/README.markdown +16 -8
  6. data/Rakefile +12 -3
  7. data/bin/risu +2 -2
  8. data/docs/NEWS.markdown +32 -9
  9. data/lib/risu.rb +2 -2
  10. data/lib/risu/base.rb +1 -1
  11. data/lib/risu/base/graph_template_helper.rb +20 -26
  12. data/lib/risu/base/host_template_helper.rb +17 -23
  13. data/lib/risu/base/malware_template_helper.rb +18 -24
  14. data/lib/risu/base/post_process_base.rb +97 -71
  15. data/lib/risu/base/post_process_manager.rb +3 -3
  16. data/lib/risu/base/scan_helper.rb +17 -23
  17. data/lib/risu/base/schema.rb +2 -2
  18. data/lib/risu/base/shares_template_helper.rb +18 -24
  19. data/lib/risu/base/template_base.rb +1 -1
  20. data/lib/risu/base/template_helper.rb +20 -26
  21. data/lib/risu/base/template_manager.rb +5 -5
  22. data/lib/risu/base/templater.rb +3 -5
  23. data/lib/risu/cli.rb +1 -1
  24. data/lib/risu/cli/application.rb +26 -5
  25. data/lib/risu/cli/banner.rb +1 -1
  26. data/lib/risu/exceptions.rb +1 -1
  27. data/lib/risu/exceptions/invaliddocument.rb +1 -1
  28. data/lib/risu/graphs.rb +1 -1
  29. data/lib/risu/graphs/top_vuln_graph.rb +1 -1
  30. data/lib/risu/graphs/windows_os_graph.rb +1 -1
  31. data/lib/risu/models.rb +1 -1
  32. data/lib/risu/models/attachment.rb +1 -1
  33. data/lib/risu/models/familyselection.rb +1 -1
  34. data/lib/risu/models/host.rb +13 -13
  35. data/lib/risu/models/hostproperty.rb +1 -1
  36. data/lib/risu/models/individualpluginselection.rb +1 -1
  37. data/lib/risu/models/item.rb +7 -7
  38. data/lib/risu/models/patch.rb +1 -1
  39. data/lib/risu/models/plugin.rb +1 -1
  40. data/lib/risu/models/pluginspreference.rb +1 -1
  41. data/lib/risu/models/policy.rb +1 -1
  42. data/lib/risu/models/reference.rb +1 -1
  43. data/lib/risu/models/report.rb +2 -2
  44. data/lib/risu/models/serverpreference.rb +1 -1
  45. data/lib/risu/models/servicedescription.rb +1 -1
  46. data/lib/risu/models/version.rb +1 -1
  47. data/lib/risu/parsers.rb +1 -1
  48. data/lib/risu/parsers/nessus/nessus_document.rb +1 -1
  49. data/lib/risu/parsers/nessus/nessus_sax_listener.rb +1 -1
  50. data/lib/risu/parsers/nessus/postprocess.rb +1 -1
  51. data/lib/risu/parsers/nessus/postprocess/7zip.rb +46 -0
  52. data/lib/risu/parsers/nessus/postprocess/adobe_acrobat.rb +8 -1
  53. data/lib/risu/parsers/nessus/postprocess/adobe_air.rb +1 -1
  54. data/lib/risu/parsers/nessus/postprocess/adobe_reader.rb +5 -3
  55. data/lib/risu/parsers/nessus/postprocess/apache.rb +1 -1
  56. data/lib/risu/parsers/nessus/postprocess/apache_tomcat.rb +1 -1
  57. data/lib/risu/parsers/nessus/postprocess/apple_itunes.rb +2 -1
  58. data/lib/risu/parsers/nessus/postprocess/apple_quicktime.rb +26 -3
  59. data/lib/risu/parsers/nessus/postprocess/blackberry_enterprise_server.rb +1 -1
  60. data/lib/risu/parsers/nessus/postprocess/ca_brightstor_arcserve.rb +1 -1
  61. data/lib/risu/parsers/nessus/postprocess/cisco_anyconnect.rb +5 -1
  62. data/lib/risu/parsers/nessus/postprocess/cisco_ios.rb +1 -1
  63. data/lib/risu/parsers/nessus/postprocess/core_ftp.rb +1 -1
  64. data/lib/risu/parsers/nessus/postprocess/db2.rb +1 -1
  65. data/lib/risu/parsers/nessus/postprocess/downgrade_plugins.rb +3 -2
  66. data/lib/risu/parsers/nessus/postprocess/filezilla.rb +1 -1
  67. data/lib/risu/parsers/nessus/postprocess/firefox.rb +3 -1
  68. data/lib/risu/parsers/nessus/postprocess/flash_player.rb +29 -26
  69. data/lib/risu/parsers/nessus/postprocess/flexnet.rb +1 -1
  70. data/lib/risu/parsers/nessus/postprocess/foxit_phantom_pdf.rb +46 -0
  71. data/lib/risu/parsers/nessus/postprocess/foxit_reader.rb +11 -8
  72. data/lib/risu/parsers/nessus/postprocess/google_chrome.rb +11 -1
  73. data/lib/risu/parsers/nessus/postprocess/hp_system_mgt_homepage.rb +2 -1
  74. data/lib/risu/parsers/nessus/postprocess/irfanview.rb +1 -1
  75. data/lib/risu/parsers/nessus/postprocess/java.rb +3 -1
  76. data/lib/risu/parsers/nessus/postprocess/libreoffice.rb +3 -2
  77. data/lib/risu/parsers/nessus/postprocess/openoffice.rb +3 -1
  78. data/lib/risu/parsers/nessus/postprocess/openssh.rb +1 -1
  79. data/lib/risu/parsers/nessus/postprocess/openssl.rb +1 -1
  80. data/lib/risu/parsers/nessus/postprocess/oracle_database.rb +1 -1
  81. data/lib/risu/parsers/nessus/postprocess/php.rb +1 -1
  82. data/lib/risu/parsers/nessus/postprocess/post_process.rb +2 -2
  83. data/lib/risu/parsers/nessus/postprocess/real_player.rb +53 -0
  84. data/lib/risu/parsers/nessus/postprocess/risk_score.rb +1 -1
  85. data/lib/risu/parsers/nessus/postprocess/root_cause.rb +2 -3
  86. data/lib/risu/parsers/nessus/postprocess/servu.rb +1 -1
  87. data/lib/risu/parsers/nessus/postprocess/shockwave.rb +1 -1
  88. data/lib/risu/parsers/nessus/postprocess/sigplus_pro.rb +1 -1
  89. data/lib/risu/parsers/nessus/postprocess/skype.rb +46 -0
  90. data/lib/risu/parsers/nessus/postprocess/symantec_endpoint.rb +52 -0
  91. data/lib/risu/parsers/nessus/postprocess/symantec_pcanywhere.rb +1 -1
  92. data/lib/risu/parsers/nessus/postprocess/timbuktu.rb +1 -1
  93. data/lib/risu/parsers/nessus/postprocess/vlc.rb +12 -9
  94. data/lib/risu/parsers/nessus/postprocess/vmware_esxi.rb +9 -2
  95. data/lib/risu/parsers/nessus/postprocess/vmware_player.rb +1 -1
  96. data/lib/risu/parsers/nessus/postprocess/vmware_vcenter.rb +2 -2
  97. data/lib/risu/parsers/nessus/postprocess/vmware_vsphere_client.rb +1 -1
  98. data/lib/risu/parsers/nessus/postprocess/windows.rb +751 -705
  99. data/lib/risu/parsers/nessus/postprocess/winscp.rb +1 -1
  100. data/lib/risu/parsers/nessus/postprocess/wireshark.rb +2 -1
  101. data/lib/risu/parsers/nexpose/nexpose_document.rb +1 -1
  102. data/lib/risu/parsers/nexpose/simple_nexpose.rb +1 -1
  103. data/lib/risu/renderers.rb +1 -1
  104. data/lib/risu/renderers/csvrenderer.rb +3 -3
  105. data/lib/risu/renderers/nilrenderer.rb +1 -1
  106. data/lib/risu/renderers/pdfrenderer.rb +4 -5
  107. data/lib/risu/template_helpers.rb +1 -1
  108. data/lib/risu/templates/assets.rb +3 -3
  109. data/lib/risu/templates/authentication_summary.rb +34 -5
  110. data/lib/risu/templates/cover_sheet.rb +3 -6
  111. data/lib/risu/templates/exec_summary.rb +12 -4
  112. data/lib/risu/templates/executive_summary_detailed.rb +3 -3
  113. data/lib/risu/templates/exploitablity_summary.rb +3 -3
  114. data/lib/risu/templates/failed_audits.rb +20 -26
  115. data/lib/risu/templates/finding_statistics.rb +3 -3
  116. data/lib/risu/templates/findings_host.rb +3 -3
  117. data/lib/risu/templates/findings_summary.rb +5 -5
  118. data/lib/risu/templates/findings_summary_with_pluginid.rb +5 -5
  119. data/lib/risu/templates/graphs.rb +3 -3
  120. data/lib/risu/templates/host_findings_csv.rb +3 -3
  121. data/lib/risu/templates/host_summary.rb +3 -3
  122. data/lib/risu/templates/malicious_process_detection.rb +3 -3
  123. data/lib/risu/templates/missing_root_causes.rb +3 -3
  124. data/lib/risu/templates/ms_patch_summary.rb +3 -3
  125. data/lib/risu/templates/ms_update_summary.rb +3 -3
  126. data/lib/risu/templates/ms_wsus_findings.rb +19 -26
  127. data/lib/risu/templates/notable.rb +3 -3
  128. data/lib/risu/templates/notable_detailed.rb +3 -3
  129. data/lib/risu/templates/pci_compliance.rb +3 -3
  130. data/lib/risu/templates/stig_findings_summary.rb +3 -3
  131. data/lib/risu/templates/talking_points.rb +5 -31
  132. data/lib/risu/templates/technical_findings.rb +3 -3
  133. data/lib/risu/templates/template.rb +3 -3
  134. data/lib/risu/templates/top_25.rb +3 -3
  135. data/lib/risu/version.rb +6 -5
  136. data/risu.gemspec +9 -7
  137. metadata +49 -20
  138. metadata.gz.sig +2 -0
  139. data/Gemfile.lock +0 -148
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -30,7 +30,7 @@ module Risu
30
30
  # @param path Path relative to the base_dir of risu
31
31
  #
32
32
  # @return New instance of the template manager with templates loaded.
33
- def initialize (path)
33
+ def initialize path
34
34
  @registered_postprocesses = Array.new
35
35
  @postprocesses = Array.new
36
36
 
@@ -92,7 +92,7 @@ module Risu
92
92
  # @param template The template to validate
93
93
  #
94
94
  # @return [Boolean] If the template is valid
95
- def validate(template)
95
+ def validate template
96
96
  t = template.new
97
97
 
98
98
  return false if t == nil
@@ -1,28 +1,22 @@
1
- # Copyright (c) 2012-2016 Arxopia LLC.
2
- # All rights reserved.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
3
2
  #
4
- # Redistribution and use in source and binary forms, with or without
5
- # modification, are permitted provided that the following conditions are met:
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
6
9
  #
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.
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
15
12
  #
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.
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
26
20
 
27
21
  module Risu
28
22
  module Templates
@@ -30,7 +24,7 @@ module Risu
30
24
 
31
25
  #
32
26
  # TODO doc
33
- def scan_info_to_hash(plugin_output)
27
+ def scan_info_to_hash plugin_output
34
28
  scan_info = {}
35
29
 
36
30
  plugin_output.split("\n").each do |line|
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -23,7 +23,7 @@ module Risu
23
23
  module Base
24
24
 
25
25
  # Risu database Schema
26
- class Schema < ActiveRecord::Migration
26
+ class Schema < ActiveRecord::Migration[4.2]
27
27
 
28
28
  # Creates all of the database tables required by the parser
29
29
  def self.up
@@ -1,28 +1,22 @@
1
- # Copyright (c) 2012-2016 Arxopia LLC.
2
- # All rights reserved.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
3
2
  #
4
- # Redistribution and use in source and binary forms, with or without
5
- # modification, are permitted provided that the following conditions are met:
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
6
9
  #
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.
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
15
12
  #
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.
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
26
20
 
27
21
  module Risu
28
22
  module Templates
@@ -32,7 +26,7 @@ module Risu
32
26
  def anon_ftp_count
33
27
  begin
34
28
  return Item.where(:plugin_id => Plugin.where(:plugin_name => "Anonymous FTP Enabled").first.id).count
35
- rescue => e
29
+ rescue
36
30
  return 0
37
31
  end
38
32
  end
@@ -88,7 +82,7 @@ module Risu
88
82
 
89
83
  count = count + 1
90
84
  end
91
- rescue => e
85
+ rescue
92
86
  return 0
93
87
  end
94
88
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,28 +1,22 @@
1
- # Copyright (c) 2012-2016 Arxopia LLC.
2
- # All rights reserved.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
3
2
  #
4
- # Redistribution and use in source and binary forms, with or without
5
- # modification, are permitted provided that the following conditions are met:
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
6
9
  #
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.
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
15
12
  #
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.
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
26
20
 
27
21
  module Risu
28
22
  module Templates
@@ -137,18 +131,18 @@ module Risu
137
131
  end
138
132
 
139
133
  #
140
- def item_count_by_plugin_name (plugin_name)
134
+ def item_count_by_plugin_name plugin_name
141
135
  begin
142
136
  return Item.where(:plugin_id => Plugin.where(:plugin_name => plugin_name).first.id).count
143
- rescue # => e
137
+ rescue
144
138
  return 0
145
139
  end
146
140
  end
147
141
 
148
- def item_count_by_plugin_id (plugin_id)
142
+ def item_count_by_plugin_id plugin_id
149
143
  begin
150
144
  return Item.where(:plugin_id => plugin_id).count
151
- rescue => e
145
+ rescue
152
146
  return 0
153
147
  end
154
148
  end
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -30,7 +30,7 @@ module Risu
30
30
  # @param path Path relative to the base_dir of risu
31
31
  #
32
32
  # @return New instance of the template manager with templates loaded.
33
- def initialize (path)
33
+ def initialize path
34
34
  @registered_templates = Array.new
35
35
  @templates = Array.new
36
36
 
@@ -44,7 +44,7 @@ module Risu
44
44
  # Loads templates from a specific path
45
45
  #
46
46
  # @param path Path to templates to load
47
- def load_templates(path, recursive=true)
47
+ def load_templates path, recursive=true
48
48
  begin
49
49
  search_path = "#{path}/**/*.rb" if recursive == true
50
50
  search_path = "#{path}/*.rb" if recursive == false
@@ -74,7 +74,7 @@ module Risu
74
74
  # @param template The template to validate
75
75
  #
76
76
  # @return [Boolean] If the template is valid
77
- def validate(template)
77
+ def validate template
78
78
  t = template.new
79
79
 
80
80
  return false if t == nil
@@ -86,7 +86,7 @@ module Risu
86
86
  # @param name Name of the template to find
87
87
  #
88
88
  # @return the instance of the template or nil if not found
89
- def find_template_by_name(name)
89
+ def find_template_by_name name
90
90
  @registered_templates.each do |template|
91
91
  t = template.new
92
92
  if t.template_info[:name] == name
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -29,7 +29,7 @@ module Risu
29
29
  # Setups of the Templater class initializing all of the variables
30
30
  #
31
31
  # @return [Templater] New Instance
32
- def initialize(template, findings, output, template_manager)
32
+ def initialize template, findings, output, template_manager
33
33
  @template = template
34
34
  @findings = findings
35
35
  @output_file = output
@@ -59,10 +59,8 @@ module Risu
59
59
  t = t.class.new
60
60
  t.output = output
61
61
  t.render(output) unless t == nil
62
- end
62
+ end
63
63
  end
64
-
65
-
66
64
  rescue => e
67
65
  raise unless Rails.env.production?
68
66
  puts "Templater Error: #{e.message} \n #{e.backtrace.join("\n\t")}\n"
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -53,6 +53,9 @@ module Risu
53
53
  f.write(" author: \n")
54
54
  f.write(" title: \n")
55
55
  f.write(" company: \n")
56
+ f.write(" network: \n")
57
+ f.write(" owner: \n")
58
+ f.write(" location: \n")
56
59
  f.write(" classification: \n\n")
57
60
  f.write("database:\n")
58
61
  f.write(" adapter: \n")
@@ -69,7 +72,7 @@ module Risu
69
72
  #
70
73
  # @param file Path to configuration file
71
74
  # @param in_memory_config [Boolean] If the configuration is in memory
72
- def load_config(file=CONFIG_FILE, in_memory_config=false)
75
+ def load_config file=CONFIG_FILE, in_memory_config=false
73
76
  if File.exist?(file) == true or in_memory_config == true
74
77
  begin
75
78
  if in_memory_config
@@ -102,7 +105,7 @@ module Risu
102
105
  # Initiator for [ActiveRecord] migrations.
103
106
  #
104
107
  # @param direction [Symbol] :up or :down
105
- def migrate(direction)
108
+ def migrate direction
106
109
  begin
107
110
  if @database["adapter"] == nil
108
111
  return false, "[!] Invalid database adapter, please check your configuration file"
@@ -168,8 +171,20 @@ module Risu
168
171
  puts "[!] Database adapter not found, please check your configuration file"
169
172
  puts "#{anf.message}\n #{anf.backtrace}" if @options[:debug]
170
173
  exit
174
+ rescue ActiveRecord::NoDatabaseError => nde
175
+ puts "[!] Database not found. Please check your configuration file"
176
+ puts "#{nde.message}\n #{nde.backtrace}" if @options[:debug]
177
+ exit
178
+ rescue Mysql2::Error => mse
179
+ puts "[!] Unable to connect to MySQL. \"#{mse.message}\" Please check your configuration file"
180
+ puts "#{mse.message}\n #{mse.backtrace}" if @options[:debug]
181
+ exit
182
+ rescue SQLite3::Exception => se
183
+ puts "[!] Unable to open database. Please check your configuration file"
184
+ puts "#{se.message}\n #{se.backtrace}" if @options[:debug]
185
+ exit
171
186
  rescue => e
172
- puts "[!] Exception! #{e.message}\n #{e.backtrace}"
187
+ puts "[!] Exception (#{e.class})! #{e.message}\n #{e.backtrace}"
173
188
  end
174
189
  end
175
190
 
@@ -219,7 +234,7 @@ module Risu
219
234
  def parse_options
220
235
  begin
221
236
  opts = OptionParser.new do |opt|
222
- opt.banner = "#{APP_NAME} v#{VERSION}\nJacob Hammack\nhttp://www.arxopia.com\n\n"
237
+ opt.banner = "#{APP_NAME} v#{VERSION}\nJacob Hammack\nhttp://www.hammackj.com\n\n"
223
238
  opt.banner << "Usage: #{APP_NAME} [options] [files_to_parse]"
224
239
  opt.separator('')
225
240
  opt.separator("Parse Options")
@@ -327,6 +342,9 @@ module Risu
327
342
  puts opts.to_s + "\n"
328
343
  exit
329
344
  end
345
+ rescue OptionParser::AmbiguousOption => a
346
+ puts opts.to_s + "\n"
347
+ exit
330
348
  rescue OptionParser::MissingArgument => m
331
349
  puts opts.to_s + "\n"
332
350
  exit
@@ -398,6 +416,9 @@ module Risu
398
416
  @findings.title = @report["title"]
399
417
  @findings.company = @report["company"]
400
418
  @findings.classification = @report["classification"]
419
+ @findings.network = @report["network"]
420
+ @findings.owner = @report["owner"]
421
+ @findings.location = @report["location"]
401
422
  @findings.extra = @report
402
423
 
403
424
  template = Templater.new(@options[:template], @findings, @options[:output_file], @template_manager)
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal