prenus 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,39 @@
1
+ module Prenus
2
+ module Output
3
+
4
+ class Baseout
5
+
6
+ @events = {} #instance variable of all vulnerability events
7
+ @hosts = {} #instance variable of all the hosts
8
+ @options = {} #instance variable of the options hash, this inclues all the configuration settings @see Htmlout#initialize
9
+ @oFile = nil #the output file
10
+
11
+ #
12
+ # This is the super-class that all output classes should inherent
13
+ # @see Htmlout#initialize
14
+ #
15
+ def initialize(events, hosts, options)
16
+ @events = events
17
+ @hosts = hosts
18
+ @options = options
19
+
20
+ if @options[:type] == "html" #Therefore, the output should be a folder name, not a file
21
+ #Check if the output dir exists
22
+ Dir.mkdir(options[:output]) unless File.exists?(options[:output])
23
+ else
24
+ @oFile = File.new(@options[:output],'w') unless @options[:output].nil?
25
+ @oFile = STDOUT if @oFile.nil?
26
+ end
27
+
28
+ end
29
+
30
+ #
31
+ # All inherented classes should implement a run method
32
+ # @see Htmlout#run
33
+ #
34
+ def run
35
+
36
+ end
37
+ end
38
+
39
+ end end
@@ -0,0 +1,60 @@
1
+ module Prenus
2
+ module Output
3
+
4
+ class Xlsout < Baseout
5
+
6
+ #
7
+ # Initialises the Xlsout class into an object
8
+ #
9
+ # @return [Object]
10
+ # Returns the Xlsout object
11
+ #
12
+ # @input
13
+ # events - the hash object with all the vulnerability events within it - @see Nessusin#import_nessus_files
14
+ # hosts - the hash object with all the hosts within it - @see Nessusin#import_nessus_files
15
+ # options - the hash object with the configuration objections within it. These options include the output folder etc, and are used within many of the methods below
16
+ #
17
+ # @example
18
+ # object = Prenus::Output::Xmlout(events,hosts,options)
19
+ #
20
+ def initialize(events,hosts,options)
21
+ super
22
+ end
23
+
24
+ #
25
+ # Run the Xmlout class - this will generate HTML file called .xls to the target folder
26
+ #
27
+ # @return
28
+ # Returns nothing
29
+ #
30
+ # @example
31
+ # object.run
32
+ #
33
+ def run
34
+ # File.open(@options[:outputdir] + "/out.xls", 'w') do |f|
35
+
36
+ @oFile.syswrite "<table border=1>\n"
37
+ @oFile.syswrite "<tr><th>Nessus Plugin ID</th><th>Severity</th><th>Synopsis</th><th>Description</th><th>Solution</th><th>Hosts</th></tr>\n"
38
+
39
+ @events.each do |k,v|
40
+ @oFile.syswrite "<tr><td>" + k.to_s + "</td><td>" + v[:severity].to_s + "</td><td>" + v[:synopsis] + "</td><td>" + v[:description] + "</td><td>" + v[:solution].to_s + "</td>"
41
+ @oFile.syswrite "<td>"
42
+ impacted_hosts = []
43
+ v[:ports].each {|k,v|
44
+ v[:hosts].each do |h,w|
45
+ impacted_hosts << h
46
+ end
47
+ }
48
+ impacted_hosts.uniq.each do |host|
49
+ @oFile.syswrite @hosts[host][:ip] + "\n"
50
+ end
51
+
52
+ @oFile.syswrite "</td></tr>\n"
53
+ end
54
+
55
+ @oFile.syswrite "</table>\n"
56
+ # end
57
+ end
58
+ end
59
+
60
+ end end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: prenus
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Christian Frichot
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-31 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: ruby-nessus
16
+ requirement: &70165631471960 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70165631471960
25
+ description: Pretty Nessus = Prenus
26
+ email: xntrik@gmail.com
27
+ executables:
28
+ - prenus
29
+ extensions: []
30
+ extra_rdoc_files:
31
+ - LICENSE.txt
32
+ - README.rdoc
33
+ files:
34
+ - lib/css/table.css
35
+ - lib/images/back_disabled.png
36
+ - lib/images/back_enabled.png
37
+ - lib/images/back_enabled_hover.png
38
+ - lib/images/forward_disabled.png
39
+ - lib/images/forward_enabled.png
40
+ - lib/images/forward_enabled_hover.png
41
+ - lib/images/sort_asc.png
42
+ - lib/images/sort_asc_disabled.png
43
+ - lib/images/sort_both.png
44
+ - lib/images/sort_desc.png
45
+ - lib/images/sort_desc_disabled.png
46
+ - lib/input/nessusin.rb
47
+ - lib/input.rb
48
+ - lib/js/highcharts.js
49
+ - lib/js/jquery.dataTables.js
50
+ - lib/js/jquery.min.js
51
+ - lib/output/afterglowout.rb
52
+ - lib/output/circosout.rb
53
+ - lib/output/hostinfoout.rb
54
+ - lib/output/htmlout.rb
55
+ - lib/output/output.rb
56
+ - lib/output/xlsout.rb
57
+ - lib/output.rb
58
+ - LICENSE.txt
59
+ - README.rdoc
60
+ - bin/prenus
61
+ homepage: http://github.com/AsteriskLabs/prenus
62
+ licenses:
63
+ - MIT
64
+ post_install_message:
65
+ rdoc_options: []
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: 1.9.2
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: 1.8.0
80
+ requirements: []
81
+ rubyforge_project:
82
+ rubygems_version: 1.8.10
83
+ signing_key:
84
+ specification_version: 3
85
+ summary: Prenus - The Pretty Nessus Parser
86
+ test_files: []
87
+ has_rdoc: