risu 1.4.3 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/KNOWNISSUES.markdown +4 -4
  2. data/NEWS.markdown +10 -4
  3. data/README.markdown +29 -28
  4. data/Rakefile +5 -9
  5. data/TODO.markdown +8 -14
  6. data/bin/risu +2 -2
  7. data/lib/{nessusdb.rb → risu.rb} +10 -10
  8. data/lib/risu/cli.rb +9 -0
  9. data/lib/{nessusdb → risu}/cli/application.rb +13 -13
  10. data/lib/risu/cli/banner.rb +61 -0
  11. data/lib/risu/exceptions.rb +8 -0
  12. data/lib/{nessusdb → risu}/exceptions/invaliddocument.rb +1 -1
  13. data/lib/{nessusdb → risu}/listener.rb +6 -6
  14. data/lib/risu/models.rb +18 -0
  15. data/lib/{nessusdb → risu}/models/familyselection.rb +1 -1
  16. data/lib/{nessusdb → risu}/models/host.rb +1 -1
  17. data/lib/{nessusdb → risu}/models/individualpluginselection.rb +1 -1
  18. data/lib/{nessusdb → risu}/models/item.rb +1 -1
  19. data/lib/{nessusdb → risu}/models/plugin.rb +1 -1
  20. data/lib/{nessusdb → risu}/models/pluginspreference.rb +1 -1
  21. data/lib/{nessusdb → risu}/models/policy.rb +1 -1
  22. data/lib/{nessusdb → risu}/models/reference.rb +1 -1
  23. data/lib/{nessusdb → risu}/models/report.rb +1 -1
  24. data/lib/{nessusdb → risu}/models/serverpreference.rb +1 -1
  25. data/lib/{nessusdb → risu}/models/version.rb +1 -1
  26. data/lib/{nessusdb → risu}/nessusdocument.rb +1 -1
  27. data/lib/{nessusdb → risu}/parsers.rb +2 -2
  28. data/lib/{nessusdb → risu}/prawn_templater.rb +1 -1
  29. data/lib/{nessusdb → risu}/schema.rb +2 -2
  30. data/lib/{nessusdb → risu}/templates/assets.rb +0 -0
  31. data/lib/{nessusdb → risu}/templates/cover_sheet.rb +0 -0
  32. data/lib/{nessusdb → risu}/templates/data/nessuslogo.jpg +0 -0
  33. data/lib/{nessusdb → risu}/templates/exec_summary.rb +0 -0
  34. data/lib/{nessusdb → risu}/templates/executive_summary.rb +0 -0
  35. data/lib/{nessusdb → risu}/templates/finding_statistics.rb +0 -0
  36. data/lib/{nessusdb → risu}/templates/findings_host.rb +0 -0
  37. data/lib/{nessusdb → risu}/templates/findings_summary.rb +0 -0
  38. data/lib/{nessusdb → risu}/templates/findings_summary_with_pluginid.rb +0 -0
  39. data/lib/{nessusdb → risu}/templates/graphs.rb +0 -0
  40. data/lib/{nessusdb → risu}/templates/host_summary.rb +0 -0
  41. data/lib/{nessusdb → risu}/templates/ms_patch_summary.rb +0 -0
  42. data/lib/{nessusdb → risu}/templates/ms_update_summary.rb +0 -0
  43. data/lib/{nessusdb → risu}/templates/pci_compliance.rb +0 -0
  44. data/lib/{nessusdb → risu}/templates/technical_findings.rb +0 -0
  45. data/risu.gemspec +8 -8
  46. metadata +40 -40
  47. data/lib/nessusdb/cli.rb +0 -9
  48. data/lib/nessusdb/cli/banner.rb +0 -25
  49. data/lib/nessusdb/exceptions.rb +0 -8
  50. data/lib/nessusdb/models.rb +0 -18
@@ -3,7 +3,7 @@
3
3
  ## RMagick Breaks on ImageMagick Updates
4
4
  The easy way to fix this is to just reinstall RMagick, like below:
5
5
 
6
- [hammackj@taco:~/Projects/public/nessusdb]$ nessusdb
6
+ [hammackj@taco:~/Projects/public/risu]$ risu
7
7
  /Library/Ruby/Gems/1.8/gems/rmagick-2.13.1/lib/RMagick2.bundle: This installation of RMagick was configured with ImageMagick 6.6.5 but ImageMagick 6.6.7-0 is in use. (RuntimeError)
8
8
  from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `require'
9
9
  from /Library/Ruby/Gems/1.8/gems/rmagick-2.13.1/lib/RMagick.rb:11
@@ -17,12 +17,12 @@ The easy way to fix this is to just reinstall RMagick, like below:
17
17
  from /Library/Ruby/Gems/1.8/gems/gruff-0.3.6/lib/gruff.rb:5
18
18
  from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:34:in `gem_original_require'
19
19
  from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:34:in `require'
20
- from ./bin/../lib/nessusdb.rb:10
20
+ from ./bin/../lib/risu.rb:10
21
21
  from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
22
22
  from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `require'
23
- from ./bin/nessusdb:22
23
+ from ./bin/risu:22
24
24
 
25
- [hammackj@taco:~/Projects/public/nessusdb]$ sudo gem install rmagick
25
+ [hammackj@taco:~/Projects/public/risu]$ sudo gem install rmagick
26
26
 
27
27
  ## Mac OSX Native Dependencies
28
28
  The gems for mysql and rmagick will fail to build if these are not installed.
@@ -1,5 +1,11 @@
1
1
  # News
2
2
 
3
+ #1.4.4 (May 28, 2011)
4
+ - NessusDB has been renamed to risu
5
+ - Fixed a bug in --create-config, where tabs were being inserted with spaces
6
+ - Fixed a bug in load_config where the exception was not printed.
7
+ - Added more banners to the console for fun
8
+
3
9
  #1.4.3 (May 23, 2011)
4
10
 
5
11
  **This is the last release under the NessusDB name, I received a legal notice to change the name. They gave me a few weeks to change the name but I do not have a new name yet. If you have any suggestions please submit them to jacob.hammack[@]hammackj.com**
@@ -43,9 +49,9 @@
43
49
  - Simple list of findings by host, in findings_host.rb [Ticket #27]
44
50
 
45
51
  # 1.3.0 (March 4, 2011)
46
- **Command line options have changed slightly, run nessusdb -? for a full list of commands**
52
+ **Command line options have changed slightly, run risu -? for a full list of commands**
47
53
 
48
- **The default config file name is now nessusdb.cfg**
54
+ **The default config file name is now risu.cfg**
49
55
 
50
56
  - New templates
51
57
  - Microsoft Patches Summary
@@ -61,7 +67,7 @@
61
67
  - Cleaned up the graphs to be a little easier to read
62
68
  - Added significantly more error checking to the command line application
63
69
  - Updated the config file format to handle all of the report generation options as well as the database configuration options
64
- - Added a command line option for passing it a config file to use instead of forcing the default ./nessusdb.cfg
70
+ - Added a command line option for passing it a config file to use instead of forcing the default ./risu.cfg
65
71
  - Migrated to OptionParser Choice seems to be an abandoned gem with bugs
66
72
  - Updated all the Migration code to use the new AR3 format
67
73
 
@@ -105,7 +111,7 @@
105
111
  - Moved to prawn for pdf output
106
112
  - added templates for the new prawn output
107
113
  - added checks to warn when there are new xml tags
108
- - moved everything into the nessusdb executable
114
+ - moved everything into the risu executable
109
115
  - cleaned up the code
110
116
 
111
117
  # 0.6.5 (August 15, 2010)
@@ -1,16 +1,16 @@
1
- # NessusDB
1
+ # risu
2
2
 
3
- NessusDB is [Nessus](http://www.nessus.org) parser, that converts the generated reports into a [ActiveRecord](http://api.rubyonrails.org/classes/ActiveRecord/Base.html) database, this allows for easy report generation and vulnerability verification.
3
+ Risu is [Nessus](http://www.nessus.org) parser, that converts the generated reports into a [ActiveRecord](http://api.rubyonrails.org/classes/ActiveRecord/Base.html) database, this allows for easy report generation and vulnerability verification.
4
4
 
5
- Version 1.4.3 is the current release.
5
+ Version 1.4.4 is the current release.
6
6
 
7
7
  ## Requirements
8
8
 
9
9
  ### Ruby
10
- NessusDB has been tested with ruby-1.8.7-p334, ruby-1.9.1-p431, ruby-1.9.2-p180. Please try to use one of these versions if possible. I recommend using RVM to setup your ruby environment you can get it [here](https://rvm.beginrescueend.com/).
10
+ Risu has been tested with ruby-1.8.7-p334, ruby-1.9.1-p431, ruby-1.9.2-p180. Please try to use one of these versions if possible. I recommend using RVM to setup your ruby environment you can get it [here](https://rvm.beginrescueend.com/).
11
11
 
12
12
  ### RubyGems
13
- NessusDB relies heavily on RubyGems to install other dependencies I highly recommend using it. RubyGems is included by default in the Ruby 1.9 branches.
13
+ Risu relies heavily on RubyGems to install other dependencies I highly recommend using it. RubyGems is included by default in the Ruby 1.9 branches.
14
14
 
15
15
  - libxml
16
16
  - rails
@@ -23,32 +23,32 @@ NessusDB relies heavily on RubyGems to install other dependencies I highly recom
23
23
 
24
24
  ## Developmental Requirements
25
25
 
26
- These are all available through [RubyGems](http://rubygems.org/). The should be installed automatically when you install nessusdb, If not this command will install them all:
26
+ These are all available through [RubyGems](http://rubygems.org/). The should be installed automatically when you install risu, If not this command will install them all:
27
27
 
28
28
  % gem install rmagick gruff prawn sham faker rspec rcov machinist yard mysql libxml-ruby rails sqlite3 logger yaml
29
29
 
30
30
  **You my need sudo/root access depending on your system setup**
31
31
 
32
- Any database that ActiveRecord supports should work. NessusDB has been tested with [MySQL](http://www.mysql.com/) and [SQLite3](http://sqlite.org/).
32
+ Any database that ActiveRecord supports should work. Risu has been tested with [MySQL](http://www.mysql.com/) and [SQLite3](http://sqlite.org/).
33
33
 
34
34
  ## Installation
35
35
  Installation is really easy just gem install!
36
36
 
37
- % gem install nessusdb
37
+ % gem install risu
38
38
 
39
39
  ## Database Setup
40
40
 
41
- % nessusdb --create-config
42
- % $EDITOR nessusdb.cfg
43
- % nessusdb --create-tables
41
+ % risu --create-config
42
+ % $EDITOR risu.cfg
43
+ % risu --create-tables
44
44
 
45
- 1. Generate the nessusdb.cfg file.
46
- 2. Edit the nessusdb.cfg file, filling in the variables as needed.
45
+ 1. Generate the risu.cfg file.
46
+ 2. Edit the risu.cfg file, filling in the variables as needed.
47
47
  3. Migrate the database schema.
48
48
 
49
49
  ## Parsing Nessus Output
50
50
 
51
- % nessusdb report1.nessus [report2.nessus ...]
51
+ % risu report1.nessus [report2.nessus ...]
52
52
 
53
53
  1. Parse the files by passing their names on the command line.
54
54
 
@@ -59,23 +59,24 @@ The data can be viewed with a query browser available for your database. A Rails
59
59
  ## Generating Reports
60
60
  To generate a report please execute the following after the the data is parsed into the database.
61
61
 
62
- % nessusdb -t "TEMPLATE_PATH" -o "REPORT_NAME.pdf"
62
+ % risu -t "TEMPLATE_PATH" -o "REPORT_NAME.pdf"
63
63
 
64
- ## NessusDB Console
64
+ ## Risu Console
65
65
 
66
- Using the NessusDB Console is just like using Rails. You can access all of the ActiveRecord models directly and pull specific data from each model. Like SQL only easier!
66
+ Using the risu Console is just like using Rails. You can access all of the ActiveRecord models directly and pull specific data from each model. Like SQL only easier!
67
67
 
68
- [hammackj@taco:~/Projects/public/nessusdb]$ ../bin/nessusdb --console
68
+ [hammackj@taco:~/Projects/public/risu]$ ../bin/risu --console
69
69
 
70
- _ _
71
- _ __ ___ ___ ___ _ _ ___ __| | |__
72
- | '_ \ / _ \/ __/ __| | | / __|/ _` | '_ \
73
- | | | | __/\__ \__ \ |_| \__ \ (_| | |_) |
74
- |_| |_|\___||___/___/\__,_|___/\__,_|_.__/
70
+ _
71
+ _ __(_)___ _ _
72
+ | '__| / __| | | |
73
+ | | | \__ \ |_| |
74
+ |_| |_|___/\__,_|
75
75
 
76
- NessusDB Console v1.4.2
76
+
77
+ risu Console v1.4.4
77
78
  >> Host.first
78
- => #<NessusDB::Models::Host id: 1, report_id: 1, name: "10.69.69.74", os: "Linux Kernel 2.6 on Debian 4.0 (etch)", mac: "XX:XX:XX:XX:XX:XX", start: "2011-04-20 16:29:37", end: "2011-04-20 16:32:14", ip: "10.69.69.74", fqdn: "redada.hammackj.net", netbios: "REDADA", local_checks_proto: nil, smb_login_used: nil, ssh_auth_meth: nil, ssh_login_used: nil, pci_dss_compliance: nil, notes: nil>
79
+ => #<Risu::Models::Host id: 1, report_id: 1, name: "10.69.69.74", os: "Linux Kernel 2.6 on Debian 4.0 (etch)", mac: "XX:XX:XX:XX:XX:XX", start: "2011-04-20 16:29:37", end: "2011-04-20 16:32:14", ip: "10.69.69.74", fqdn: "redada.hammackj.net", netbios: "REDADA", local_checks_proto: nil, smb_login_used: nil, ssh_auth_meth: nil, ssh_login_used: nil, pci_dss_compliance: nil, notes: nil>
79
80
 
80
81
  ## Templates
81
82
  Several templates are included:
@@ -93,11 +94,11 @@ Several templates are included:
93
94
  11. cover_sheet.rb - a example coversheet report
94
95
  12. findings_host.rb - list of findings per host
95
96
 
96
- The templates are located in the nessusdb/templates folder, where ever the gem was installed. On a typical Mac OSX install the path is:
97
+ The templates are located in the risu/templates folder, where ever the gem was installed. On a typical Mac OSX install the path is:
97
98
 
98
99
  [hammackj@taco:~]$ ruby -v
99
100
  ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
100
- [hammackj@taco:~]$ l /Library/Ruby/Gems/1.8/gems/nessusdb-1.4.0/lib/nessusdb/templates/
101
+ [hammackj@taco:~]$ l /Library/Ruby/Gems/1.8/gems/risu-1.4.0/lib/risu/templates/
101
102
  total 40
102
103
  drwxr-xr-x 7 hammackj admin 238B Oct 21 19:24 ./
103
104
  drwxr-xr-x 8 hammackj admin 272B Oct 21 19:24 ../
@@ -120,7 +121,7 @@ The templates are located in the nessusdb/templates folder, where ever the gem w
120
121
  The templates are written in ruby using [prawn](http://prawn.majesticseacreature.com/), they are fairly easy to make. I will add any templates as requested.
121
122
 
122
123
  # Issues
123
- If you have any problems, bugs or feature requests please use the [github issue tracker](http://github.com/hammackj/nessusdb/issues).
124
+ If you have any problems, bugs or feature requests please use the [github issue tracker](http://github.com/hammackj/risu/issues).
124
125
 
125
126
  # Contact
126
127
  You can reach me at jacob[dot]hammack[at]hammackj[dot]com.
data/Rakefile CHANGED
@@ -1,18 +1,18 @@
1
1
  $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
2
 
3
3
  require 'rubygems' # not sure why...
4
- require "nessusdb"
4
+ require "risu"
5
5
  require 'rake'
6
6
  require 'rspec/core/rake_task'
7
7
 
8
8
  task :build do
9
- system "gem build nessusdb.gemspec"
9
+ system "gem build #{Risu::APP_NAME}.gemspec"
10
10
  end
11
11
 
12
12
  task :release => :build do
13
- system "gem push nessusdb-#{NessusDB::VERSION}.gem"
13
+ system "gem push #{Risu::APP_NAME}-#{Risu::VERSION}.gem"
14
14
 
15
- puts "Just released NessusDB v#{NessusDB::VERSION}. NessusDB is always available in RubyGems!"
15
+ puts "Just released #{Risu::APP_NAME} v#{Risu::VERSION}. #{Risu::APP_NAME} is always available in RubyGems!"
16
16
  end
17
17
 
18
18
  task :clean do
@@ -29,9 +29,5 @@ task :report do
29
29
  end
30
30
 
31
31
  RSpec::Core::RakeTask.new(:spec) do |t|
32
- #t.spec_files = ["application_spec.rb", "item_spec.rb", "plugin_spec.rb", "banner_spec.rb", "host_spec.rb", "nessusdocument_spec.rb", "report_spec.rb"]
33
- Rake::Task['report'].invoke
34
-
35
- # t.rcov = true
36
- # t.rcov_opts = ['--exclude osx\/objc,gems\/,spec\/,features\/', 'specs']
32
+ Rake::Task['report'].invoke
37
33
  end
@@ -3,26 +3,20 @@
3
3
  **Release dates are estimates, and features can be changed at any time.**
4
4
 
5
5
  ## 1.4.5 (May)
6
- - Rename Project
7
- - Possible Names
8
- - ndb (Want to get away from the DB stuff)
9
- - fender
10
- - Euenos
11
- - camara
12
- - Hayabusa (Falcon)
13
- - Taka (Hawk)
14
- - Fukurou (owl) **
15
- - risu (squirrel) ***
16
- - Bunseki (analysis)
6
+
17
7
  - Add a CVSS risk factor graph
18
- - Update Assets templates to use this if possible http://www.nessus.org/plugins/index.php?view=single&id=54615
8
+ - Update Assets templates to use this if possible plugin: http://www.nessus.org/plugins/index.php?view=single&id=54615 for extra data
19
9
 
20
10
  ## 1.5 (7/4/2011)
21
11
  - Clean up / Bug fixes before 2.0
22
12
  - Create rSpec tests for everything (100% code coverage goal)
23
13
  - Parser tests
14
+ - Add test for new xml element
15
+ - Add test for new host properties tag
24
16
  - application specs
25
17
  - Add a failed load_config() test
18
+ - add test for load config from file
19
+ - add test for non existent config file
26
20
  - models tests
27
21
  - policy
28
22
  - family selection
@@ -39,7 +33,7 @@
39
33
  - 100% code coverage for testing
40
34
  - Rework the blacklisting stuff
41
35
  - Add blacklisting to config
42
- - Add Schema checks to make sure the schema is compatible with the version of nessusdb
36
+ - Add Schema checks to make sure the schema is compatible with the version of risu
43
37
  - Check to see that the xml is version 2
44
38
  - Version 1 = NessusClientData
45
39
  - Version 2 = NessusClientData_V2
@@ -66,4 +60,4 @@
66
60
  - Look at moving to nokogiri for xml parsing, current benchmarks so it faster than libxml-ruby; http://nokogiri.org
67
61
 
68
62
  ## 2.0 (12/4/2011)
69
- - Rails FrontEnd to NessusDB
63
+ - Rails FrontEnd to Risu
data/bin/risu CHANGED
@@ -6,7 +6,7 @@ $stdout.sync = true
6
6
  $stderr.sync = true
7
7
 
8
8
  require 'rubygems'
9
- require 'nessusdb'
9
+ require 'risu'
10
10
 
11
- app = NessusDB::CLI::Application.new
11
+ app = Risu::CLI::Application.new
12
12
  app.run
@@ -1,8 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  APP_NAME = "risu"
5
- VERSION = "1.4.3"
5
+ VERSION = "1.4.4"
6
6
  GRAPH_WIDTH = 750
7
7
  EMAIL = "jacob.hammack@hammackj.com"
8
8
  CONFIG_FILE = "./risu.cfg"
@@ -24,15 +24,15 @@ require 'irb'
24
24
  require 'optparse'
25
25
 
26
26
  if ActiveRecord::Base.connected? == true
27
- require 'nessusdb/schema'
27
+ require 'risu/schema'
28
28
  end
29
29
 
30
- require 'nessusdb/listener'
31
- require 'nessusdb/prawn_templater'
32
- require 'nessusdb/nessusdocument'
30
+ require 'risu/listener'
31
+ require 'risu/prawn_templater'
32
+ require 'risu/nessusdocument'
33
33
 
34
- require 'nessusdb/cli'
35
- require 'nessusdb/exceptions'
36
- require 'nessusdb/models'
34
+ require 'risu/cli'
35
+ require 'risu/exceptions'
36
+ require 'risu/models'
37
37
 
38
- include NessusDB::Models
38
+ include Risu::Models
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ module Risu
4
+ module CLI
5
+ end
6
+ end
7
+
8
+ require 'risu/cli/application'
9
+ require 'risu/cli/banner'
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module CLI
5
5
 
6
- # Application class for NessusDB
6
+ # Application class for Risu
7
7
  #
8
8
  # @author Jacob Hammack <jacob.hammack@hammackj.com>
9
9
  class Application
@@ -88,12 +88,12 @@ module NessusDB
88
88
  end
89
89
 
90
90
  ActiveRecord::Base.establish_connection(@database)
91
- require 'nessusdb/schema'
91
+ require 'risu/schema'
92
92
  Schema.migrate(direction)
93
93
 
94
94
  if direction == :up
95
95
  ver = Version.create
96
- ver.version = NessusDB::VERSION
96
+ ver.version = Risu::VERSION
97
97
  ver.save
98
98
  end
99
99
 
@@ -238,11 +238,11 @@ module NessusDB
238
238
  @options[:test_connection] = option
239
239
  end
240
240
 
241
- opt.on('--create-tables','Creates the tables required for NessusDB') do |option|
241
+ opt.on('--create-tables',"Creates the tables required for #{APP_NAME}") do |option|
242
242
  @options[:create_tables] = option
243
243
  end
244
244
 
245
- opt.on('--drop-tables','Deletes the tables and data from NessusDB') do |option|
245
+ opt.on('--drop-tables', "Deletes the tables and data from #{APP_NAME}") do |option|
246
246
  @options[:drop_tables] = option
247
247
  end
248
248
 
@@ -302,8 +302,8 @@ module NessusDB
302
302
 
303
303
  if @options[:console] != nil
304
304
  consolize do
305
- puts NessusDB::CLI::Banner
306
- puts "NessusDB Console v#{VERSION}"
305
+ puts Risu::CLI::Banner
306
+ puts "#{APP_NAME} Console v#{VERSION}"
307
307
  end
308
308
  exit
309
309
  end
@@ -346,11 +346,11 @@ module NessusDB
346
346
  begin
347
347
  parse_file file
348
348
 
349
- rescue NessusDB::Exceptions::InvalidDocument => id
349
+ rescue Risu::Exceptions::InvalidDocument => id
350
350
  puts "[!] #{id.message}"
351
351
  next
352
352
  rescue ActiveRecord::StatementInvalid => si
353
- puts "[!] Please run nessusdb --create-tables, to create the required database schema!"
353
+ puts "[!] Please run #{Risu::APP_NAME} --create-tables, to create the required database schema!"
354
354
  exit
355
355
  rescue => e
356
356
  puts e.inspect
@@ -368,7 +368,7 @@ module NessusDB
368
368
  tstart = Time.new
369
369
 
370
370
  if File.exists?(file) == false
371
- raise NessusDB::Exceptions::InvalidDocument, "[!] Document does not exist - #{file}"
371
+ raise Risu::Exceptions::InvalidDocument, "[!] Document does not exist - #{file}"
372
372
  end
373
373
 
374
374
  doc = NessusDocument.new file
@@ -380,7 +380,7 @@ module NessusDB
380
380
  doc.fix_ips
381
381
 
382
382
  else
383
- raise NessusDB::Exceptions::InvalidDocument, "[!] Invalid Document - #{file}"
383
+ raise Risu::Exceptions::InvalidDocument, "[!] Invalid Document - #{file}"
384
384
  end
385
385
 
386
386
  printf "[*] Finished parsing %s. Parse took %.02f seconds\n", file, Time.now - tstart
@@ -389,7 +389,7 @@ module NessusDB
389
389
  exit(1)
390
390
  rescue Mysql::Error => m
391
391
  if m.errno == 1146
392
- puts "[!] Error: Tables were not created. Please run nessusdb --create-tables"
392
+ puts "[!] Error: Tables were not created. Please run #{Risu::APP_NAME} --create-tables"
393
393
  exit(1)
394
394
  end
395
395
  rescue => e
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+
3
+ #Cool random banner stuff for the cli, based on the metasploit random banner stuff
4
+
5
+ module Risu
6
+ module CLI
7
+ module Banner
8
+ Banners =
9
+ [
10
+ '
11
+ _
12
+ _ __(_)___ _ _
13
+ | \'__| / __| | | |
14
+ | | | \__ \ |_| |
15
+ |_| |_|___/\__,_|
16
+
17
+
18
+ ',
19
+ '
20
+ _
21
+ (_)
22
+ _ __ _ ___ _ _
23
+ | \'__| / __| | | |
24
+ | | | \__ \ |_| |
25
+ |_| |_|___/\__,_|
26
+
27
+
28
+ ',
29
+ '
30
+ _/
31
+ _/ _/_/ _/_/_/ _/ _/
32
+ _/_/ _/ _/_/ _/ _/
33
+ _/ _/ _/_/ _/ _/
34
+ _/ _/ _/_/_/ _/_/_/
35
+
36
+
37
+ ',
38
+ '
39
+ o
40
+ ,_ ,
41
+ / | | / \_| |
42
+ |_/|_/ \/ \_/|_/
43
+
44
+
45
+ ',
46
+ '
47
+ _
48
+ ____(_)__ __ __
49
+ / __/ (_-</ // /
50
+ /_/ /_/___/\_,_/
51
+
52
+
53
+ '
54
+ ]
55
+
56
+ def self.to_s
57
+ Banners[rand(Banners.length)]
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ module Risu
4
+ module Exceptions
5
+ end
6
+ end
7
+
8
+ require 'risu/exceptions/invaliddocument'
@@ -1,7 +1,7 @@
1
1
 
2
2
  # encoding: utf-8
3
3
 
4
- module NessusDB
4
+ module Risu
5
5
  module Exceptions
6
6
  class InvalidDocument < StandardError
7
7
 
@@ -1,8 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
- require "nessusdb"
3
+ require 'risu'
4
4
 
5
- module NessusDB
5
+ module Risu
6
6
 
7
7
  # NessusSaxListener
8
8
  #
@@ -82,12 +82,12 @@ module NessusDB
82
82
  @vals[@tag] = ""
83
83
 
84
84
  if !@valid_elements.include?(element)
85
- puts "New XML element detected: #{element}. Please report this to #{NessusDB::EMAIL}"
85
+ puts "New XML element detected: #{element}. Please report this to #{Risu::EMAIL}"
86
86
  end
87
87
 
88
88
  case element
89
89
  when "Policy"
90
- @policy = NessusDB::Models::Policy.create
90
+ @policy = Risu::Models::Policy.create
91
91
  @policy.save
92
92
  when "preference"
93
93
  @sp = @policy.server_preferences.create
@@ -122,9 +122,9 @@ module NessusDB
122
122
  @vals = Hash.new # have to clear this out or everything has the same references
123
123
  @ri = @rh.items.create
124
124
  if attributes["pluginID"] == "0"
125
- @plugin = NessusDB::Models::Plugin.find_or_create_by_id(1)
125
+ @plugin = Risu::Models::Plugin.find_or_create_by_id(1)
126
126
  else
127
- @plugin = NessusDB::Models::Plugin.find_or_create_by_id(attributes["pluginID"])
127
+ @plugin = Risu::Models::Plugin.find_or_create_by_id(attributes["pluginID"])
128
128
  end
129
129
 
130
130
  @ri.port = attributes["port"]
@@ -0,0 +1,18 @@
1
+ # encoding: utf-8
2
+
3
+ module Risu
4
+ module Models
5
+ end
6
+ end
7
+
8
+ require 'risu/models/host'
9
+ require 'risu/models/familyselection'
10
+ require 'risu/models/item'
11
+ require 'risu/models/individualpluginselection'
12
+ require 'risu/models/plugin'
13
+ require 'risu/models/pluginspreference'
14
+ require 'risu/models/serverpreference'
15
+ require 'risu/models/report'
16
+ require 'risu/models/reference'
17
+ require 'risu/models/policy'
18
+ require 'risu/models/version'
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
  # FamilySelection Model
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
  # Host Model
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
 
6
6
  # IndividualPluginSelection Model
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
 
6
6
  # Item Model
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
 
6
6
  # Plugin Model
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
  # PluginPreference Model
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
 
6
6
  # Policy Model
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
 
6
6
  # Reference Model
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
 
6
6
  # Report Model
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
 
6
6
  # ServerPreference Model
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Models
5
5
 
6
6
  # Version Model for the DB
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
 
5
5
  # A Object to represet the Nessus xml file in memory
6
6
  #
@@ -1,8 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
  module Parsers
5
5
  end
6
6
  end
7
7
 
8
- #require 'nessusdb/parsers/'
8
+ #require 'risu/parsers/'
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
 
5
5
  # Templater class for generating a report from a erb template
6
6
  #
@@ -1,8 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
- module NessusDB
3
+ module Risu
4
4
 
5
- # NessusDB Schema
5
+ # Risu Schema
6
6
  #
7
7
  # @author Jacob Hammack <jacob.hammack@hammackj.com>
8
8
  class Schema < ActiveRecord::Migration
@@ -4,14 +4,14 @@ base = __FILE__
4
4
  $:.unshift(File.join(File.dirname(base), 'lib'))
5
5
 
6
6
  require 'rubygems'
7
- require 'nessusdb'
7
+ require 'risu'
8
8
 
9
9
  Gem::Specification.new do |s|
10
- s.name = "#{NessusDB::APP_NAME}"
11
- s.version = NessusDB::VERSION
12
- s.homepage = "http://www.hammackj.com/"
13
- s.summary = "#{NessusDB::APP_NAME}"
14
- s.description = "#{NessusDB::APP_NAME} is a Nessus .nessus xml parser and report generation tool"
10
+ s.name = "#{Risu::APP_NAME}"
11
+ s.version = Risu::VERSION
12
+ s.homepage = "http://www.hammackj.com/projects/risu"
13
+ s.summary = "#{Risu::APP_NAME}"
14
+ s.description = "#{Risu::APP_NAME} is a Nessus .nessus xml parser and report generation tool"
15
15
  s.license = "BSD"
16
16
 
17
17
  s.author = "Jacob Hammack"
@@ -19,13 +19,13 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.files = Dir['[A-Z]*'] + Dir['lib/**/*'] + ['risu.gemspec']
21
21
  s.bindir = "bin"
22
- s.executables = "#{NessusDB::APP_NAME}"
22
+ s.executables = "#{Risu::APP_NAME}"
23
23
  s.require_paths = ["lib"]
24
24
  s.has_rdoc = 'yard'
25
25
  s.extra_rdoc_files = ["README.markdown", "LICENSE", "NEWS.markdown", "TODO.markdown", "KNOWNISSUES.markdown"]
26
26
 
27
27
  s.required_rubygems_version = ">= 1.6.0"
28
- s.rubyforge_project = "#{NessusDB::APP_NAME}"
28
+ s.rubyforge_project = "#{Risu::APP_NAME}"
29
29
 
30
30
  s.add_development_dependency("rspec", "= 2.5.0")
31
31
  s.add_development_dependency("rcov", ">= 0.9.9")
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: risu
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.4.3
5
+ version: 1.4.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jacob Hammack
@@ -175,48 +175,48 @@ files:
175
175
  - Rakefile
176
176
  - README.markdown
177
177
  - TODO.markdown
178
- - lib/nessusdb/cli/application.rb
179
- - lib/nessusdb/cli/banner.rb
180
- - lib/nessusdb/cli.rb
181
- - lib/nessusdb/exceptions/invaliddocument.rb
182
- - lib/nessusdb/exceptions.rb
183
- - lib/nessusdb/listener.rb
184
- - lib/nessusdb/models/familyselection.rb
185
- - lib/nessusdb/models/host.rb
186
- - lib/nessusdb/models/individualpluginselection.rb
187
- - lib/nessusdb/models/item.rb
188
- - lib/nessusdb/models/plugin.rb
189
- - lib/nessusdb/models/pluginspreference.rb
190
- - lib/nessusdb/models/policy.rb
191
- - lib/nessusdb/models/reference.rb
192
- - lib/nessusdb/models/report.rb
193
- - lib/nessusdb/models/serverpreference.rb
194
- - lib/nessusdb/models/version.rb
195
- - lib/nessusdb/models.rb
196
- - lib/nessusdb/nessusdocument.rb
197
- - lib/nessusdb/parsers.rb
198
- - lib/nessusdb/prawn_templater.rb
199
- - lib/nessusdb/schema.rb
200
- - lib/nessusdb/templates/assets.rb
201
- - lib/nessusdb/templates/cover_sheet.rb
202
- - lib/nessusdb/templates/data/nessuslogo.jpg
203
- - lib/nessusdb/templates/exec_summary.rb
204
- - lib/nessusdb/templates/executive_summary.rb
205
- - lib/nessusdb/templates/finding_statistics.rb
206
- - lib/nessusdb/templates/findings_host.rb
207
- - lib/nessusdb/templates/findings_summary.rb
208
- - lib/nessusdb/templates/findings_summary_with_pluginid.rb
209
- - lib/nessusdb/templates/graphs.rb
210
- - lib/nessusdb/templates/host_summary.rb
211
- - lib/nessusdb/templates/ms_patch_summary.rb
212
- - lib/nessusdb/templates/ms_update_summary.rb
213
- - lib/nessusdb/templates/pci_compliance.rb
214
- - lib/nessusdb/templates/technical_findings.rb
215
- - lib/nessusdb.rb
178
+ - lib/risu/cli/application.rb
179
+ - lib/risu/cli/banner.rb
180
+ - lib/risu/cli.rb
181
+ - lib/risu/exceptions/invaliddocument.rb
182
+ - lib/risu/exceptions.rb
183
+ - lib/risu/listener.rb
184
+ - lib/risu/models/familyselection.rb
185
+ - lib/risu/models/host.rb
186
+ - lib/risu/models/individualpluginselection.rb
187
+ - lib/risu/models/item.rb
188
+ - lib/risu/models/plugin.rb
189
+ - lib/risu/models/pluginspreference.rb
190
+ - lib/risu/models/policy.rb
191
+ - lib/risu/models/reference.rb
192
+ - lib/risu/models/report.rb
193
+ - lib/risu/models/serverpreference.rb
194
+ - lib/risu/models/version.rb
195
+ - lib/risu/models.rb
196
+ - lib/risu/nessusdocument.rb
197
+ - lib/risu/parsers.rb
198
+ - lib/risu/prawn_templater.rb
199
+ - lib/risu/schema.rb
200
+ - lib/risu/templates/assets.rb
201
+ - lib/risu/templates/cover_sheet.rb
202
+ - lib/risu/templates/data/nessuslogo.jpg
203
+ - lib/risu/templates/exec_summary.rb
204
+ - lib/risu/templates/executive_summary.rb
205
+ - lib/risu/templates/finding_statistics.rb
206
+ - lib/risu/templates/findings_host.rb
207
+ - lib/risu/templates/findings_summary.rb
208
+ - lib/risu/templates/findings_summary_with_pluginid.rb
209
+ - lib/risu/templates/graphs.rb
210
+ - lib/risu/templates/host_summary.rb
211
+ - lib/risu/templates/ms_patch_summary.rb
212
+ - lib/risu/templates/ms_update_summary.rb
213
+ - lib/risu/templates/pci_compliance.rb
214
+ - lib/risu/templates/technical_findings.rb
215
+ - lib/risu.rb
216
216
  - risu.gemspec
217
217
  - bin/risu
218
218
  has_rdoc: true
219
- homepage: http://www.hammackj.com/
219
+ homepage: http://www.hammackj.com/projects/risu
220
220
  licenses:
221
221
  - BSD
222
222
  post_install_message:
@@ -1,9 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module NessusDB
4
- module CLI
5
- end
6
- end
7
-
8
- require 'nessusdb/cli/application'
9
- require 'nessusdb/cli/banner'
@@ -1,25 +0,0 @@
1
- # encoding: utf-8
2
-
3
- #Cool random banner stuff for the cli, based on the metasploit random banner stuff
4
-
5
- module NessusDB
6
- module CLI
7
- module Banner
8
- Banners =
9
- [
10
- '
11
- _ _
12
- _ __ ___ ___ ___ _ _ ___ __| | |__
13
- | \'_ \ / _ \/ __/ __| | | / __|/ _` | \'_ \
14
- | | | | __/\__ \__ \ |_| \__ \ (_| | |_) |
15
- |_| |_|\___||___/___/\__,_|___/\__,_|_.__/
16
-
17
- '
18
- ]
19
-
20
- def self.to_s
21
- Banners[rand(Banners.length)]
22
- end
23
- end
24
- end
25
- end
@@ -1,8 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module NessusDB
4
- module Exceptions
5
- end
6
- end
7
-
8
- require 'nessusdb/exceptions/invaliddocument'
@@ -1,18 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module NessusDB
4
- module Models
5
- end
6
- end
7
-
8
- require 'nessusdb/models/host'
9
- require 'nessusdb/models/familyselection'
10
- require 'nessusdb/models/item'
11
- require 'nessusdb/models/individualpluginselection'
12
- require 'nessusdb/models/plugin'
13
- require 'nessusdb/models/pluginspreference'
14
- require 'nessusdb/models/serverpreference'
15
- require 'nessusdb/models/report'
16
- require 'nessusdb/models/reference'
17
- require 'nessusdb/models/policy'
18
- require 'nessusdb/models/version'