risu 1.4.4 → 1.4.5
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 +14 -1
- data/README.markdown +23 -41
- data/TODO.markdown +48 -39
- data/lib/risu.rb +4 -9
- data/lib/risu/base.rb +15 -0
- data/lib/risu/base/prawn_templater.rb +37 -0
- data/lib/risu/{schema.rb → base/schema.rb} +34 -15
- data/lib/risu/base/template_base.rb +23 -0
- data/lib/risu/base/template_manager.rb +106 -0
- data/lib/risu/base/templater.rb +37 -0
- data/lib/risu/cli/application.rb +28 -8
- data/lib/risu/models.rb +1 -2
- data/lib/risu/models/host.rb +147 -23
- data/lib/risu/models/item.rb +131 -43
- data/lib/risu/models/plugin.rb +1 -1
- data/lib/risu/models/report.rb +11 -1
- data/lib/risu/models/serverpreference.rb +0 -2
- data/lib/risu/models/servicedescription.rb +10 -0
- data/lib/risu/parsers.rb +2 -3
- data/lib/risu/parsers/nessus/nessus_document.rb +69 -0
- data/lib/risu/parsers/nessus/nessus_sax_listener.rb +278 -0
- data/lib/risu/templates/assets.rb +45 -18
- data/lib/risu/templates/cover_sheet.rb +70 -42
- data/lib/risu/templates/exec_summary.rb +64 -45
- data/lib/risu/templates/executive_summary.rb +185 -161
- data/lib/risu/templates/finding_statistics.rb +44 -17
- data/lib/risu/templates/findings_host.rb +70 -46
- data/lib/risu/templates/findings_summary.rb +78 -54
- data/lib/risu/templates/findings_summary_with_pluginid.rb +80 -54
- data/lib/risu/templates/graphs.rb +46 -19
- data/lib/risu/templates/host_summary.rb +62 -39
- data/lib/risu/templates/ms_patch_summary.rb +59 -35
- data/lib/risu/templates/ms_update_summary.rb +59 -35
- data/lib/risu/templates/pci_compliance.rb +88 -64
- data/lib/risu/templates/technical_findings.rb +132 -106
- data/lib/risu/templates/template.rb +24 -0
- metadata +12 -6
- data/lib/risu/listener.rb +0 -274
- data/lib/risu/nessusdocument.rb +0 -66
- data/lib/risu/prawn_templater.rb +0 -38
data/lib/risu/nessusdocument.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Risu
|
4
|
-
|
5
|
-
# A Object to represet the Nessus xml file in memory
|
6
|
-
#
|
7
|
-
# @author Jacob Hammack <jacob.hammack@hammackj.com>
|
8
|
-
class NessusDocument
|
9
|
-
|
10
|
-
# Creates a instance of the NessusDocument class
|
11
|
-
#
|
12
|
-
def initialize document
|
13
|
-
@document = document
|
14
|
-
end
|
15
|
-
|
16
|
-
# Checks the validness of a NessusDocument
|
17
|
-
#
|
18
|
-
# @return [Boolean] True if valid, False if invalid
|
19
|
-
def valid?
|
20
|
-
if File.exist?(@document)
|
21
|
-
@parser = LibXML::XML::Parser.file @document
|
22
|
-
doc = @parser.parse
|
23
|
-
|
24
|
-
if doc.root.name == nil
|
25
|
-
return false
|
26
|
-
end
|
27
|
-
|
28
|
-
if doc.root.name == "NessusClientData_v2"
|
29
|
-
return true
|
30
|
-
elsif doc.root.name == "NessusClientData"
|
31
|
-
return false
|
32
|
-
else
|
33
|
-
return false
|
34
|
-
end
|
35
|
-
else
|
36
|
-
return false
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# Invokes the SAX parser on the XML document
|
41
|
-
#
|
42
|
-
def parse
|
43
|
-
@parser = LibXML::XML::SaxParser.file @document
|
44
|
-
@parser.callbacks = NessusSaxListener.new
|
45
|
-
@parser.parse
|
46
|
-
end
|
47
|
-
|
48
|
-
# Fixes the ip field if nil and replaces it with the name if its an ip
|
49
|
-
#
|
50
|
-
def fix_ips
|
51
|
-
@hosts = Host.all
|
52
|
-
|
53
|
-
@hosts.each do |host|
|
54
|
-
if host.ip == nil
|
55
|
-
begin
|
56
|
-
ip = IPAddr.new host.name
|
57
|
-
host.ip = ip.to_string
|
58
|
-
host.save
|
59
|
-
rescue ArgumentError => ae
|
60
|
-
next
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
data/lib/risu/prawn_templater.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Risu
|
4
|
-
|
5
|
-
# Templater class for generating a report from a erb template
|
6
|
-
#
|
7
|
-
# @author Jacob Hammack
|
8
|
-
class PrawnTemplater
|
9
|
-
attr_accessor :template, :template_source, :findings, :output_file
|
10
|
-
|
11
|
-
# Setups of the Templater class initalizing all of the variables
|
12
|
-
#
|
13
|
-
# @return [PrawnTemplater] New Instance
|
14
|
-
def initialize(template, findings, output)
|
15
|
-
@template = template
|
16
|
-
@findings = findings
|
17
|
-
@output_file = output
|
18
|
-
|
19
|
-
@template_source = File.new(@template).read
|
20
|
-
end
|
21
|
-
|
22
|
-
# Generates a report based on the erb template
|
23
|
-
#
|
24
|
-
# @return [String] html output of the erb template
|
25
|
-
def generate
|
26
|
-
begin
|
27
|
-
source = @template_source
|
28
|
-
template = @template
|
29
|
-
Prawn::Document.generate(@output_file, :margin => [75, 50, 75, 50]) do
|
30
|
-
font_size 12
|
31
|
-
eval source
|
32
|
-
end
|
33
|
-
rescue => e
|
34
|
-
puts "Error: #{e.message} \n #{e.backtrace.join("\n\t")}\n"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|