risu 1.4.6 → 1.4.7

Sign up to get free protection for your applications and to get access to all the features.
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
-