metasploit_data_models 6.0.5 → 6.0.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0f6a352c3f586ad9ebcd620dcf0f581006b2ea32e63588d3f17bd3933009c76
4
- data.tar.gz: 350592d2f75705120a89a8893d02d8414c78704ccdf284f80ca563931659a920
3
+ metadata.gz: 8729f3b36a9dba01a242ef1771a411729d487ea4a46cdef91738089c9d6844dc
4
+ data.tar.gz: 7cf123db2f63c885f9b6ba349310a93f14ce594929975df5d83b5dc0376757b3
5
5
  SHA512:
6
- metadata.gz: 2ea341d26e26025d795a1cad1856c965fe2cec748245da1cab188f91152a7f1c2445ab5111807f6c62a3b58070783228027778592ea0fbc59db26d0b2aa633df
7
- data.tar.gz: 68394ec5e5127a4f5ef1e3c395e80c732a8e117cd4b488a5d3e98fa38f53c6a8f7f215a22857abfdb273ba2e3b2f51b5f378d8ca24c5b52b99a8b63d5e0abeb7
6
+ metadata.gz: 27a0720202b2b0b528ad7018fedbe095432f36be5fc2a3c8f6adc3f7aead9465930fdf0a0a69d373bdf83070a824a8e10b2ce0ce812f7e3f72c801920fe14b76
7
+ data.tar.gz: 6c8e79021ddb0d9b9cefbd1944f2b6d1f92c2dd51866373975996a7ea4c18c058e0acfc7b4c8b6283425def448a75956bced3fa9343b4716d5c333f44da6a3e8
checksums.yaml.gz.sig CHANGED
Binary file
@@ -73,9 +73,9 @@ class Mdm::Event < ApplicationRecord
73
73
  #
74
74
  # @return [Hash]
75
75
  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
76
- serialize :info, coder: MetasploitDataModels::Base64Serializer.new
76
+ serialize :info, coder: MetasploitDataModels::Base64Serializer.new(coerce: true)
77
77
  else
78
- serialize :info, MetasploitDataModels::Base64Serializer.new
78
+ serialize :info, MetasploitDataModels::Base64Serializer.new(coerce: true)
79
79
  end
80
80
 
81
81
  #
@@ -70,9 +70,9 @@ class Mdm::Listener < ApplicationRecord
70
70
  #
71
71
  # @return [Hash]
72
72
  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
73
- serialize :options, coder: MetasploitDataModels::Base64Serializer.new
73
+ serialize :options, coder: MetasploitDataModels::Base64Serializer.new(coerce: true)
74
74
  else
75
- serialize :options, MetasploitDataModels::Base64Serializer.new
75
+ serialize :options, MetasploitDataModels::Base64Serializer.new(coerce: true)
76
76
  end
77
77
 
78
78
  #
@@ -173,9 +173,9 @@ class Mdm::Session < ApplicationRecord
173
173
  #
174
174
 
175
175
  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
176
- serialize :datastore, coder: ::MetasploitDataModels::Base64Serializer.new
176
+ serialize :datastore, coder: ::MetasploitDataModels::Base64Serializer.new(coerce: true)
177
177
  else
178
- serialize :datastore, ::MetasploitDataModels::Base64Serializer.new
178
+ serialize :datastore, ::MetasploitDataModels::Base64Serializer.new(coerce: true)
179
179
  end
180
180
 
181
181
  # Returns whether the session can be upgraded to a meterpreter session from a shell session on Windows.
@@ -131,27 +131,27 @@ class Mdm::Task < ApplicationRecord
131
131
  #
132
132
  # @return [Hash]
133
133
  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
134
- serialize :options, coder: MetasploitDataModels::Base64Serializer.new
134
+ serialize :options, coder: MetasploitDataModels::Base64Serializer.new(coerce: true)
135
135
  else
136
- serialize :options, MetasploitDataModels::Base64Serializer.new
136
+ serialize :options, MetasploitDataModels::Base64Serializer.new(coerce: true)
137
137
  end
138
138
 
139
139
  # Result of task running.
140
140
  #
141
141
  # @return [Hash]
142
142
  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
143
- serialize :result, coder: MetasploitDataModels::Base64Serializer.new
143
+ serialize :result, coder: MetasploitDataModels::Base64Serializer.new(coerce: true)
144
144
  else
145
- serialize :result, MetasploitDataModels::Base64Serializer.new
145
+ serialize :result, MetasploitDataModels::Base64Serializer.new(coerce: true)
146
146
  end
147
147
 
148
148
  # Settings used to configure this task outside of the {#options module options}.
149
149
  #
150
150
  # @return [Hash]
151
151
  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
152
- serialize :settings, coder: MetasploitDataModels::Base64Serializer.new
152
+ serialize :settings, coder: MetasploitDataModels::Base64Serializer.new(coerce: true)
153
153
  else
154
- serialize :settings, MetasploitDataModels::Base64Serializer.new
154
+ serialize :settings, MetasploitDataModels::Base64Serializer.new(coerce: true)
155
155
  end
156
156
 
157
157
  #
@@ -142,9 +142,9 @@ class Mdm::WebVuln < ApplicationRecord
142
142
  #
143
143
  # @return [Array<Array(String, String)>] Array of parameter key value pairs
144
144
  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
145
- serialize :params, coder: MetasploitDataModels::Base64Serializer.new(:default => DEFAULT_PARAMS)
145
+ serialize :params, coder: MetasploitDataModels::Base64Serializer.new(default: DEFAULT_PARAMS)
146
146
  else
147
- serialize :params, MetasploitDataModels::Base64Serializer.new(:default => DEFAULT_PARAMS)
147
+ serialize :params, MetasploitDataModels::Base64Serializer.new(default: DEFAULT_PARAMS)
148
148
  end
149
149
 
150
150
  #
data/cortex.yaml CHANGED
@@ -10,6 +10,8 @@ info:
10
10
  x-cortex-type: service
11
11
  x-cortex-domain-parents:
12
12
  - tag: metasploit
13
+ x-cortex-groups:
14
+ - exposure:external-ship
13
15
  openapi: 3.0.1
14
16
  servers:
15
17
  - url: "/"
@@ -15,6 +15,10 @@ class MetasploitDataModels::Base64Serializer
15
15
 
16
16
  # The default for {#default}
17
17
  DEFAULT = {}
18
+
19
+ # The default for {#coerce}
20
+ COERCE_DEFAULT = false
21
+
18
22
  # Deserializers for {#load}
19
23
  # 1. Base64 decoding and then unmarshalling the value.
20
24
  # 2. Parsing the value as YAML.
@@ -47,6 +51,24 @@ class MetasploitDataModels::Base64Serializer
47
51
  end
48
52
 
49
53
  attr_writer :default
54
+ attr_writer :coerce
55
+
56
+ # Recursively coerce the object that has been passed in, keeping primitive types as their original type,
57
+ # while changing objects that cannot be serialized into a string representation of the object data.
58
+ def coerce_object(value)
59
+ case value
60
+ when Hash
61
+ value.transform_values { |v| coerce_object(v) }
62
+ when Array
63
+ value.map { |v| coerce_object(v) }
64
+ when File, IO
65
+ value.inspect
66
+ when String, Integer, Float, TrueClass, FalseClass, NilClass, Symbol
67
+ value
68
+ else
69
+ value.to_s
70
+ end
71
+ end
50
72
 
51
73
  # Serializes the value by marshalling the value and then base64 encodes the marshaled value.
52
74
  #
@@ -54,7 +76,8 @@ class MetasploitDataModels::Base64Serializer
54
76
  # @return [String]
55
77
  def dump(value)
56
78
  # Always store data back in the Marshal format
57
- marshalled = Marshal.dump(value)
79
+ to_serialize = @coerce ? coerce_object(value) : value
80
+ marshalled = Marshal.dump(to_serialize)
58
81
  base64_encoded = [ marshalled ].pack('m')
59
82
 
60
83
  base64_encoded
@@ -63,9 +86,10 @@ class MetasploitDataModels::Base64Serializer
63
86
  # @param attributes [Hash] attributes
64
87
  # @option attributes [Object] :default ({}) Value to use for {#default}.
65
88
  def initialize(attributes={})
66
- attributes.assert_valid_keys(:default)
89
+ attributes.assert_valid_keys(:default, :coerce)
67
90
 
68
91
  @default = attributes.fetch(:default, DEFAULT)
92
+ @coerce = attributes.fetch(:coerce, COERCE_DEFAULT)
69
93
  end
70
94
 
71
95
  # Deserializes the value by either
@@ -1,6 +1,6 @@
1
1
  module MetasploitDataModels
2
2
  # VERSION is managed by GemRelease
3
- VERSION = '6.0.5'
3
+ VERSION = '6.0.6'
4
4
 
5
5
  # @return [String]
6
6
  #
data.tar.gz.sig CHANGED
Binary file
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: 6.0.5
4
+ version: 6.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Metasploit Hackers
@@ -34,7 +34,7 @@ cert_chain:
34
34
  DgscAao7wB3xW2BWEp1KnaDWkf1x9ttgoBEYyuYwU7uatB67kBQG1PKvLt79wHvz
35
35
  Dxs+KOjGbBRfMnPgVGYkORKVrZIwlaboHbDKxcVW5xv+oZc7KYXWGg==
36
36
  -----END CERTIFICATE-----
37
- date: 2024-06-12 00:00:00.000000000 Z
37
+ date: 2025-02-13 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: metasploit-yard
@@ -727,7 +727,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
727
727
  - !ruby/object:Gem::Version
728
728
  version: '0'
729
729
  requirements: []
730
- rubygems_version: 3.3.24
730
+ rubygems_version: 3.3.3
731
731
  signing_key:
732
732
  specification_version: 4
733
733
  summary: Database code for MSF and Metasploit Pro
metadata.gz.sig CHANGED
@@ -1,2 +1,4 @@
1
- �?���Ѧ"��~δ��ݮ-͍}�j軠=yE:��*dߓ��S/Ն��84�o�o h�3h�y#zi�~OeC��2���+�O�������&����9AenU���(��Ɵ)4Qp�6��
2
- �3O1�m�U��n���Ig�̋S;2�t�i�\̔��X���]��C���Ʌ�J�ʬv��j�9[~��P^[��h�-N��2H�M`&��eD��}�����&]l"�z��|Y�F['D��B��Y
1
+ `�U��3uEh?�v��N>���I��&z)_ ����&�(WBͭ�J�b�iNb�R�4D��>;465���4D���Z����ޤ�7y�z���4�^N
2
+ ��
3
+ ���}R�r)�B�eo�G����5���Xw��U ���h WXefI�sOԅ���@�T{�L���>�>�b�z�ȧ�S���d�����-��k��7NXb�P�=���+w���ԭ��,G��%k;���
4
+ T�8�\���//�r�i>�%FE���V�����G�Սk�� g/R