metasploit_data_models 0.23.2 → 0.23.3.pre.autoload

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/mdm/host.rb +3 -1
  3. data/app/models/metasploit_data_models/automatic_exploitation.rb +11 -0
  4. data/app/models/metasploit_data_models/ip_address/v4/cidr.rb +0 -2
  5. data/app/models/metasploit_data_models/ip_address/v4/range.rb +0 -2
  6. data/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list.rb +0 -2
  7. data/lib/mdm.rb +43 -0
  8. data/lib/mdm/module.rb +9 -0
  9. data/lib/metasploit_data_models.rb +14 -5
  10. data/lib/metasploit_data_models/base64_serializer.rb +74 -78
  11. data/lib/metasploit_data_models/change_required_columns_to_null_false.rb +16 -18
  12. data/lib/metasploit_data_models/engine.rb +23 -18
  13. data/lib/metasploit_data_models/ip_address.rb +4 -0
  14. data/lib/metasploit_data_models/ip_address/cidr.rb +0 -2
  15. data/lib/metasploit_data_models/ip_address/v4.rb +11 -0
  16. data/lib/metasploit_data_models/ip_address/v4/segment.rb +7 -0
  17. data/lib/metasploit_data_models/ip_address/v4/segment/nmap.rb +7 -0
  18. data/lib/metasploit_data_models/match.rb +6 -0
  19. data/lib/metasploit_data_models/match/child.rb +0 -1
  20. data/lib/metasploit_data_models/match/parent.rb +0 -2
  21. data/lib/metasploit_data_models/search.rb +6 -4
  22. data/lib/metasploit_data_models/search/operation.rb +9 -0
  23. data/lib/metasploit_data_models/search/operation/port.rb +9 -0
  24. data/lib/metasploit_data_models/search/operator.rb +8 -0
  25. data/lib/metasploit_data_models/search/operator/port.rb +6 -0
  26. data/lib/metasploit_data_models/search/visitor.rb +9 -6
  27. data/lib/metasploit_data_models/serialized_prefs.rb +7 -9
  28. data/lib/metasploit_data_models/version.rb +3 -1
  29. data/metasploit_data_models.gemspec +1 -1
  30. metadata +193 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4779d55987df4d62d75eaad7b3f5e40b0b880510
4
- data.tar.gz: a87a7b50dae2bc02d2ea544290eeae4c406047fe
3
+ metadata.gz: 6b93ef26f85d7b5c8632e2caeecf3ca5f211ec56
4
+ data.tar.gz: 04711f7ceeed6aeff7c7e4d99e953841c75cbea9
5
5
  SHA512:
6
- metadata.gz: 8be1a0f211354eda1de426d22ba9b1ccb81627ab9f0abde742af2b4ce90defd4632650bf8f237c83495c7db9c5c0c4eec499eabf94c48882dcc03f4a9029252a
7
- data.tar.gz: fc93045d392e8107af1b77619742fd1743f49df7fac46259e48a44e57a5df9d45461f87694b4889b15e73a8c7b38f2509d39dbdf678e875fc4e0e72b02d07047
6
+ metadata.gz: 7f8c7427a222eb51a66c930fc20d27d96b8aed4efafb56e788429e72b3a3a5b2871e73ebcd7083806b858ab32012f75dab794718c589194d6bc1f9ccf2edb437
7
+ data.tar.gz: 9f34b0729ee67078f5a8a1f1ac1355af9ff534fe089bce31520fe7fe684276cfb42dd44151bec64853edc2857a4a23051aec4caf891715dfe08e86bf5e6a1a8a
@@ -1,6 +1,8 @@
1
1
  # A system with an {#address IP address} on the network that has been discovered in some way.
2
2
  class Mdm::Host < ActiveRecord::Base
3
- require 'mdm/host/operating_system_normalization'
3
+ extend ActiveSupport::Autoload
4
+
5
+ autoload :OperatingSystemNormalization
4
6
 
5
7
  include Mdm::Host::OperatingSystemNormalization
6
8
  include Metasploit::Model::Search
@@ -1,4 +1,15 @@
1
1
  module MetasploitDataModels::AutomaticExploitation
2
+ extend ActiveSupport::Autoload
3
+
4
+ autoload :Match
5
+ autoload :MatchResult
6
+ autoload :MatchSet
7
+ autoload :Run
8
+
9
+ #
10
+ # Module Methods
11
+ #
12
+
2
13
  def self.table_name_prefix
3
14
  'automatic_exploitation_'
4
15
  end
@@ -1,5 +1,3 @@
1
- require 'metasploit_data_models/ip_address/cidr'
2
-
3
1
  # An IPv4 CIDR (Classless InterDomain Routing) block composed of a
4
2
  # {MetasploitDataModels::IPAddress::V4::Single IPv4} {MetasploitDataModels::IPAddress::CIDR#address address} and
5
3
  # {MetasploitDataModels::IPAddress::CIDR#prefix_length prefix_length} written in the form `'a.b.c.d/prefix_length'`.
@@ -1,5 +1,3 @@
1
- require 'metasploit_data_models/ip_address/range'
2
-
3
1
  # A range of complete IPv4 addresses, separated by a `-`.
4
2
  class MetasploitDataModels::IPAddress::V4::Range < Metasploit::Model::Base
5
3
  extend MetasploitDataModels::Match::Child
@@ -1,5 +1,3 @@
1
- require 'metasploit_data_models/match/parent'
2
-
3
1
  # A comma separated list of {MetasploitDataModels::IPAddress::V4::Segment::Single segment numbers} and
4
2
  # {MetasploitDataModels::IPAddress::V4::Segment::Nmap::Range range of segment numbers} making up one segment of
5
3
  # {MetasploitDataModels::IPAddress::V4::Nmap}.
data/lib/mdm.rb CHANGED
@@ -1,5 +1,48 @@
1
1
  # Namespace for models
2
2
  module Mdm
3
+ extend ActiveSupport::Autoload
4
+
5
+ autoload :ApiKey
6
+ autoload :Client
7
+ autoload :Cred
8
+ autoload :Event
9
+ autoload :ExploitAttempt
10
+ autoload :ExploitedHost
11
+ autoload :Host
12
+ autoload :HostDetail
13
+ autoload :HostTag
14
+ autoload :Listener
15
+ autoload :Loot
16
+ autoload :Macro
17
+ autoload :ModRef
18
+ autoload :Module
19
+ autoload :NexposeConsole
20
+ autoload :Note
21
+ autoload :Profile
22
+ autoload :Ref
23
+ autoload :Route
24
+ autoload :Service
25
+ autoload :Session
26
+ autoload :SessionEvent
27
+ autoload :Tag
28
+ autoload :Task
29
+ autoload :TaskCred
30
+ autoload :TaskHost
31
+ autoload :TaskService
32
+ autoload :TaskSession
33
+ autoload :User
34
+ autoload :Vuln
35
+ autoload :VulnAttempt
36
+ autoload :VulnDetail
37
+ autoload :VulnRef
38
+ autoload :WebForm
39
+ autoload :WebPage
40
+ autoload :WebSite
41
+ autoload :WebVuln
42
+ autoload :WmapRequest
43
+ autoload :WmapTarget
44
+ autoload :Workspace
45
+
3
46
  # Causes the model_name for all Mdm modules to not include the Mdm:: prefix in their name.
4
47
  #
5
48
  # This has been supported since ActiveSupport 3.2.1. In ActiveSupport 3.1.0, it checked for _railtie. Before that
data/lib/mdm/module.rb CHANGED
@@ -1,4 +1,13 @@
1
1
  # Namespace for all models dealing with module caching.
2
2
  module Mdm::Module
3
+ extend ActiveSupport::Autoload
3
4
 
5
+ autoload :Action
6
+ autoload :Arch
7
+ autoload :Author
8
+ autoload :Detail
9
+ autoload :Mixin
10
+ autoload :Platform
11
+ autoload :Ref
12
+ autoload :Target
4
13
  end
@@ -13,7 +13,6 @@ require 'shellwords'
13
13
  require 'active_record'
14
14
  require 'active_support'
15
15
  require 'active_support/all'
16
- require 'active_support/dependencies'
17
16
  require 'metasploit/concern'
18
17
  require 'metasploit/model'
19
18
  require 'arel-helpers'
@@ -21,13 +20,23 @@ require 'arel-helpers'
21
20
  #
22
21
  # Project
23
22
  #
24
- require 'mdm'
25
- require 'mdm/module'
26
- require 'metasploit_data_models/base64_serializer'
27
- require 'metasploit_data_models/serialized_prefs'
23
+
28
24
  require 'metasploit_data_models/version'
29
25
 
26
+ autoload :Mdm, 'mdm'
27
+
30
28
  module MetasploitDataModels
29
+ extend ActiveSupport::Autoload
30
+
31
+ autoload :AutomaticExploitation
32
+ autoload :Base64Serializer
33
+ autoload :ChangeRequiredColumnsToNullFalse
34
+ autoload :IPAddress
35
+ autoload :Match
36
+ autoload :ModuleRun
37
+ autoload :Search
38
+ autoload :SerializedPrefs
39
+
31
40
  def self.root
32
41
  unless instance_variable_defined? :@root
33
42
  lib_pathname = Pathname.new(__FILE__).dirname
@@ -8,96 +8,92 @@
8
8
  # @example Overriding default to []
9
9
  # serialize :bar, MetasploitDataModels::Base64Serializer.new(:default => [])
10
10
  #
11
- module MetasploitDataModels
12
- class Base64Serializer
13
- #
14
- # CONSTANTS
15
- #
11
+ class MetasploitDataModels::Base64Serializer
12
+ #
13
+ # CONSTANTS
14
+ #
16
15
 
17
- # The default for {#default}
18
- DEFAULT = {}
19
- # Deserializers for {#load}
20
- # 1. Base64 decoding and then unmarshalling the value.
21
- # 2. Parsing the value as YAML.
22
- # 3. The raw value.
23
- LOADERS = [
24
- lambda { |serialized|
25
- marshaled = serialized.unpack('m').first
26
- # Load the unpacked Marshal object first
27
- Marshal.load(marshaled)
28
- },
29
- lambda { |serialized|
30
- # Support legacy YAML encoding for existing data
31
- YAML.load(serialized)
32
- },
33
- lambda { |serialized|
34
- # Fall back to string decoding
35
- serialized
36
- }
37
- ]
16
+ # The default for {#default}
17
+ DEFAULT = {}
18
+ # Deserializers for {#load}
19
+ # 1. Base64 decoding and then unmarshalling the value.
20
+ # 2. Parsing the value as YAML.
21
+ # 3. The raw value.
22
+ LOADERS = [
23
+ lambda { |serialized|
24
+ marshaled = serialized.unpack('m').first
25
+ # Load the unpacked Marshal object first
26
+ Marshal.load(marshaled)
27
+ },
28
+ lambda { |serialized|
29
+ # Support legacy YAML encoding for existing data
30
+ YAML.load(serialized)
31
+ },
32
+ lambda { |serialized|
33
+ # Fall back to string decoding
34
+ serialized
35
+ }
36
+ ]
38
37
 
39
- #
40
- # Methods
41
- #
38
+ #
39
+ # Methods
40
+ #
42
41
 
43
- # Creates a duplicate of default value
44
- #
45
- # @return
46
- def default
47
- @default.dup
48
- end
42
+ # Creates a duplicate of default value
43
+ #
44
+ # @return
45
+ def default
46
+ @default.dup
47
+ end
49
48
 
50
- attr_writer :default
49
+ attr_writer :default
51
50
 
52
- # Serializes the value by marshalling the value and then base64 encodes the marshaled value.
53
- #
54
- # @param value [Object] value to serialize
55
- # @return [String]
56
- def dump(value)
57
- # Always store data back in the Marshal format
58
- marshalled = Marshal.dump(value)
59
- base64_encoded = [ marshalled ].pack('m')
51
+ # Serializes the value by marshalling the value and then base64 encodes the marshaled value.
52
+ #
53
+ # @param value [Object] value to serialize
54
+ # @return [String]
55
+ def dump(value)
56
+ # Always store data back in the Marshal format
57
+ marshalled = Marshal.dump(value)
58
+ base64_encoded = [ marshalled ].pack('m')
60
59
 
61
- base64_encoded
62
- end
60
+ base64_encoded
61
+ end
63
62
 
64
- # @param attributes [Hash] attributes
65
- # @option attributes [Object] :default ({}) Value to use for {#default}.
66
- def initialize(attributes={})
67
- attributes.assert_valid_keys(:default)
63
+ # @param attributes [Hash] attributes
64
+ # @option attributes [Object] :default ({}) Value to use for {#default}.
65
+ def initialize(attributes={})
66
+ attributes.assert_valid_keys(:default)
68
67
 
69
- @default = attributes.fetch(:default, DEFAULT)
70
- end
68
+ @default = attributes.fetch(:default, DEFAULT)
69
+ end
71
70
 
72
- # Deserializes the value by either
73
- # 1. Base64 decoding and then unmarshalling the value.
74
- # 2. Parsing the value as YAML.
75
- # 3. Returns the raw value.
76
- #
77
- # @param value [String] serialized value
78
- # @return [Object]
79
- #
80
- # @see #default
81
- def load(value)
82
- loaded = nil
71
+ # Deserializes the value by either
72
+ # 1. Base64 decoding and then unmarshalling the value.
73
+ # 2. Parsing the value as YAML.
74
+ # 3. Returns the raw value.
75
+ #
76
+ # @param value [String] serialized value
77
+ # @return [Object]
78
+ #
79
+ # @see #default
80
+ def load(value)
81
+ loaded = nil
83
82
 
84
- if value.blank?
85
- loaded = default
86
- else
87
- LOADERS.each do |loader|
88
- begin
89
- loaded = loader.call(value)
90
- rescue
91
- next
92
- else
93
- break
94
- end
83
+ if value.blank?
84
+ loaded = default
85
+ else
86
+ LOADERS.each do |loader|
87
+ begin
88
+ loaded = loader.call(value)
89
+ rescue
90
+ next
91
+ else
92
+ break
95
93
  end
96
94
  end
97
-
98
- loaded
99
95
  end
96
+
97
+ loaded
100
98
  end
101
99
  end
102
-
103
-
@@ -1,23 +1,21 @@
1
- module MetasploitDataModels
2
- # Changes all the COLUMNS in the table with TABLE_NAME that are required from the table's mode, but were previously
3
- # `:null => true`, to `:null => false`.
4
- #
5
- # @abstract Subclass and define COLUMNS as Array<Symbol> and TABLE_NAME as Symbol.
6
- class ChangeRequiredColumnsToNullFalse < ActiveRecord::Migration
7
- # Marks all the COLUMNS as `:null => true`
8
- def down
9
- # Use self.class:: so constants are resolved in subclasses instead of this class.
10
- self.class::COLUMNS.each do |column|
11
- change_column_null(self.class::TABLE_NAME, column, true)
12
- end
1
+ # Changes all the COLUMNS in the table with TABLE_NAME that are required from the table's mode, but were previously
2
+ # `:null => true`, to `:null => false`.
3
+ #
4
+ # @abstract Subclass and define COLUMNS as Array<Symbol> and TABLE_NAME as Symbol.
5
+ class MetasploitDataModels::ChangeRequiredColumnsToNullFalse < ActiveRecord::Migration
6
+ # Marks all the COLUMNS as `:null => true`
7
+ def down
8
+ # Use self.class:: so constants are resolved in subclasses instead of this class.
9
+ self.class::COLUMNS.each do |column|
10
+ change_column_null(self.class::TABLE_NAME, column, true)
13
11
  end
12
+ end
14
13
 
15
- # Marks all the COLUMNS as `:null => false`
16
- def up
17
- # Use self.class:: so constants are resolved in subclasses instead of this class.
18
- self.class::COLUMNS.each do |column|
19
- change_column_null(self.class::TABLE_NAME, column, false)
20
- end
14
+ # Marks all the COLUMNS as `:null => false`
15
+ def up
16
+ # Use self.class:: so constants are resolved in subclasses instead of this class.
17
+ self.class::COLUMNS.each do |column|
18
+ change_column_null(self.class::TABLE_NAME, column, false)
21
19
  end
22
20
  end
23
21
  end
@@ -1,25 +1,30 @@
1
1
  require 'rails'
2
2
 
3
- module MetasploitDataModels
4
- class Engine < Rails::Engine
5
- # @see http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
6
- config.generators do |g|
7
- g.assets false
8
- g.fixture_replacement :factory_girl, :dir => 'spec/factories'
9
- g.helper false
10
- g.test_framework :rspec, :fixture => false
11
- end
3
+ class MetasploitDataModels::Engine < Rails::Engine
4
+ # @see http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
5
+ config.generators do |g|
6
+ g.assets false
7
+ g.fixture_replacement :factory_girl, :dir => 'spec/factories'
8
+ g.helper false
9
+ g.test_framework :rspec, :fixture => false
10
+ end
12
11
 
13
- config.paths.add 'lib', autoload: true
12
+ # Remove ActiveSupport::Dependencies loading paths to save time during constant resolution and to ensure that
13
+ # metasploit_data_models is properly declaring all autoloads and not falling back on ActiveSupport::Dependencies
14
+ config.paths.each_value do |path|
15
+ path.skip_autoload!
16
+ path.skip_autoload_once!
17
+ path.skip_eager_load!
18
+ path.skip_load_path!
19
+ end
14
20
 
15
- initializer 'metasploit_data_models.prepend_factory_path', :after => 'factory_girl.set_factory_paths' do
16
- if defined? FactoryGirl
17
- relative_definition_file_path = config.generators.options[:factory_girl][:dir]
18
- definition_file_path = root.join(relative_definition_file_path)
21
+ initializer 'metasploit_data_models.prepend_factory_path', :after => 'factory_girl.set_factory_paths' do
22
+ if defined? FactoryGirl
23
+ relative_definition_file_path = config.generators.options[:factory_girl][:dir]
24
+ definition_file_path = root.join(relative_definition_file_path)
19
25
 
20
- # unshift so that Pro can modify mdm factories
21
- FactoryGirl.definition_file_paths.unshift definition_file_path
22
- end
26
+ # unshift so that Pro can modify mdm factories
27
+ FactoryGirl.definition_file_paths.unshift definition_file_path
23
28
  end
24
29
  end
25
- end
30
+ end
@@ -1,5 +1,9 @@
1
1
  # Namespace for models for validating various IPv4 formats beyond those supported by the Ruby standard library's
2
2
  # `IPAddr`.
3
3
  module MetasploitDataModels::IPAddress
4
+ extend ActiveSupport::Autoload
4
5
 
6
+ autoload :CIDR
7
+ autoload :Range
8
+ autoload :V4
5
9
  end
@@ -1,5 +1,3 @@
1
- require 'metasploit_data_models/match/child'
2
-
3
1
  # Common behavior for Class-InterDomain Routing (`<address>/<prefix-length>`) notation under
4
2
  # {MetasploitDataModels::IPAddress},
5
3
  module MetasploitDataModels::IPAddress::CIDR
@@ -0,0 +1,11 @@
1
+ # Namespace for IPv4 Address format models.
2
+ module MetasploitDataModels::IPAddress::V4
3
+ extend ActiveSupport::Autoload
4
+
5
+ autoload :CIDR
6
+ autoload :Nmap
7
+ autoload :Range
8
+ autoload :Segment
9
+ autoload :Segmented
10
+ autoload :Single
11
+ end
@@ -0,0 +1,7 @@
1
+ # A segment (or octet) in an IPv4 address format.
2
+ module MetasploitDataModels::IPAddress::V4::Segment
3
+ extend ActiveSupport::Autoload
4
+
5
+ autoload :Nmap
6
+ autoload :Single
7
+ end
@@ -0,0 +1,7 @@
1
+ # A segment in Nmap's IPv4 address format: either a {List comma separated list} or a {Range hyphenated range}.
2
+ module MetasploitDataModels::IPAddress::V4::Segment::Nmap
3
+ extend ActiveSupport::Autoload
4
+
5
+ autoload :List
6
+ autoload :Range
7
+ end
@@ -1,2 +1,8 @@
1
+ # Namespace for {MetasploitDataModels::Match::Parent#match_child dispatching} to
2
+ # {MetasploitDataModels::Match::Child#match children based on if their Regexp matches}.
1
3
  module MetasploitDataModels::Match
4
+ extend ActiveSupport::Autoload
5
+
6
+ autoload :Child
7
+ autoload :Parent
2
8
  end
@@ -1,4 +1,3 @@
1
- require 'metasploit_data_models/match'
2
1
  # Adds a {#match match class method} to the extending class. The extending class must define `MATCH_REGEXP`.
3
2
  #
4
3
  # @example Define `match` class method
@@ -1,5 +1,3 @@
1
- require 'metasploit_data_models/match'
2
-
3
1
  # Uses classes that extend {MetasploitDataModels::Match::Child}
4
2
  #
5
3
  # @example Add match_child to class.
@@ -1,6 +1,8 @@
1
- module MetasploitDataModels
2
- # Namespace that deals with search {Mdm} models.
3
- module Search
1
+ # Namespace that deals with search {Mdm} models.
2
+ module MetasploitDataModels::Search
3
+ extend ActiveSupport::Autoload
4
4
 
5
- end
5
+ autoload :Operation
6
+ autoload :Operator
7
+ autoload :Visitor
6
8
  end
@@ -0,0 +1,9 @@
1
+ # Search operations ({MetasploitDataModels::Search::Operator operator}:operand) on {Mdm} and {MetasploitDataModels}
2
+ # models.
3
+ module MetasploitDataModels::Search::Operation
4
+ extend ActiveSupport::Autoload
5
+
6
+ autoload :IPAddress
7
+ autoload :Port
8
+ autoload :Range
9
+ end
@@ -0,0 +1,9 @@
1
+ # Search operation on IP port formats: either
2
+ # {MetasploitDataModels::Search::Operation::Port::Number an individual port number} or
3
+ # {MetasploitDataModels::Search::Operation::Port::Range a hyphenated range of port numbers}.
4
+ module MetasploitDataModels::Search::Operation::Port
5
+ extend ActiveSupport::Autoload
6
+
7
+ autoload :Number
8
+ autoload :Range
9
+ end
@@ -0,0 +1,8 @@
1
+ # Namespace for search operators for {MetasploitDataModels}.
2
+ module MetasploitDataModels::Search::Operator
3
+ extend ActiveSupport::Autoload
4
+
5
+ autoload :IPAddress
6
+ autoload :Multitext
7
+ autoload :Port
8
+ end
@@ -0,0 +1,6 @@
1
+ # Namespace for search operator for ports.
2
+ module MetasploitDataModels::Search::Operator::Port
3
+ extend ActiveSupport::Autoload
4
+
5
+ autoload :List
6
+ end
@@ -1,8 +1,11 @@
1
- module MetasploitDataModels
2
- module Search
3
- # Namespace for all visitors of `Metasploit::Model::Search::Query` that help search {Mdm} models.
4
- module Visitor
1
+ # Namespace for all visitors of `Metasploit::Model::Search::Query` that help search {Mdm} models.
2
+ module MetasploitDataModels::Search::Visitor
3
+ extend ActiveSupport::Autoload
5
4
 
6
- end
7
- end
5
+ autoload :Attribute
6
+ autoload :Includes
7
+ autoload :Joins
8
+ autoload :Method
9
+ autoload :Relation
10
+ autoload :Where
8
11
  end
@@ -1,9 +1,8 @@
1
- module MetasploitDataModels
2
- module SerializedPrefs
3
- def serialized_prefs_attr_accessor(*args)
4
- args.each do |method_name|
1
+ module MetasploitDataModels::SerializedPrefs
2
+ def serialized_prefs_attr_accessor(*args)
3
+ args.each do |method_name|
5
4
 
6
- method_declarations = <<-RUBY
5
+ method_declarations = <<-RUBY
7
6
  def #{method_name}
8
7
  return if not self.prefs
9
8
  self.prefs[:#{method_name}]
@@ -14,10 +13,9 @@ module MetasploitDataModels
14
13
  temp[:#{method_name}] = value
15
14
  self.prefs = temp
16
15
  end
17
- RUBY
16
+ RUBY
18
17
 
19
- class_eval method_declarations, __FILE__, __LINE__
20
- end
18
+ class_eval method_declarations, __FILE__, __LINE__
21
19
  end
22
20
  end
23
- end
21
+ end
@@ -6,7 +6,9 @@ module MetasploitDataModels
6
6
  # The minor version number, scoped to the {MAJOR} version number.
7
7
  MINOR = 23
8
8
  # The patch number, scoped to the {MAJOR} and {MINOR} version numbers.
9
- PATCH = 2
9
+ PATCH = 3
10
+ # The pre-release version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version numbers.
11
+ PRERELEASE = 'autoload'
10
12
 
11
13
  # The full version string, including the {MAJOR}, {MINOR}, {PATCH}, and optionally, the `PRERELEASE` in the
12
14
  # {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.files = `git ls-files`.split("\n")
25
25
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
26
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
27
- s.require_paths = ['lib']
27
+ s.require_paths = %w{app/models app/validators lib}
28
28
 
29
29
  s.required_ruby_version = '>= 2.1'
30
30
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metasploit_data_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.2
4
+ version: 0.23.3.pre.autoload
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Huckins
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-03-27 00:00:00.000000000 Z
14
+ date: 2015-04-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rake
@@ -424,10 +424,17 @@ files:
424
424
  - lib/metasploit_data_models/ip_address.rb
425
425
  - lib/metasploit_data_models/ip_address/cidr.rb
426
426
  - lib/metasploit_data_models/ip_address/range.rb
427
+ - lib/metasploit_data_models/ip_address/v4.rb
428
+ - lib/metasploit_data_models/ip_address/v4/segment.rb
429
+ - lib/metasploit_data_models/ip_address/v4/segment/nmap.rb
427
430
  - lib/metasploit_data_models/match.rb
428
431
  - lib/metasploit_data_models/match/child.rb
429
432
  - lib/metasploit_data_models/match/parent.rb
430
433
  - lib/metasploit_data_models/search.rb
434
+ - lib/metasploit_data_models/search/operation.rb
435
+ - lib/metasploit_data_models/search/operation/port.rb
436
+ - lib/metasploit_data_models/search/operator.rb
437
+ - lib/metasploit_data_models/search/operator/port.rb
431
438
  - lib/metasploit_data_models/search/visitor.rb
432
439
  - lib/metasploit_data_models/serialized_prefs.rb
433
440
  - lib/metasploit_data_models/version.rb
@@ -619,6 +626,8 @@ metadata: {}
619
626
  post_install_message:
620
627
  rdoc_options: []
621
628
  require_paths:
629
+ - app/models
630
+ - app/validators
622
631
  - lib
623
632
  required_ruby_version: !ruby/object:Gem::Requirement
624
633
  requirements:
@@ -627,14 +636,193 @@ required_ruby_version: !ruby/object:Gem::Requirement
627
636
  version: '2.1'
628
637
  required_rubygems_version: !ruby/object:Gem::Requirement
629
638
  requirements:
630
- - - ">="
639
+ - - ">"
631
640
  - !ruby/object:Gem::Version
632
- version: '0'
641
+ version: 1.3.1
633
642
  requirements: []
634
643
  rubyforge_project:
635
644
  rubygems_version: 2.4.3
636
645
  signing_key:
637
646
  specification_version: 4
638
647
  summary: Database code for MSF and Metasploit Pro
639
- test_files: []
648
+ test_files:
649
+ - spec/app/models/mdm/api_key_spec.rb
650
+ - spec/app/models/mdm/client_spec.rb
651
+ - spec/app/models/mdm/cred_spec.rb
652
+ - spec/app/models/mdm/event_spec.rb
653
+ - spec/app/models/mdm/exploit_attempt_spec.rb
654
+ - spec/app/models/mdm/exploited_host_spec.rb
655
+ - spec/app/models/mdm/host_detail_spec.rb
656
+ - spec/app/models/mdm/host_spec.rb
657
+ - spec/app/models/mdm/host_tag_spec.rb
658
+ - spec/app/models/mdm/listener_spec.rb
659
+ - spec/app/models/mdm/loot_spec.rb
660
+ - spec/app/models/mdm/macro_spec.rb
661
+ - spec/app/models/mdm/mod_ref_spec.rb
662
+ - spec/app/models/mdm/module/action_spec.rb
663
+ - spec/app/models/mdm/module/arch_spec.rb
664
+ - spec/app/models/mdm/module/author_spec.rb
665
+ - spec/app/models/mdm/module/detail_spec.rb
666
+ - spec/app/models/mdm/module/mixin_spec.rb
667
+ - spec/app/models/mdm/module/platform_spec.rb
668
+ - spec/app/models/mdm/module/ref_spec.rb
669
+ - spec/app/models/mdm/module/target_spec.rb
670
+ - spec/app/models/mdm/nexpose_console_spec.rb
671
+ - spec/app/models/mdm/note_spec.rb
672
+ - spec/app/models/mdm/profile_spec.rb
673
+ - spec/app/models/mdm/ref_spec.rb
674
+ - spec/app/models/mdm/route_spec.rb
675
+ - spec/app/models/mdm/service_spec.rb
676
+ - spec/app/models/mdm/session_event_spec.rb
677
+ - spec/app/models/mdm/session_spec.rb
678
+ - spec/app/models/mdm/tag_spec.rb
679
+ - spec/app/models/mdm/task_cred_spec.rb
680
+ - spec/app/models/mdm/task_host_spec.rb
681
+ - spec/app/models/mdm/task_service_spec.rb
682
+ - spec/app/models/mdm/task_session_spec.rb
683
+ - spec/app/models/mdm/task_spec.rb
684
+ - spec/app/models/mdm/user_spec.rb
685
+ - spec/app/models/mdm/vuln_attempt_spec.rb
686
+ - spec/app/models/mdm/vuln_detail_spec.rb
687
+ - spec/app/models/mdm/vuln_ref_spec.rb
688
+ - spec/app/models/mdm/vuln_spec.rb
689
+ - spec/app/models/mdm/web_form_spec.rb
690
+ - spec/app/models/mdm/web_page_spec.rb
691
+ - spec/app/models/mdm/web_site_spec.rb
692
+ - spec/app/models/mdm/web_vuln_spec.rb
693
+ - spec/app/models/mdm/wmap_request_spec.rb
694
+ - spec/app/models/mdm/wmap_target_spec.rb
695
+ - spec/app/models/mdm/workspace_spec.rb
696
+ - spec/app/models/metasploit_data_models/automatic_exploitation/match_result_spec.rb
697
+ - spec/app/models/metasploit_data_models/automatic_exploitation/match_set_spec.rb
698
+ - spec/app/models/metasploit_data_models/automatic_exploitation/match_spec.rb
699
+ - spec/app/models/metasploit_data_models/automatic_exploitation/run_spec.rb
700
+ - spec/app/models/metasploit_data_models/ip_address/v4/cidr_spec.rb
701
+ - spec/app/models/metasploit_data_models/ip_address/v4/nmap_spec.rb
702
+ - spec/app/models/metasploit_data_models/ip_address/v4/range_spec.rb
703
+ - spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list_spec.rb
704
+ - spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range_spec.rb
705
+ - spec/app/models/metasploit_data_models/ip_address/v4/segment/segmented_spec.rb
706
+ - spec/app/models/metasploit_data_models/ip_address/v4/segment/single_spec.rb
707
+ - spec/app/models/metasploit_data_models/ip_address/v4/single_spec.rb
708
+ - spec/app/models/metasploit_data_models/module_run_spec.rb
709
+ - spec/app/models/metasploit_data_models/search/operation/ip_address_spec.rb
710
+ - spec/app/models/metasploit_data_models/search/operation/port/number_spec.rb
711
+ - spec/app/models/metasploit_data_models/search/operation/port/range_spec.rb
712
+ - spec/app/models/metasploit_data_models/search/operation/range_spec.rb
713
+ - spec/app/models/metasploit_data_models/search/operator/ip_address_spec.rb
714
+ - spec/app/models/metasploit_data_models/search/operator/multitext_spec.rb
715
+ - spec/app/models/metasploit_data_models/search/operator/port/list_spec.rb
716
+ - spec/app/models/metasploit_data_models/search/visitor/attribute_spec.rb
717
+ - spec/app/models/metasploit_data_models/search/visitor/includes_spec.rb
718
+ - spec/app/models/metasploit_data_models/search/visitor/joins_spec.rb
719
+ - spec/app/models/metasploit_data_models/search/visitor/method_spec.rb
720
+ - spec/app/models/metasploit_data_models/search/visitor/relation_spec.rb
721
+ - spec/app/models/metasploit_data_models/search/visitor/where_spec.rb
722
+ - spec/app/validators/parameters_validator_spec.rb
723
+ - spec/app/validators/password_is_strong_validator_spec.rb
724
+ - spec/dummy/Rakefile
725
+ - spec/dummy/app/assets/javascripts/application.js
726
+ - spec/dummy/app/assets/stylesheets/application.css
727
+ - spec/dummy/app/controllers/application_controller.rb
728
+ - spec/dummy/app/helpers/application_helper.rb
729
+ - spec/dummy/app/mailers/.gitkeep
730
+ - spec/dummy/app/models/.gitkeep
731
+ - spec/dummy/app/views/layouts/application.html.erb
732
+ - spec/dummy/config.ru
733
+ - spec/dummy/config/application.rb
734
+ - spec/dummy/config/boot.rb
735
+ - spec/dummy/config/database.yml.example
736
+ - spec/dummy/config/database.yml.travis
737
+ - spec/dummy/config/environment.rb
738
+ - spec/dummy/config/environments/development.rb
739
+ - spec/dummy/config/environments/production.rb
740
+ - spec/dummy/config/environments/test.rb
741
+ - spec/dummy/config/initializers/active_record_migrations.rb
742
+ - spec/dummy/config/initializers/backtrace_silencers.rb
743
+ - spec/dummy/config/initializers/inflections.rb
744
+ - spec/dummy/config/initializers/mime_types.rb
745
+ - spec/dummy/config/initializers/secret_token.rb
746
+ - spec/dummy/config/initializers/session_store.rb
747
+ - spec/dummy/config/initializers/wrap_parameters.rb
748
+ - spec/dummy/config/routes.rb
749
+ - spec/dummy/db/structure.sql
750
+ - spec/dummy/lib/assets/.gitkeep
751
+ - spec/dummy/log/.gitkeep
752
+ - spec/dummy/public/404.html
753
+ - spec/dummy/public/422.html
754
+ - spec/dummy/public/500.html
755
+ - spec/dummy/public/favicon.ico
756
+ - spec/dummy/script/rails
757
+ - spec/factories/mdm/addresses.rb
758
+ - spec/factories/mdm/clients.rb
759
+ - spec/factories/mdm/creds.rb
760
+ - spec/factories/mdm/events.rb
761
+ - spec/factories/mdm/exploit_attempts.rb
762
+ - spec/factories/mdm/exploited_hosts.rb
763
+ - spec/factories/mdm/fingerprints/nessus_fingerprints.rb
764
+ - spec/factories/mdm/fingerprints/nexpose_fingerprints.rb
765
+ - spec/factories/mdm/fingerprints/nmap_fingerprints.rb
766
+ - spec/factories/mdm/fingerprints/retina_fingerprints.rb
767
+ - spec/factories/mdm/fingerprints/session_fingerprints.rb
768
+ - spec/factories/mdm/host_details.rb
769
+ - spec/factories/mdm/host_tags.rb
770
+ - spec/factories/mdm/hosts.rb
771
+ - spec/factories/mdm/listeners.rb
772
+ - spec/factories/mdm/loots.rb
773
+ - spec/factories/mdm/module/actions.rb
774
+ - spec/factories/mdm/module/archs.rb
775
+ - spec/factories/mdm/module/authors.rb
776
+ - spec/factories/mdm/module/details.rb
777
+ - spec/factories/mdm/module/mixins.rb
778
+ - spec/factories/mdm/module/platforms.rb
779
+ - spec/factories/mdm/module/refs.rb
780
+ - spec/factories/mdm/module/targets.rb
781
+ - spec/factories/mdm/nexpose_consoles.rb
782
+ - spec/factories/mdm/notes.rb
783
+ - spec/factories/mdm/refs.rb
784
+ - spec/factories/mdm/routes.rb
785
+ - spec/factories/mdm/services.rb
786
+ - spec/factories/mdm/session_events.rb
787
+ - spec/factories/mdm/sessions.rb
788
+ - spec/factories/mdm/tags.rb
789
+ - spec/factories/mdm/task.rb
790
+ - spec/factories/mdm/task_creds.rb
791
+ - spec/factories/mdm/task_hosts.rb
792
+ - spec/factories/mdm/task_services.rb
793
+ - spec/factories/mdm/task_sessions.rb
794
+ - spec/factories/mdm/users.rb
795
+ - spec/factories/mdm/vuln_attempts.rb
796
+ - spec/factories/mdm/vuln_details.rb
797
+ - spec/factories/mdm/vuln_refs.rb
798
+ - spec/factories/mdm/vulns.rb
799
+ - spec/factories/mdm/web_forms.rb
800
+ - spec/factories/mdm/web_pages.rb
801
+ - spec/factories/mdm/web_sites.rb
802
+ - spec/factories/mdm/web_vulns.rb
803
+ - spec/factories/mdm/workspaces.rb
804
+ - spec/factories/metasploit_data_models/automatic_exploitation/match_results.rb
805
+ - spec/factories/metasploit_data_models/automatic_exploitation/match_sets.rb
806
+ - spec/factories/metasploit_data_models/automatic_exploitation/matches.rb
807
+ - spec/factories/metasploit_data_models/automatic_exploitation/runs.rb
808
+ - spec/factories/module_runs.rb
809
+ - spec/lib/base64_serializer_spec.rb
810
+ - spec/lib/metasploit_data_models/ip_address/cidr_spec.rb
811
+ - spec/lib/metasploit_data_models/ip_address/range_spec.rb
812
+ - spec/lib/metasploit_data_models/match/child_spec.rb
813
+ - spec/lib/metasploit_data_models/match/parent_spec.rb
814
+ - spec/lib/metasploit_data_models/version_spec.rb
815
+ - spec/spec_helper.rb
816
+ - spec/support/matchers/match_regex_exactly.rb
817
+ - spec/support/shared/contexts/rex/text.rb
818
+ - spec/support/shared/examples/mdm/module/detail/does_not_support_stance_with_mtype.rb
819
+ - spec/support/shared/examples/mdm/module/detail/supports_stance_with_mtype.rb
820
+ - spec/support/shared/examples/metasploit_data_models/search/operation/ipaddress/match.rb
821
+ - spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_children.rb
822
+ - spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_metasploit_model_search_operation_base.rb
823
+ - spec/support/shared/examples/metasploit_data_models/search/visitor/relation/visit/matching_record.rb
824
+ - spec/support/shared/examples/metasploit_data_models/search/visitor/relation/visit/matching_record/with_metasploit_model_search_opeator_deprecated_platform.rb
825
+ - spec/support/shared/examples/metasploit_data_models/search/visitor/relation/visit/matching_record/with_metasploit_model_search_operator_deprecated_authority.rb
826
+ - spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_equality.rb
827
+ - spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_metasploit_model_search_group_base.rb
640
828
  has_rdoc: