risu 1.4.6 → 1.4.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.
data/NEWS.markdown CHANGED
@@ -1,6 +1,11 @@
1
1
  # News
2
2
 
3
- #1.4.6 (July, 2011)
3
+ #1.4.7 (August 13, 2011)
4
+ - Fixed issue #39 Ruby 1.8.7 Syntax error reported by mlpotgieter
5
+ - Ruby 1.8.7 will no longer be supported in v1.5, please upgrade your ruby installs.
6
+ -
7
+
8
+ #1.4.6 (July 12, 2011)
4
9
  - Added pcidss:dns_zone_transfer to the Nessus parser
5
10
  - Added pcidss:obsolete_operating_system to the Nessus parser
6
11
  - Removed warnings about several Microsoft patch tags, not sure what to do with them at the moment.
data/TODO.markdown CHANGED
@@ -2,10 +2,18 @@
2
2
 
3
3
  **Release dates are estimates, and features can be changed at any time.**
4
4
 
5
- ## 1.4.6
5
+ ## 1.4.7
6
+ - Make sure all classification headers are upcase
7
+ - Ensure font sizes are standard in the templates
8
+ - The font in tech findings could be 1 size smaller
9
+ - Add a filtering system for lowering the rating of plugins based on config
10
+ - Compact the data in tech findings to be more printer friendly
6
11
 
12
+ - pcidss:directory_browsing
13
+ - pcidss:known_credentials
14
+ - pcidss:compromised_host:worm
7
15
 
8
- ## 1.5 (7/4/2011)
16
+ ## 1.5 (8/4/2011)
9
17
  - Rework the blacklisting of plugins/hosts add to the config file
10
18
  - Complete comments for all existing code
11
19
  - Create rSpec tests for everything (95%+ code coverage goal)
@@ -35,7 +43,7 @@
35
43
  - pci compliance
36
44
  - tech findings
37
45
 
38
- ##1.5.1 (8/4/2011) - Template work
46
+ ##1.5.1 (10/4/2011) - Template work
39
47
  - Provide more templates
40
48
  - Virtual Machine Summary
41
49
  - Fix list Report?
@@ -45,11 +53,11 @@
45
53
  - Add template validation and more error checking
46
54
  - Colorize the reports with better style
47
55
 
48
- ##1.5.2 (9/4/2011) - Parser work
56
+ ##1.5.2 (11/4/2011) - Parser work
49
57
  - Add Schema checks to make sure the schema is compatible with the version of risu
50
58
  - Create a Nessus document generator, for testing the parser
51
59
 
52
- #1.5.3 (10/4/2011) - Template Work
60
+ #1.5.3 (12/4/2011) - Template Work
53
61
  - Implement different renderers
54
62
  - pdf
55
63
  - cvs
@@ -58,7 +66,7 @@
58
66
  - Abstract the api for prawn to support different renders
59
67
  - DSL for report creation to abstract the reports to have different output types
60
68
 
61
- ## 1.6 (11/4/2011)
69
+ ## 1.6 (01/4/2012)
62
70
  - Remove rmagick (GRRRR!)
63
71
  - Move to ruby 1.9.2 only support
64
72
  - Add Parser for Nessus NBE Format
data/lib/risu.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Risu
2
2
  APP_NAME = "risu"
3
- VERSION = "1.4.6"
3
+ VERSION = "1.4.7"
4
4
  GRAPH_WIDTH = 750
5
5
  EMAIL = "jacob.hammack@hammackj.com"
6
6
  CONFIG_FILE = "./risu.cfg"
@@ -98,7 +98,7 @@ module Risu
98
98
  puts "Available Templates"
99
99
  @registered_templates.each do |x|
100
100
  p = x.new
101
- puts "\t#{p.template_info[:name]} - #{p.template_info[:description]}\n",
101
+ puts "\t#{p.template_info[:name]} - #{p.template_info[:description]}\n"
102
102
  end
103
103
  end
104
104
  end
@@ -350,15 +350,15 @@ module Risu
350
350
  w7 = Host.os_windows_7.all.count
351
351
  other = (Host.os_windows.os_windows_other).all.count
352
352
 
353
- g.data("NT", nt) unless nt == 0
354
- g.data("2000", w2k) unless w2k == 0
355
- g.data("XP", xp) unless xp == 0
356
- g.data("Server 2003", w2k3) unless w2k3 == 0
357
- g.data("Vista", vista) unless vista == 0
358
- g.data("Server 2008", w2k8) unless w2k8 == 0
359
- g.data("7", w7) unless w7 == 0
360
- g.data("Other Windows", other) unless other == 0
361
-
353
+ g.data("NT", nt) if nt >= 1
354
+ g.data("2000", w2k) if w2k >= 1
355
+ g.data("XP", xp) if xp >= 1
356
+ g.data("Server 2003", w2k3) if w2k3 >= 1
357
+ g.data("Vista", vista) if vista >= 1
358
+ g.data("Server 2008", w2k8) if w2k8 >= 1
359
+ g.data("7", w7) if w7 >= 1
360
+ g.data("Other Windows", other) if other >= 1
361
+
362
362
  StringIO.new(g.to_blob)
363
363
  end
364
364
 
@@ -381,19 +381,20 @@ module Risu
381
381
  xp_percent = (xp.to_f / windows_os_count.to_f) * 100
382
382
  w2k3_percent = (w2k3.to_f / windows_os_count.to_f) * 100
383
383
  vista_percent = (vista.to_f / windows_os_count.to_f) * 100
384
+
384
385
  w2k8_percent = (w2k8.to_f / windows_os_count.to_f) * 100
385
386
  w7_percent = (w7.to_f / windows_os_count.to_f) * 100
386
387
 
387
388
  text = "This graph shows the percentage of the different Microsoft Windows based operating systems " +
388
389
  "found on the #{Report.title} network.\n\n"
389
390
 
390
- text << "#{nt_percent.round.to_i}% of the network is Windows NT. " if nt > 0
391
- text << "#{w2k_percent.round.to_i}% of the network is Windows 2000. " if w2k > 0
392
- text << "#{xp_percent.round.to_i}% of the network is Windows XP. " if xp > 0
393
- text << "#{w2k3_percent.round.to_i}% of the network is Windows Server 2003. " if w2k3 > 0
394
- text << "#{vista_percent.round.to_i}% of the network is Windows Vista. " if vista > 0
395
- text << "#{w2k8_percent.round.to_i}% of the network is Windows Server 2008. " if w2k8 > 0
396
- text << "#{w7_percent.round.to_i}% of the network is Windows 7. " if w7 > 0
391
+ text << "#{nt_percent.round.to_i}% of the network is Windows NT. " if nt_percent >= 1
392
+ text << "#{w2k_percent.round.to_i}% of the network is Windows 2000. " if w2k_percent >= 1
393
+ text << "#{xp_percent.round.to_i}% of the network is Windows XP. " if xp_percent >= 1
394
+ text << "#{w2k3_percent.round.to_i}% of the network is Windows Server 2003. " if w2k3_percent >= 1
395
+ text << "#{vista_percent.round.to_i}% of the network is Windows Vista. " if vista_percent >= 1
396
+ text << "#{w2k8_percent.round.to_i}% of the network is Windows Server 2008. " if w2k8_percent >= 1
397
+ text << "#{w7_percent.round.to_i}% of the network is Windows 7. " if w7_percent >= 1
397
398
 
398
399
  text << "\n\n" << unsupported_os_windows if nt > 0 or w2k > 0
399
400
 
@@ -405,14 +406,16 @@ module Risu
405
406
  def unsupported_os_text
406
407
  aix_text = unsupported_os_aix
407
408
  win_text = unsupported_os_windows
409
+ freebsd_text = unsupported_os_freebsd
408
410
 
409
- unsupported_os_text = "Several unsupported operating systems were also discovered on the network. " +
411
+ unsupported_os_text = "Several unsupported operating systems were discovered on the network. " +
410
412
  "These operating systems are no longer updated by the specific vendor. These operating systems should be " +
411
413
  "updated and replaced as soon as possible.\n\n"
412
414
 
413
415
  unsupported_os_text << "#{win_text}" if win_text != ""
414
416
  unsupported_os_text << "#{aix_text}" if aix_text != ""
415
-
417
+ unsupported_os_text << "#{freebsd_text}" if freebsd_text != ""
418
+
416
419
  return unsupported_os_text
417
420
  end
418
421
 
@@ -446,7 +449,20 @@ module Risu
446
449
 
447
450
  return text
448
451
  end
452
+
453
+ #
454
+ #
455
+ def unsupported_os_freebsd
456
+ text = ""
457
+ freebsd = Host.os_freebsd.where("OS LIKE 'FreeBSD 5.%'")
458
+
459
+ text = "FreeBSD 5 support ended on 2008-05-31. Upgrade to FreeBSD 8.2 or 7.4. For more information, " +
460
+ "see : http://www.freebsd.org/security/\n\n" if freebsd.count >= 1
461
+
462
+ return text
463
+ end
449
464
 
465
+ #turn the os counts into blocks
450
466
  def other_os_graph_text
451
467
  text = "This graph shows the percentage of the different Non-Windows based operating systems " +
452
468
  "found on the #{Report.title} network.\n\n"
@@ -465,13 +481,20 @@ module Risu
465
481
 
466
482
  linux_percent = (linux.to_f / other_os_count.to_f) * 100
467
483
  aix_percent = (aix.to_f / other_os_count.to_f) * 100
484
+ freebsd_percent = (freebsd.to_f / other_os_count.to_f) * 100
485
+ vmware_percent = (esx.to_f / other_os_count.to_f) * 100
468
486
 
469
487
  #todo add other os's here
470
488
 
471
489
 
472
- text << "#{linux_percent.to_i}% of the network is running Linux based operating systems. " if linux > 0
473
- text << "#{aix_percent.to_i}% of the network is running AIX based operating systems. " if aix > 0
490
+ text << "#{linux_percent.to_i}% of the network is running an Linux based operating system. " if linux_percent >= 1
491
+ text << "#{aix_percent.to_i}% of the network is running an AIX based operating system. " if aix_percent >= 1
492
+ text << "#{freebsd_percent.to_i}% of the network is running an FreeBSD based operating system. " if freebsd_percent >= 1
493
+ text << "#{vmware_percent.to_i}% of the network is running an VMware based operating system. " if vmware_percent >= 1
494
+
474
495
  text << "\n\n"<< unsupported_os_aix if aix > 0
496
+ text << "\n\n" << unsupported_os_freebsd if freebsd > 0
497
+
475
498
 
476
499
  return text
477
500
  end
@@ -164,7 +164,7 @@ module Risu
164
164
  def risks_by_service_graph_text
165
165
  "This graph is a representation of the findings found by service. This graph can help " +
166
166
  "understand what services are running on the network and if they are vulnerable, where " +
167
- "the risks are and how they should be protected."
167
+ "the risks are and how they should be protected.\n\n"
168
168
 
169
169
  end
170
170
 
@@ -17,7 +17,7 @@ module Risu
17
17
  #
18
18
  #
19
19
  def render(output)
20
- output.text Report.classification, :align => :center
20
+ output.text Report.classification.upcase, :align => :center
21
21
  output.text "\n"
22
22
 
23
23
  output.font_size(22) { output.text Report.title, :align => :center }
metadata CHANGED
@@ -1,174 +1,171 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: risu
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.7
4
5
  prerelease:
5
- version: 1.4.6
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Jacob Hammack
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-07-12 00:00:00 -05:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2011-08-13 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: rspec
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70222431373580 !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - "="
23
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - =
20
+ - !ruby/object:Gem::Version
24
21
  version: 2.5.0
25
22
  type: :development
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: rcov
29
23
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70222431373580
25
+ - !ruby/object:Gem::Dependency
26
+ name: rcov
27
+ requirement: &70222431373000 !ruby/object:Gem::Requirement
31
28
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
35
32
  version: 0.9.9
36
33
  type: :development
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: yard
40
34
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70222431373000
36
+ - !ruby/object:Gem::Dependency
37
+ name: yard
38
+ requirement: &70222431372420 !ruby/object:Gem::Requirement
42
39
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
46
43
  version: 0.6.4
47
44
  type: :development
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: machinist
51
45
  prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70222431372420
47
+ - !ruby/object:Gem::Dependency
48
+ name: machinist
49
+ requirement: &70222431371900 !ruby/object:Gem::Requirement
53
50
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
57
54
  version: 1.0.6
58
55
  type: :development
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: sham
62
56
  prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *70222431371900
58
+ - !ruby/object:Gem::Dependency
59
+ name: sham
60
+ requirement: &70222431371240 !ruby/object:Gem::Requirement
64
61
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
68
65
  version: 0.4.0
69
66
  type: :development
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: faker
73
67
  prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *70222431371240
69
+ - !ruby/object:Gem::Dependency
70
+ name: faker
71
+ requirement: &70222431370740 !ruby/object:Gem::Requirement
75
72
  none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
79
76
  version: 0.9.5
80
77
  type: :development
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: rails
84
78
  prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *70222431370740
80
+ - !ruby/object:Gem::Dependency
81
+ name: rails
82
+ requirement: &70222431370160 !ruby/object:Gem::Requirement
86
83
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
90
87
  version: 3.0.7
91
88
  type: :runtime
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: libxml-ruby
95
89
  prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *70222431370160
91
+ - !ruby/object:Gem::Dependency
92
+ name: libxml-ruby
93
+ requirement: &70222431369480 !ruby/object:Gem::Requirement
97
94
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
101
98
  version: 1.1.4
102
99
  type: :runtime
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: prawn
106
100
  prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *70222431369480
102
+ - !ruby/object:Gem::Dependency
103
+ name: prawn
104
+ requirement: &70222431369020 !ruby/object:Gem::Requirement
108
105
  none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
112
109
  version: 0.11.1
113
110
  type: :runtime
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: gruff
117
111
  prerelease: false
118
- requirement: &id010 !ruby/object:Gem::Requirement
112
+ version_requirements: *70222431369020
113
+ - !ruby/object:Gem::Dependency
114
+ name: gruff
115
+ requirement: &70222431368460 !ruby/object:Gem::Requirement
119
116
  none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
123
120
  version: 0.3.6
124
121
  type: :runtime
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
127
- name: mysql
128
122
  prerelease: false
129
- requirement: &id011 !ruby/object:Gem::Requirement
123
+ version_requirements: *70222431368460
124
+ - !ruby/object:Gem::Dependency
125
+ name: mysql
126
+ requirement: &70222431367900 !ruby/object:Gem::Requirement
130
127
  none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
134
131
  version: 2.8.1
135
132
  type: :runtime
136
- version_requirements: *id011
137
- - !ruby/object:Gem::Dependency
138
- name: rmagick
139
133
  prerelease: false
140
- requirement: &id012 !ruby/object:Gem::Requirement
134
+ version_requirements: *70222431367900
135
+ - !ruby/object:Gem::Dependency
136
+ name: rmagick
137
+ requirement: &70222431367320 !ruby/object:Gem::Requirement
141
138
  none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
145
142
  version: 2.13.1
146
143
  type: :runtime
147
- version_requirements: *id012
148
- - !ruby/object:Gem::Dependency
149
- name: sqlite3
150
144
  prerelease: false
151
- requirement: &id013 !ruby/object:Gem::Requirement
145
+ version_requirements: *70222431367320
146
+ - !ruby/object:Gem::Dependency
147
+ name: sqlite3
148
+ requirement: &70222431366740 !ruby/object:Gem::Requirement
152
149
  none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
156
153
  version: 1.3.3
157
154
  type: :runtime
158
- version_requirements: *id013
155
+ prerelease: false
156
+ version_requirements: *70222431366740
159
157
  description: risu is a Nessus .nessus xml parser and report generation tool
160
158
  email: jacob.hammack@hammackj.com
161
- executables:
159
+ executables:
162
160
  - risu
163
161
  extensions: []
164
-
165
- extra_rdoc_files:
162
+ extra_rdoc_files:
166
163
  - README.markdown
167
164
  - LICENSE
168
165
  - NEWS.markdown
169
166
  - TODO.markdown
170
167
  - KNOWNISSUES.markdown
171
- files:
168
+ files:
172
169
  - KNOWNISSUES.markdown
173
170
  - LICENSE
174
171
  - NEWS.markdown
@@ -221,33 +218,29 @@ files:
221
218
  - lib/risu.rb
222
219
  - risu.gemspec
223
220
  - bin/risu
224
- has_rdoc: true
225
221
  homepage: http://www.hammackj.com/projects/risu
226
- licenses:
222
+ licenses:
227
223
  - BSD
228
224
  post_install_message:
229
225
  rdoc_options: []
230
-
231
- require_paths:
226
+ require_paths:
232
227
  - lib
233
- required_ruby_version: !ruby/object:Gem::Requirement
228
+ required_ruby_version: !ruby/object:Gem::Requirement
234
229
  none: false
235
- requirements:
236
- - - ">="
237
- - !ruby/object:Gem::Version
238
- version: "0"
239
- required_rubygems_version: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ! '>='
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ required_rubygems_version: !ruby/object:Gem::Requirement
240
235
  none: false
241
- requirements:
242
- - - ">="
243
- - !ruby/object:Gem::Version
236
+ requirements:
237
+ - - ! '>='
238
+ - !ruby/object:Gem::Version
244
239
  version: 1.6.0
245
240
  requirements: []
246
-
247
241
  rubyforge_project: risu
248
- rubygems_version: 1.6.2
242
+ rubygems_version: 1.8.6
249
243
  signing_key:
250
244
  specification_version: 3
251
245
  summary: risu
252
246
  test_files: []
253
-