metasploit_data_models 0.23.2 → 0.23.3.pre.autoload

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.
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: