ruby-nessus 0.1.2 → 0.1.3

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.
@@ -25,25 +25,38 @@ module Nessus
25
25
 
26
26
  block.call(self) if block
27
27
  end
28
-
28
+
29
29
  # Return the nessus report title.
30
30
  # @return [String]
31
31
  # The Nessus Report Title
32
32
  # @example
33
33
  # scan.report_name #=> "My Super Cool Nessus Report"
34
34
  def report_name
35
- @report_name ||= @xml.xpath("//NessusClientData//Report//ReportName").inner_text
35
+ @report_name ||= @xml.xpath("//NessusClientData//Report//ReportName").inner_text.split(' - ').last
36
36
  end
37
37
  alias name report_name
38
38
  alias title report_name
39
-
39
+
40
+ # Return the nessus report time.
41
+ # @return [String]
42
+ # The Nessus Report Time
43
+ # @example
44
+ # scan.report_time #=> "09/11/08 02:21:22 AM"
45
+ def report_time
46
+ #09/11/08 02:21:22 AM
47
+ datetime = @xml.xpath("//NessusClientData//Report//ReportName").inner_text.split(' - ').first
48
+ @report_time ||= DateTime.strptime(datetime, fmt='%y/%m/%d %I:%M:%S %p')
49
+ end
50
+ alias time report_time
51
+ alias date report_time
52
+
40
53
  # Return the scan start time.
41
54
  # @return [DateTime]
42
55
  # The Nessus Scan Start Time
43
56
  # @example
44
57
  # scan.start_time #=> 'Fri Nov 11 23:36:54 1985'
45
58
  def start_time
46
- @start_time = @xml.xpath("//NessusClientData//Report//StartTime").inner_text
59
+ @start_time = DateTime.strptime(@xml.xpath("//NessusClientData//Report//StartTime").inner_text, fmt='%a %b %d %H:%M:%S %Y')
47
60
  end
48
61
 
49
62
  # Return the scan stop time.
@@ -52,7 +65,7 @@ module Nessus
52
65
  # @example
53
66
  # scan.stop_time #=> 'Mon Nov 11 23:36:54 1985'
54
67
  def stop_time
55
- @stop_time = @xml.xpath("//NessusClientData//Report//StopTime").inner_text
68
+ @stop_time = DateTime.strptime(@xml.xpath("//NessusClientData//Report//StopTime").inner_text, fmt='%a %b %d %H:%M:%S %Y')
56
69
  end
57
70
 
58
71
  # Return the scan run time.
@@ -61,9 +74,9 @@ module Nessus
61
74
  # @example
62
75
  # scan.runtime #=> '2 hours 5 minutes and 16 seconds'
63
76
  def runtime
64
- h = ("#{Time.parse(stop_time).strftime('%H').to_i - Time.parse(start_time).strftime('%H').to_i}").gsub('-', '')
65
- m = ("#{Time.parse(stop_time).strftime('%M').to_i - Time.parse(start_time).strftime('%M').to_i}").gsub('-', '')
66
- s = ("#{Time.parse(stop_time).strftime('%S').to_i - Time.parse(start_time).strftime('%S').to_i}").gsub('-', '')
77
+ h = ("#{Time.parse(stop_time.to_s).strftime('%H').to_i - Time.parse(start_time.to_s).strftime('%H').to_i}").gsub('-', '')
78
+ m = ("#{Time.parse(stop_time.to_s).strftime('%M').to_i - Time.parse(start_time.to_s).strftime('%M').to_i}").gsub('-', '')
79
+ s = ("#{Time.parse(stop_time.to_s).strftime('%S').to_i - Time.parse(start_time.to_s).strftime('%S').to_i}").gsub('-', '')
67
80
  return "#{h} hours #{m} minutes and #{s} seconds"
68
81
  end
69
82
 
@@ -97,7 +110,7 @@ module Nessus
97
110
 
98
111
  @plugin_ids
99
112
  end
100
-
113
+
101
114
  # Returns and array of the plugin names userd for the passed .nessus scan.
102
115
  # @return [Array]
103
116
  # The Nessus Scan Plugin Names
@@ -145,7 +158,7 @@ module Nessus
145
158
  hosts.size
146
159
  end
147
160
 
148
- # Retunrs an array of all unique ports.
161
+ # Retunrs an array of all unique ports.
149
162
  # @return [Array]
150
163
  # @example
151
164
  # scan.unique_ports #=> 234
@@ -226,7 +239,7 @@ module Nessus
226
239
  raise "Error: #{type} is not an acceptable severity. Possible options include: all, high, medium, low and informational."
227
240
  end
228
241
  end
229
-
242
+
230
243
  # Creates a new Host object to be parser from a passed search param.
231
244
  # @param [String] hostname the hostname to build a Host object for.
232
245
  # @yield [prog] If a block is given, it will be passed the newly
@@ -257,24 +270,18 @@ module Nessus
257
270
  @medium = 0
258
271
  @high = 0
259
272
 
260
- @xml.xpath("//ReportItem//severity").each do |s|
261
- case s.inner_text.to_i
262
- when 0
263
- @open_ports += 1
264
- when 1
265
- @low += 1
266
- when 2
267
- @medium += 1
268
- when 3
269
- @high += 1
270
- end
273
+ @xml.xpath("//ReportHost").each do |s|
274
+ @open_ports += s.at('num_ports').inner_text.to_i
275
+ @low += s.at('num_lo').inner_text.to_i
276
+ @medium += s.at('num_med').inner_text.to_i
277
+ @high += s.at('num_hi').inner_text.to_i
271
278
  end
272
-
273
- @count = { :open_ports => @open_ports,
274
- :low => @low,
275
- :medium => @medium,
276
- :high => @high,
277
- :all => (@low + @medium + @high) }
279
+
280
+ @count = { :open_ports => @open_ports,
281
+ :low => @low,
282
+ :medium => @medium,
283
+ :high => @high,
284
+ :all => (@low + @medium + @high) }
278
285
  end
279
286
 
280
287
  return @count
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-nessus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Willis Webber
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-09 00:00:00 -06:00
12
+ date: 2009-11-10 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -67,7 +67,6 @@ files:
67
67
  - lib/ruby-nessus/host.rb
68
68
  - lib/ruby-nessus/nessus.rb
69
69
  - lib/ruby-nessus/port.rb
70
- - lib/ruby-nessus/scan.rb
71
70
  - lib/ruby-nessus/xml.rb
72
71
  - spec/ruby-nessus_spec.rb
73
72
  - spec/spec.opts
@@ -1,13 +0,0 @@
1
- module Nessus
2
-
3
- class Scan
4
-
5
- #
6
- def initialize
7
-
8
- end
9
-
10
-
11
- end
12
-
13
- end