metasploit-credential 3.0.3 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/app/concerns/mdm/task/metasploit_credential_core.rb +2 -2
  5. data/app/concerns/mdm/task/metasploit_credential_login.rb +2 -2
  6. data/app/models/metasploit/credential/core.rb +5 -5
  7. data/app/models/metasploit/credential/login.rb +2 -2
  8. data/app/models/metasploit/credential/origin/cracked_password.rb +1 -1
  9. data/app/models/metasploit/credential/origin/import.rb +1 -1
  10. data/app/models/metasploit/credential/origin/manual.rb +1 -1
  11. data/app/models/metasploit/credential/origin/service.rb +1 -1
  12. data/app/models/metasploit/credential/origin/session.rb +1 -1
  13. data/app/models/metasploit/credential/private.rb +1 -1
  14. data/app/models/metasploit/credential/public.rb +1 -1
  15. data/app/models/metasploit/credential/realm.rb +1 -1
  16. data/app/models/metasploit/credential/search/operator/type.rb +2 -2
  17. data/db/migrate/20140331173835_create_metasploit_credential_publics.rb +1 -1
  18. data/db/migrate/20140407212345_create_metasploit_credential_privates.rb +1 -1
  19. data/db/migrate/20140410132401_create_metasploit_credential_realms.rb +1 -1
  20. data/db/migrate/20140410161611_unique_metasploit_credential_realms.rb +1 -1
  21. data/db/migrate/20140410191213_create_metasploit_credential_origin_manuals.rb +1 -1
  22. data/db/migrate/20140410205410_create_metasploit_credential_origin_imports.rb +1 -1
  23. data/db/migrate/20140411142102_create_metasploit_credential_origin_sessions.rb +1 -1
  24. data/db/migrate/20140411205325_create_metasploit_credential_origin_services.rb +1 -1
  25. data/db/migrate/20140414192550_create_metasploit_credential_cores.rb +1 -1
  26. data/db/migrate/20140417140933_create_metasploit_credential_logins.rb +1 -1
  27. data/db/migrate/20140520140817_add_logins_counter_cache_to_cores.rb +1 -1
  28. data/db/migrate/20140603163708_add_jtr_format_to_metasploit_credential_privates.rb +1 -1
  29. data/db/migrate/20140605173747_create_metasploit_credential_origin_cracked_passwords.rb +1 -1
  30. data/db/migrate/20140702184622_create_credential_cores_tasks_join_table.rb +2 -2
  31. data/db/migrate/20140703144541_create_credential_logins_tasks_join_table.rb +1 -1
  32. data/db/migrate/20140722174919_old_creds_to_new_creds.rb +1 -1
  33. data/db/migrate/20140728191933_unique_metasploit_credential_cores.rb +1 -1
  34. data/db/migrate/20140801150537_unique_metasploit_credential_cores_with_realm_id.rb +1 -1
  35. data/db/migrate/20140922170030_add_typeto_public.rb +1 -1
  36. data/db/migrate/20150106201450_old_creds_to_new_creds2.rb +1 -1
  37. data/db/migrate/20161107153145_recreate_index_on_private_data_and_type.rb +1 -1
  38. data/db/migrate/20161107203710_create_index_on_private_data_and_type_for_ssh_key.rb +1 -1
  39. data/lib/metasploit/credential.rb +1 -1
  40. data/lib/metasploit/credential/core_validations.rb +6 -6
  41. data/lib/metasploit/credential/creation.rb +4 -2
  42. data/lib/metasploit/credential/entity_relationship_diagram.rb +9 -9
  43. data/lib/metasploit/credential/origin.rb +1 -1
  44. data/lib/metasploit/credential/version.rb +1 -1
  45. data/spec/dummy/app/models/application_record.rb +3 -0
  46. data/spec/dummy/config/application.rb +0 -5
  47. data/spec/dummy/config/database.yml +2 -2
  48. data/spec/dummy/config/environments/development.rb +0 -10
  49. data/spec/lib/metasploit/credential/creation_spec.rb +5 -13
  50. data/spec/lib/metasploit/credential/exporter/core_spec.rb +2 -2
  51. data/spec/lib/metasploit/credential/importer/pwdump_spec.rb +1 -1
  52. metadata +84 -82
  53. metadata.gz.sig +1 -1
  54. data/spec/dummy/config/initializers/assets.rb +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1bd1a25d33a75f05ae66ecf0338244f42182befa
4
- data.tar.gz: a6de105af8b273b54a8511d93feda6e898989646
2
+ SHA256:
3
+ metadata.gz: 152b3a658e27a34c3c9f0e2cd89a25f7a870e979e1761bbfb5624172431705c7
4
+ data.tar.gz: 2398721aca08871eb0fa5c95002cc0abf53b45e70ee998f9910f1791a563b41a
5
5
  SHA512:
6
- metadata.gz: 0a31344e1b66e9eb047cc2de01c83a15801e56d059886391afa6da270af36ffe53d70bfe8c23bc0bffe7fad2b1cef95062b4fdddaa1d63ba525e7b02a51b474d
7
- data.tar.gz: 6ac1c230cd5e5e09dc538428bd1426e11fc0f5b365217f4d5acd09ddea94b08d2c7caebd3d4563963d513508c73c4bb5fda48201336ef221cb24b6f1e169bc2d
6
+ metadata.gz: 1fa050d6b55af2b16f10c330b37252e8388abb293e6aea5d46124d554b192ef4d8a642e265c688cae8b40251a604aa6f472bccff6cb5df2b8b1eec9752dd0cc1
7
+ data.tar.gz: 5c0793af6aa8f1b5b1a3fa72d61912594c63af0e74c23c3a1c1ee203350097007c944da312bda1e076b64680c6cd33475911b4e155183c3f4962aed647ea9a48
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -12,8 +12,8 @@ module Mdm::Task::MetasploitCredentialCore
12
12
  #
13
13
  # @return [ActiveRecord::Relation<Metasploit::Credential::Core>]
14
14
  has_and_belongs_to_many :credential_cores,
15
- -> { uniq },
15
+ -> { distinct },
16
16
  class_name: "Metasploit::Credential::Core",
17
17
  join_table: "credential_cores_tasks"
18
18
  end
19
- end
19
+ end
@@ -12,8 +12,8 @@ module Mdm::Task::MetasploitCredentialLogin
12
12
  #
13
13
  # @return [ActiveRecord::Relation<Metasploit::Credential::Core>]
14
14
  has_and_belongs_to_many :credential_logins,
15
- -> { uniq },
15
+ -> { distinct },
16
16
  class_name: "Metasploit::Credential::Login",
17
17
  join_table: "credential_logins_tasks"
18
18
  end
19
- end
19
+ end
@@ -3,7 +3,7 @@
3
3
  # used.
4
4
  #
5
5
  # A core credential must always have an {#origin}, but only needs 1 of {#private}, {#public}, or {#realm} set.
6
- class Metasploit::Credential::Core < ActiveRecord::Base
6
+ class Metasploit::Credential::Core < ApplicationRecord
7
7
  include Metasploit::Model::Search
8
8
  include Metasploit::Credential::CoreValidations
9
9
 
@@ -16,7 +16,7 @@ class Metasploit::Credential::Core < ActiveRecord::Base
16
16
  #
17
17
  # @return [ActiveRecord::Relation<Mdm::Task>]
18
18
  has_and_belongs_to_many :tasks,
19
- -> { uniq },
19
+ -> { distinct },
20
20
  class_name: "Mdm::Task",
21
21
  join_table: "credential_cores_tasks"
22
22
 
@@ -127,7 +127,7 @@ class Metasploit::Credential::Core < ActiveRecord::Base
127
127
  #
128
128
  # @method origins(origin_class)
129
129
  # @scope Metasploit::Credential::Core
130
- # @param origin_class [ActiveRecord::Base] the Origin class to look up
130
+ # @param origin_class [ApplicationRecord] the Origin class to look up
131
131
  # @param table_alias [String] an alias for the JOINed table, defaults to the table name
132
132
  # @return [ActiveRecord::Relation] scoped to that origin
133
133
  scope :origins, lambda { |origin_class, table_alias=nil|
@@ -276,8 +276,8 @@ class Metasploit::Credential::Core < ActiveRecord::Base
276
276
  # @param host_id [Integer]
277
277
  # @return [String]
278
278
  def self.cores_from_host(host_id)
279
- left = origin_service_host_id(host_id).ast
280
- right = origin_session_host_id(host_id).ast
279
+ left = origin_service_host_id(host_id).arel.ast
280
+ right = origin_session_host_id(host_id).arel.ast
281
281
 
282
282
  Arel::Nodes::UnionAll.new(
283
283
  left,
@@ -1,5 +1,5 @@
1
1
  # The use of a {#core core credential} against a {#service service}.
2
- class Metasploit::Credential::Login < ActiveRecord::Base
2
+ class Metasploit::Credential::Login < ApplicationRecord
3
3
  extend ActiveSupport::Autoload
4
4
 
5
5
  include Metasploit::Model::Search
@@ -13,7 +13,7 @@ class Metasploit::Credential::Login < ActiveRecord::Base
13
13
  #
14
14
  # @return [ActiveRecord::Relation<Mdm::Task>]
15
15
  has_and_belongs_to_many :tasks,
16
- -> { uniq },
16
+ -> { distinct },
17
17
  class_name: "Mdm::Task",
18
18
  join_table: "credential_logins_tasks"
19
19
 
@@ -1,5 +1,5 @@
1
1
  # An origin for {#cores core credentials} that were cracked from a {#originating_core core credentials}
2
- class Metasploit::Credential::Origin::CrackedPassword < ActiveRecord::Base
2
+ class Metasploit::Credential::Origin::CrackedPassword < ApplicationRecord
3
3
 
4
4
  #
5
5
  # Associations
@@ -1,5 +1,5 @@
1
1
  # An origin for {#cores core credentials} that were imported by a {#task} from a {#filename file}.
2
- class Metasploit::Credential::Origin::Import < ActiveRecord::Base
2
+ class Metasploit::Credential::Origin::Import < ApplicationRecord
3
3
  #
4
4
  # Associations
5
5
  #
@@ -1,5 +1,5 @@
1
1
  # Origin of {#cores core credentials} that are manually entered by a {#user}.
2
- class Metasploit::Credential::Origin::Manual < ActiveRecord::Base
2
+ class Metasploit::Credential::Origin::Manual < ApplicationRecord
3
3
  #
4
4
  # Associations
5
5
  #
@@ -3,7 +3,7 @@
3
3
  # for `Metasploit::Credential::Core`s derived after a {Metasploit::Credential::Origin::Session#session session} is
4
4
  # gained and a {Metasploit::Credential::Origin::Session#post_reference_name post module} is run from the session to
5
5
  # gather credentials.
6
- class Metasploit::Credential::Origin::Service < ActiveRecord::Base
6
+ class Metasploit::Credential::Origin::Service < ApplicationRecord
7
7
  #
8
8
  # CONSTANTS
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # {Metasploit::Credential::Origin::Service#module_full_name auxiliary or exploit modules} that gather credentials
4
4
  # directly from a {Metasploit::Credential::Origin::Service#service service} without the need for a separate post module
5
5
  # or even a session.
6
- class Metasploit::Credential::Origin::Session < ActiveRecord::Base
6
+ class Metasploit::Credential::Origin::Session < ApplicationRecord
7
7
  #
8
8
  # Associations
9
9
  #
@@ -2,7 +2,7 @@
2
2
  # disclosed, such as a {Metasploit::Credential::Password password}, password hash, or key file.
3
3
  #
4
4
  # Uses Single Table Inheritance to store subclass name in {#type} per Rails convention.
5
- class Metasploit::Credential::Private < ActiveRecord::Base
5
+ class Metasploit::Credential::Private < ApplicationRecord
6
6
  include Metasploit::Model::Search
7
7
 
8
8
  #
@@ -1,5 +1,5 @@
1
1
  # A publicly disclosed credential, i.e. a {#username}.
2
- class Metasploit::Credential::Public < ActiveRecord::Base
2
+ class Metasploit::Credential::Public < ApplicationRecord
3
3
  include Metasploit::Model::Search
4
4
 
5
5
  #
@@ -1,6 +1,6 @@
1
1
  # The realm in which a {Metasploit::Credential::Public} can be used to authenticate or from which a
2
2
  # {Metasploit::Credential::Private} was looted.
3
- class Metasploit::Credential::Realm < ActiveRecord::Base
3
+ class Metasploit::Credential::Realm < ApplicationRecord
4
4
  extend ActiveSupport::Autoload
5
5
 
6
6
  include Metasploit::Model::Search
@@ -24,7 +24,7 @@ class Metasploit::Credential::Search::Operator::Type < Metasploit::Model::Search
24
24
  # Instance Methods
25
25
  #
26
26
 
27
- # Defaults to `:type` as all STI tables in `ActiveRecord::Base` use `type` as teh type attribute by default. Override
27
+ # Defaults to `:type` as all STI tables in `ApplicationRecord` use `type` as teh type attribute by default. Override
28
28
  # to search foreign key types, which are prefixed with the association name.
29
29
  #
30
30
  # @return [Symbol]
@@ -70,4 +70,4 @@ class Metasploit::Credential::Search::Operator::Type < Metasploit::Model::Search
70
70
  def type
71
71
  :string
72
72
  end
73
- end
73
+ end
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialPublics < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialPublics < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_publics do |t|
4
4
  #
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialPrivates < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialPrivates < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_privates do |t|
4
4
  #
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialRealms < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialRealms < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_realms do |t|
4
4
  t.string :key, null: false
@@ -1,4 +1,4 @@
1
- class UniqueMetasploitCredentialRealms < ActiveRecord::Migration
1
+ class UniqueMetasploitCredentialRealms < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  change_table :metasploit_credential_realms do |t|
4
4
  t.index [:key, :value], unique: true
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialOriginManuals < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialOriginManuals < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_origin_manuals do |t|
4
4
  #
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialOriginImports < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialOriginImports < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_origin_imports do |t|
4
4
  #
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialOriginSessions < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialOriginSessions < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_origin_sessions do |t|
4
4
  #
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialOriginServices < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialOriginServices < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_origin_services do |t|
4
4
  #
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialCores < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialCores < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_cores do |t|
4
4
  #
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialLogins < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialLogins < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_logins do |t|
4
4
  #
@@ -1,4 +1,4 @@
1
- class AddLoginsCounterCacheToCores < ActiveRecord::Migration
1
+ class AddLoginsCounterCacheToCores < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  add_column :metasploit_credential_cores, :logins_count, :integer, :default => 0
4
4
 
@@ -1,4 +1,4 @@
1
- class AddJtrFormatToMetasploitCredentialPrivates < ActiveRecord::Migration
1
+ class AddJtrFormatToMetasploitCredentialPrivates < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :metasploit_credential_privates, :jtr_format, :string
4
4
  end
@@ -1,4 +1,4 @@
1
- class CreateMetasploitCredentialOriginCrackedPasswords < ActiveRecord::Migration
1
+ class CreateMetasploitCredentialOriginCrackedPasswords < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :metasploit_credential_origin_cracked_passwords do |t|
4
4
 
@@ -1,8 +1,8 @@
1
- class CreateCredentialCoresTasksJoinTable < ActiveRecord::Migration
1
+ class CreateCredentialCoresTasksJoinTable < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :credential_cores_tasks, :force => true, :id => false do |t|
4
4
  t.integer :core_id
5
5
  t.integer :task_id
6
6
  end
7
7
  end
8
- end
8
+ end
@@ -1,4 +1,4 @@
1
- class CreateCredentialLoginsTasksJoinTable < ActiveRecord::Migration
1
+ class CreateCredentialLoginsTasksJoinTable < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :credential_logins_tasks, :force => true, :id => false do |t|
4
4
  t.integer :login_id
@@ -1,6 +1,6 @@
1
1
  # Implements a one-time migration of `Mdm::Cred` objects to
2
2
  # appropriate objects from {Metasploit::Credential}
3
- class OldCredsToNewCreds < ActiveRecord::Migration
3
+ class OldCredsToNewCreds < ActiveRecord::Migration[4.2]
4
4
  def up
5
5
  Metasploit::Credential::Migrator.new.migrate!
6
6
  end
@@ -1,4 +1,4 @@
1
- class UniqueMetasploitCredentialCores < ActiveRecord::Migration
1
+ class UniqueMetasploitCredentialCores < ActiveRecord::Migration[4.2]
2
2
  def down
3
3
  execute 'DROP INDEX unique_complete_metasploit_credential_cores'
4
4
  execute 'DROP INDEX unique_private_metasploit_credential_cores'
@@ -1,4 +1,4 @@
1
- class UniqueMetasploitCredentialCoresWithRealmId < ActiveRecord::Migration
1
+ class UniqueMetasploitCredentialCoresWithRealmId < ActiveRecord::Migration[4.2]
2
2
  #
3
3
  # CONSTANTS
4
4
  #
@@ -1,4 +1,4 @@
1
- class AddTypetoPublic < ActiveRecord::Migration
1
+ class AddTypetoPublic < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  change_table :metasploit_credential_publics do |t|
4
4
  #
@@ -2,7 +2,7 @@
2
2
  # appropriate objects from {Metasploit::Credential}
3
3
  # This second run is due to the refactor of #report_auth_info
4
4
  # that means we should no longer be creating old creds anywhere.
5
- class OldCredsToNewCreds2 < ActiveRecord::Migration
5
+ class OldCredsToNewCreds2 < ActiveRecord::Migration[4.2]
6
6
  def up
7
7
  Metasploit::Credential::Migrator.new.migrate!
8
8
  end
@@ -1,4 +1,4 @@
1
- class RecreateIndexOnPrivateDataAndType < ActiveRecord::Migration
1
+ class RecreateIndexOnPrivateDataAndType < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  remove_index :metasploit_credential_privates, [:type, :data]
4
4
 
@@ -1,4 +1,4 @@
1
- class CreateIndexOnPrivateDataAndTypeForSshKey < ActiveRecord::Migration
1
+ class CreateIndexOnPrivateDataAndTypeForSshKey < ActiveRecord::Migration[4.2]
2
2
  def up
3
3
  sql =<<ENDL
4
4
  CREATE UNIQUE INDEX "index_metasploit_credential_privates_on_type_and_data_sshkey" ON
@@ -52,7 +52,7 @@ module Metasploit
52
52
  autoload :Text
53
53
  autoload :Username
54
54
 
55
- # The prefix for all `ActiveRecord::Base#table_name`s for `ActiveRecord::Base` subclasses under this namespace.
55
+ # The prefix for all `ApplicationRecord#table_name`s for `ApplicationRecord` subclasses under this namespace.
56
56
  #
57
57
  # @return [String] `'metasploit_credential_'`
58
58
  def self.table_name_prefix
@@ -25,7 +25,7 @@ module Metasploit::Credential::CoreValidations
25
25
  :public_id
26
26
  ]
27
27
  },
28
- if: '!realm.present? && !public.present? && private.present?'
28
+ if: -> { !realm.present? && !public.present? && private.present? }
29
29
  # replicates 'unique_public_metasploit_credential_cores' index
30
30
  validates :public_id,
31
31
  uniqueness: {
@@ -37,7 +37,7 @@ module Metasploit::Credential::CoreValidations
37
37
  :private_id
38
38
  ]
39
39
  },
40
- if: '!realm.present? && public.present? && !private.present?'
40
+ if: -> { !realm.present? && public.present? && !private.present? }
41
41
  # replicates 'unique_realmless_metasploit_credential_cores' index
42
42
  validates :private_id,
43
43
  uniqueness: {
@@ -49,7 +49,7 @@ module Metasploit::Credential::CoreValidations
49
49
  :public_id
50
50
  ]
51
51
  },
52
- if: '!realm.present? && public.present? && private.present?'
52
+ if: -> { !realm.present? && public.present? && private.present? }
53
53
  # replicates 'unique_publicless_metasploit_credential_cores' index
54
54
  validates :private_id,
55
55
  uniqueness: {
@@ -61,7 +61,7 @@ module Metasploit::Credential::CoreValidations
61
61
  :public_id
62
62
  ]
63
63
  },
64
- if: 'realm.present? && !public.present? && private.present?'
64
+ if: -> { realm.present? && !public.present? && private.present? }
65
65
  # replicates 'unique_privateless_metasploit_credential_cores' index
66
66
  validates :public_id,
67
67
  uniqueness: {
@@ -73,7 +73,7 @@ module Metasploit::Credential::CoreValidations
73
73
  :private_id
74
74
  ]
75
75
  },
76
- if: 'realm.present? && public.present? && !private.present?'
76
+ if: -> { realm.present? && public.present? && !private.present? }
77
77
  # replicates 'unique_complete_metasploit_credential_cores' index
78
78
  validates :private_id,
79
79
  uniqueness: {
@@ -84,7 +84,7 @@ module Metasploit::Credential::CoreValidations
84
84
  :public_id
85
85
  ]
86
86
  },
87
- if: 'realm.present? && public.present? && private.present?'
87
+ if: -> { realm.present? && public.present? && private.present? }
88
88
  validates :workspace,
89
89
  presence: true
90
90
 
@@ -8,7 +8,7 @@ module Metasploit::Credential::Creation
8
8
  # Returns true if ActiveRecord has an active database connection, false otherwise.
9
9
  # @return [Boolean]
10
10
  def active_db?
11
- ActiveRecord::Base.connected?
11
+ ApplicationRecord.connected?
12
12
  end
13
13
 
14
14
  # This method takes a few simple parameters and creates a new username/password
@@ -276,6 +276,7 @@ module Metasploit::Credential::Creation
276
276
  # @option opts [DateTime] :last_attempted_at The last time this Login was attempted
277
277
  # @option opts [Metasploit::Credential::Core] :core The {Metasploit::Credential::Core} to link this login to
278
278
  # @option opts [Fixnum] :port The port number of the `Mdm::Service` to link this Login to
279
+ # @option opts [String] :service_id The ID of an `Mdm::Service` to link this login to
279
280
  # @option opts [String] :service_name The service name to use for the `Mdm::Service`
280
281
  # @option opts [String] :status The status for the Login object
281
282
  # @option opts [String] :protocol The protocol type of the `Mdm::Service` to link this Login to
@@ -298,7 +299,8 @@ module Metasploit::Credential::Creation
298
299
 
299
300
  login_object = nil
300
301
  retry_transaction do
301
- service_object = create_credential_service(opts)
302
+ service_object = Mdm::Service.where(id: opts[:service_id]).first if opts[:service_id]
303
+ service_object = create_credential_service(opts) if service_object.nil?
302
304
  return nil if service_object.nil?
303
305
  login_object = Metasploit::Credential::Login.where(core_id: core.id, service_id: service_object.id).first_or_initialize
304
306
 
@@ -36,16 +36,16 @@ module Metasploit::Credential::EntityRelationshipDiagram
36
36
  # Class Methods
37
37
  #
38
38
 
39
- # All {cluster clusters} of classes that are reachable through belongs_to from each ActiveRecord::Base descendant
39
+ # All {cluster clusters} of classes that are reachable through belongs_to from each ApplicationRecord descendant
40
40
  #
41
- # @return [Hash{Class<ActiveRecord::Base> => Set<Class<ActiveRecord::Base>>}] Maps entry point to cluster to its
41
+ # @return [Hash{Class<ApplicationRecord> => Set<Class<ApplicationRecord>>}] Maps entry point to cluster to its
42
42
  # cluster.
43
43
  def self.cluster_by_class
44
44
  cluster_by_class = {}
45
45
 
46
46
  Metasploit::Credential::Engine.instance.eager_load!
47
47
 
48
- ActiveRecord::Base.descendants.each do |klass|
48
+ ApplicationRecord.descendants.each do |klass|
49
49
  klass_cluster = cluster(klass)
50
50
  cluster_by_class[klass] = klass_cluster
51
51
  end
@@ -55,9 +55,9 @@ module Metasploit::Credential::EntityRelationshipDiagram
55
55
 
56
56
  # Cluster of classes that are reachable through belongs_to from `classes`.
57
57
  #
58
- # @param classes [Array<Class<ActiveRecord::Base>>] classes that must be in cluster. All other classes in the
58
+ # @param classes [Array<Class<ApplicationRecord>>] classes that must be in cluster. All other classes in the
59
59
  # returned cluster will be classes to which `classes` belong directly or indirectly.
60
- # @return [Set<Class<ActiveRecord::Base>>]
60
+ # @return [Set<Class<ApplicationRecord>>]
61
61
  def self.cluster(*classes)
62
62
  class_queue = classes.dup
63
63
  visited_class_set = Set.new
@@ -122,7 +122,7 @@ module Metasploit::Credential::EntityRelationshipDiagram
122
122
 
123
123
  # Set of largest clusters from {cluster_by_class}.
124
124
  #
125
- # @return [Array<Set<Class<ActiveRecord::Base>>>]
125
+ # @return [Array<Set<Class<ApplicationRecord>>>]
126
126
  def self.maximal_clusters
127
127
  clusters = cluster_by_class.values
128
128
  unique_clusters = clusters.uniq
@@ -152,11 +152,11 @@ module Metasploit::Credential::EntityRelationshipDiagram
152
152
 
153
153
  # Calculates the target classes for a polymorphic `belongs_to`.
154
154
  #
155
- # @return [Array<ActiveRecord::Base>]
155
+ # @return [Array<ApplicationRecord>]
156
156
  def self.polymorphic_classes(belongs_to_reflection)
157
157
  name = belongs_to_reflection.name
158
158
 
159
- ActiveRecord::Base.descendants.each_with_object([]) { |descendant, target_classes|
159
+ ApplicationRecord.descendants.each_with_object([]) { |descendant, target_classes|
160
160
  has_many_reflections = descendant.reflect_on_all_associations(:has_many)
161
161
 
162
162
  has_many_reflections.each do |has_many_reflection|
@@ -168,4 +168,4 @@ module Metasploit::Credential::EntityRelationshipDiagram
168
168
  end
169
169
  }
170
170
  end
171
- end
171
+ end
@@ -8,7 +8,7 @@ module Metasploit::Credential::Origin
8
8
  autoload :Service
9
9
  autoload :Session
10
10
 
11
- # The prefix for table name of `ActiveRecord::Base` subclasses in the namespace.
11
+ # The prefix for table name of `ApplicationRecord` subclasses in the namespace.
12
12
  #
13
13
  # @return [String] `'metasploit_credential_origin_'`
14
14
  def self.table_name_prefix
@@ -3,7 +3,7 @@
3
3
  module Metasploit
4
4
  module Credential
5
5
  # VERSION is managed by GemRelease
6
- VERSION = '3.0.3'
6
+ VERSION = '4.0.3'
7
7
 
8
8
  # @return [String]
9
9
  #
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end
@@ -55,11 +55,6 @@ module Dummy
55
55
  # like if you have constraints or database-specific column types
56
56
  config.active_record.schema_format = :sql
57
57
 
58
- # Enable the asset pipeline
59
- config.assets.enabled = false
60
-
61
- # Version of your assets, change this if you want to expire all your assets
62
- config.assets.version = '1.0'
63
58
  end
64
59
  end
65
60
 
@@ -1,6 +1,6 @@
1
1
  development: &pgsql
2
2
  adapter: postgresql
3
- database: metasploit-credential_development0
3
+ database: metasploit-credential_development3
4
4
  username: msf
5
5
  password: pass123
6
6
  host: localhost
@@ -10,4 +10,4 @@ development: &pgsql
10
10
  min_messages: warning
11
11
  test:
12
12
  <<: *pgsql
13
- database: metasploit-credential_test0
13
+ database: metasploit-credential_test3
@@ -19,16 +19,6 @@ Rails.application.configure do
19
19
  # Raise an error on page load if there are pending migrations.
20
20
  config.active_record.migration_error = :page_load
21
21
 
22
- # Debug mode disables concatenation and preprocessing of assets.
23
- # This option may cause significant delays in view rendering with a large
24
- # number of complex assets.
25
- config.assets.debug = true
26
-
27
- # Adds additional error checking when serving assets at runtime.
28
- # Checks for improperly declared sprockets dependencies.
29
- # Raises helpful error messages.
30
- config.assets.raise_runtime_errors = true
31
-
32
22
  # Raises error for missing translations
33
23
  # config.action_view.raise_on_missing_translations = true
34
24
  end
@@ -55,8 +55,7 @@ RSpec.describe Metasploit::Credential::Creation do
55
55
  origin_type: origin_type,
56
56
  username: 'admin',
57
57
  private_data: 'password',
58
- private_type: :password,
59
- workspace_id: workspace.id
58
+ private_type: :password
60
59
  }.merge(origin_data[origin_type])}
61
60
  it 'creates a credential core' do
62
61
  expect{ test_object.create_credential(credential_data) }.to change{ Metasploit::Credential::Core.count }.by(1)
@@ -89,8 +88,7 @@ RSpec.describe Metasploit::Credential::Creation do
89
88
  origin_type: :manual,
90
89
  username: 'admin',
91
90
  private_data: 'password',
92
- private_type: :password,
93
- workspace_id: workspace.id
91
+ private_type: :password
94
92
  }}
95
93
  it 'creates a credential core' do
96
94
  expect{ test_object.create_credential(credential_data) }.to change{ Metasploit::Credential::Core.count }.by(1)
@@ -117,8 +115,7 @@ RSpec.describe Metasploit::Credential::Creation do
117
115
  origin_type: :manual,
118
116
  username: public_value,
119
117
  private_data: 'password',
120
- private_type: :password,
121
- workspace_id: workspace.id
118
+ private_type: :password
122
119
  }}
123
120
  it 'creates a credential core' do
124
121
  expect{ test_object.create_credential(credential_data) }.to change{ Metasploit::Credential::Core.count }.by(1)
@@ -158,8 +155,7 @@ RSpec.describe Metasploit::Credential::Creation do
158
155
  origin_type: :manual,
159
156
  username: 'admin',
160
157
  private_data: private_data[private_type],
161
- private_type: private_type,
162
- workspace_id: workspace.id
158
+ private_type: private_type
163
159
  }}
164
160
  it 'creates a credential core' do
165
161
  expect{ test_object.create_credential(credential_data) }.to change{ Metasploit::Credential::Core.count }.by(1)
@@ -213,7 +209,6 @@ RSpec.describe Metasploit::Credential::Creation do
213
209
  username: 'admin',
214
210
  private_data: 'password',
215
211
  private_type: :password,
216
- workspace_id: workspace.id,
217
212
  address: service.host.address,
218
213
  port: service.port,
219
214
  service_name: service.name,
@@ -256,7 +251,6 @@ RSpec.describe Metasploit::Credential::Creation do
256
251
  username: 'admin',
257
252
  private_data: 'password',
258
253
  private_type: :password,
259
- workspace_id: workspace.id,
260
254
  address: service.host.address,
261
255
  port: service.port,
262
256
  service_name: service.name,
@@ -294,7 +288,6 @@ RSpec.describe Metasploit::Credential::Creation do
294
288
  username: public_value,
295
289
  private_data: 'password',
296
290
  private_type: :password,
297
- workspace_id: workspace.id,
298
291
  address: service.host.address,
299
292
  port: service.port,
300
293
  service_name: service.name,
@@ -344,7 +337,6 @@ RSpec.describe Metasploit::Credential::Creation do
344
337
  username: 'admin',
345
338
  private_data: private_data[private_type],
346
339
  private_type: private_type,
347
- workspace_id: workspace.id,
348
340
  address: service.host.address,
349
341
  port: service.port,
350
342
  service_name: service.name,
@@ -382,7 +374,7 @@ RSpec.describe Metasploit::Credential::Creation do
382
374
  it 'creates a Core' do
383
375
  expect {
384
376
  test_object.create_cracked_credential(
385
- core_id: old_core,
377
+ core_id: old_core.id,
386
378
  username: public.username,
387
379
  password: password
388
380
  )
@@ -29,7 +29,7 @@ RSpec.describe Metasploit::Credential::Exporter::Core do
29
29
  describe "#export!" do
30
30
  it 'should create the zipfile' do
31
31
  core_exporter.export!
32
- expect(File.exists?(core_exporter.output_zipfile_path)).to eq(true)
32
+ expect(File.exist?(core_exporter.output_zipfile_path)).to eq(true)
33
33
  end
34
34
 
35
35
  it 'should output to a directory whose name contains the standardized identifier' do
@@ -452,4 +452,4 @@ RSpec.describe Metasploit::Credential::Exporter::Core do
452
452
  end
453
453
  end
454
454
  end
455
- end
455
+ end
@@ -113,4 +113,4 @@ RSpec.describe Metasploit::Credential::Importer::Pwdump do
113
113
 
114
114
  end
115
115
 
116
- end
116
+ end
metadata CHANGED
@@ -1,95 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metasploit-credential
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
- - Luke Imhoff
8
- - Trevor Rosen
7
+ - Metasploit Hackers
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain:
12
11
  - |
13
12
  -----BEGIN CERTIFICATE-----
14
- MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
15
- A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
16
- Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
17
- MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
18
- A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
19
- hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
20
- RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
21
- gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
22
- KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
23
- QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
24
- XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
25
- DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
26
- LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
27
- RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
28
- jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
29
- 6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
30
- mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
31
- Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
32
- WD9f
13
+ MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
14
+ MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
15
+ d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
16
+ b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
17
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
18
+ cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
19
+ MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
20
+ JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
21
+ mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
22
+ wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
23
+ VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
24
+ AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
25
+ AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
26
+ BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
27
+ pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
28
+ dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
29
+ fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
30
+ NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
31
+ H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
32
+ +o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
33
33
  -----END CERTIFICATE-----
34
34
  - |
35
35
  -----BEGIN CERTIFICATE-----
36
- MIIElDCCA3ygAwIBAgIOSBtqBybS6D8mAtSCWs0wDQYJKoZIhvcNAQELBQAwTDEg
37
- MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2Jh
38
- bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTYwNjE1MDAwMDAwWhcNMjQw
39
- NjE1MDAwMDAwWjBaMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu
40
- di1zYTEwMC4GA1UEAxMnR2xvYmFsU2lnbiBDb2RlU2lnbmluZyBDQSAtIFNIQTI1
41
- NiAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjYVVI6kfU6/J
42
- 7TbCKbVu2PlC9SGLh/BDoS/AP5fjGEfUlk6Iq8Zj6bZJFYXx2Zt7G/3YSsxtToZA
43
- F817ukcotdYUQAyG7h5LM/MsVe4hjNq2wf6wTjquUZ+lFOMQ5pPK+vldsZCH7/g1
44
- LfyiXCbuexWLH9nDoZc1QbMw/XITrZGXOs5ynQYKdTwfmOPLGC+MnwhKkQrZ2TXZ
45
- g5J2Yl7fg67k1gFOzPM8cGFYNx8U42qgr2v02dJsLBkwXaBvUt/RnMngDdl1EWWW
46
- 2UO0p5A5rkccVMuxlW4l3o7xEhzw127nFE2zGmXWhEpX7gSvYjjFEJtDjlK4Prau
47
- niyX/4507wIDAQABo4IBZDCCAWAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQG
48
- CCsGAQUFBwMDBggrBgEFBQcDCTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQW
49
- BBQPOueslJF0LZYCc4OtnC5JPxmqVDAfBgNVHSMEGDAWgBSP8Et/qC5FJK5NUPpj
50
- move4t0bvDA+BggrBgEFBQcBAQQyMDAwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3Nw
51
- Mi5nbG9iYWxzaWduLmNvbS9yb290cjMwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDov
52
- L2NybC5nbG9iYWxzaWduLmNvbS9yb290LXIzLmNybDBjBgNVHSAEXDBaMAsGCSsG
53
- AQQBoDIBMjAIBgZngQwBBAEwQQYJKwYBBAGgMgFfMDQwMgYIKwYBBQUHAgEWJmh0
54
- dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMA0GCSqGSIb3DQEB
55
- CwUAA4IBAQAVhCgM7aHDGYLbYydB18xjfda8zzabz9JdTAKLWBoWCHqxmJl/2DOK
56
- XJ5iCprqkMLFYwQL6IdYBgAHglnDqJQy2eAUTaDVI+DH3brwaeJKRWUtTUmQeGYy
57
- DrBowLCIsI7tXAb4XBBIPyNzujtThFKAzfCzFcgRCosFeEZZCNS+t/9L9ZxqTJx2
58
- ohGFRYzUN+5Q3eEzNKmhHzoL8VZEim+zM9CxjtEMYAfuMsLwJG+/r/uBAXZnxKPo
59
- 4KvcM1Uo42dHPOtqpN+U6fSmwIHRUphRptYCtzzqSu/QumXSN4NTS35nfIxA9gcc
60
- sK8EBtz4bEaIcpzrTp3DsLlUo7lOl8oU
36
+ MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
37
+ MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
38
+ d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
39
+ b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
40
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
41
+ cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
42
+ aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
43
+ Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
44
+ 8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
45
+ wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
46
+ fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
47
+ jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
48
+ n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
49
+ HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
50
+ MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
51
+ MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
52
+ RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
53
+ ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
54
+ Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
55
+ TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
56
+ d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
57
+ CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
58
+ MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
59
+ fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
60
+ RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
61
+ EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
62
+ L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
63
+ B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
61
64
  -----END CERTIFICATE-----
62
65
  - |
63
66
  -----BEGIN CERTIFICATE-----
64
- MIIE5jCCA86gAwIBAgIMKDuO03uv6RWXR1uAMA0GCSqGSIb3DQEBCwUAMFoxCzAJ
65
- BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTAwLgYDVQQDEydH
66
- bG9iYWxTaWduIENvZGVTaWduaW5nIENBIC0gU0hBMjU2IC0gRzMwHhcNMTYwOTEz
67
- MTgxMDIyWhcNMTkxMTExMTUxNTM4WjBgMQswCQYDVQQGEwJVUzEWMBQGA1UECBMN
68
- TWFzc2FjaHVzZXR0czEPMA0GA1UEBxMGQm9zdG9uMRMwEQYDVQQKEwpSYXBpZDcg
69
- TExDMRMwEQYDVQQDEwpSYXBpZDcgTExDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
70
- MIIBCgKCAQEAl0HeC0FzN1BJ4nQkxsBng3peS9Bdi9rpSGx+g0Ximd+M/7twmund
71
- bzn2JPbNK/Gp/rq/SytrNSLcUzcbH/0z5Ltyw1/jQsGtRBrns0NZSRXqupQDW5R6
72
- HFpaIAl3OdsesmIQc/fm0uhh8dkfHVo7UsZO/TeCPoy0uHXTI6aFBPzMMsdz+gf3
73
- cCCLsnNKQh/T2Q/jwBs3NTPoyza/pPZcvGogKcWCeNihTO5Rn1Fc71sMHSjQsDtn
74
- 1fWGKYGi0qjvZ4lpGM9IFZMTbySKHbPLhhHnBOoV7avGemdky3AEsUeiT+6DY0P1
75
- IydBy24uVNhGATglME1ttlT4Eme/to0M6wIDAQABo4IBpDCCAaAwDgYDVR0PAQH/
76
- BAQDAgeAMIGUBggrBgEFBQcBAQSBhzCBhDBIBggrBgEFBQcwAoY8aHR0cDovL3Nl
77
- Y3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3Njb2Rlc2lnbnNoYTJnM29jc3Au
78
- Y3J0MDgGCCsGAQUFBzABhixodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vZ3Nj
79
- b2Rlc2lnbnNoYTJnMzBWBgNVHSAETzBNMEEGCSsGAQQBoDIBMjA0MDIGCCsGAQUF
80
- BwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAIBgZn
81
- gQwBBAEwCQYDVR0TBAIwADA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmds
82
- b2JhbHNpZ24uY29tL2dzY29kZXNpZ25zaGEyZzMuY3JsMBMGA1UdJQQMMAoGCCsG
83
- AQUFBwMDMB0GA1UdDgQWBBSm8RBpBC/cK9VmxzO2+RWnacN8CTAfBgNVHSMEGDAW
84
- gBQPOueslJF0LZYCc4OtnC5JPxmqVDANBgkqhkiG9w0BAQsFAAOCAQEANVO3uYQl
85
- h8iicbaXE3odrL+kXXmeeNgt4BD3x7GKAVIVixtwBS6pvrshjc1LN0tm3ruiv8oy
86
- cq4FiEmVUXZejSRvVVtABeWdZWo+lJ8NxCBUEYYmnMrjgFIbGiEbBsg7PGtyeQsA
87
- 5Wbg7Lx889mS1tKfQBcPif8EjpTiXNfMiywmpaMYmvm+yQgzrRLDbjz6JV0Rc5Ga
88
- WChka+LTPnMtsWJuFM8ka8icMeS28/nAGERdewxWvz+DeAPMORdTJ7aqb6+Y9xuz
89
- G+Hmcg1v810agasPdoydE0RTVZgEOOMoQ07qu7JFXVWZ9ZQpHT7qJATWL/b2csFG
90
- 8mVuTXnyJOKRJA==
67
+ MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
68
+ MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
69
+ d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
70
+ SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
71
+ MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
72
+ BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
73
+ IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
74
+ 4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
75
+ WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
76
+ gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
77
+ 9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
78
+ yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
79
+ r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
80
+ dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
81
+ B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
82
+ L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
83
+ L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
84
+ MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
85
+ d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
86
+ JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
87
+ AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
88
+ ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
89
+ BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
90
+ 37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
91
+ YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
92
+ dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
93
+ EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
94
+ 9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
91
95
  -----END CERTIFICATE-----
92
- date: 2019-02-05 00:00:00.000000000 Z
96
+ date: 2020-11-25 00:00:00.000000000 Z
93
97
  dependencies:
94
98
  - !ruby/object:Gem::Dependency
95
99
  name: metasploit-concern
@@ -219,8 +223,7 @@ dependencies:
219
223
  version: '0'
220
224
  description: The Metasploit::Credential namespace and its ActiveRecord::Base subclasses
221
225
  email:
222
- - luke_imhoff@rapid7.com
223
- - trevor_rosen@rapid7.com
226
+ - msfdev@metasploit.com
224
227
  executables: []
225
228
  extensions: []
226
229
  extra_rdoc_files: []
@@ -315,6 +318,7 @@ files:
315
318
  - spec/dummy/app/assets/stylesheets/application.css
316
319
  - spec/dummy/app/controllers/application_controller.rb
317
320
  - spec/dummy/app/helpers/application_helper.rb
321
+ - spec/dummy/app/models/application_record.rb
318
322
  - spec/dummy/app/views/layouts/application.html.erb
319
323
  - spec/dummy/bin/bundle
320
324
  - spec/dummy/bin/rails
@@ -329,7 +333,6 @@ files:
329
333
  - spec/dummy/config/environments/development.rb
330
334
  - spec/dummy/config/environments/production.rb
331
335
  - spec/dummy/config/environments/test.rb
332
- - spec/dummy/config/initializers/assets.rb
333
336
  - spec/dummy/config/initializers/backtrace_silencers.rb
334
337
  - spec/dummy/config/initializers/cookies_serializer.rb
335
338
  - spec/dummy/config/initializers/filter_parameter_logging.rb
@@ -424,7 +427,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
424
427
  requirements:
425
428
  - - ">="
426
429
  - !ruby/object:Gem::Version
427
- version: 2.2.0
430
+ version: 2.4.0
428
431
  required_rubygems_version: !ruby/object:Gem::Requirement
429
432
  requirements:
430
433
  - - ">="
@@ -432,7 +435,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
432
435
  version: '0'
433
436
  requirements: []
434
437
  rubyforge_project:
435
- rubygems_version: 2.6.13
438
+ rubygems_version: 2.7.10
436
439
  signing_key:
437
440
  specification_version: 4
438
441
  summary: Credential models for metasploit-framework and Metasploit Pro
@@ -443,6 +446,7 @@ test_files:
443
446
  - spec/dummy/app/assets/stylesheets/application.css
444
447
  - spec/dummy/app/controllers/application_controller.rb
445
448
  - spec/dummy/app/helpers/application_helper.rb
449
+ - spec/dummy/app/models/application_record.rb
446
450
  - spec/dummy/app/views/layouts/application.html.erb
447
451
  - spec/dummy/bin/bundle
448
452
  - spec/dummy/bin/rails
@@ -457,7 +461,6 @@ test_files:
457
461
  - spec/dummy/config/environments/development.rb
458
462
  - spec/dummy/config/environments/production.rb
459
463
  - spec/dummy/config/environments/test.rb
460
- - spec/dummy/config/initializers/assets.rb
461
464
  - spec/dummy/config/initializers/backtrace_silencers.rb
462
465
  - spec/dummy/config/initializers/cookies_serializer.rb
463
466
  - spec/dummy/config/initializers/filter_parameter_logging.rb
@@ -538,4 +541,3 @@ test_files:
538
541
  - spec/support/shared/examples/core_validations.rb
539
542
  - spec/support/shared/examples/single_table_inheritance_database_columns.rb
540
543
  - spec/support/shared/examples/timestamp_database_column.rb
541
- has_rdoc:
metadata.gz.sig CHANGED
@@ -1 +1 @@
1
- ~�IwZ��D� ���1r���]I1�>м`��Chi$���#�s)�����L�����FZG���4]��0��+@�:�q���aŐ�����5`b��%K^��Ao��D�����ڧ���tiyi����x�4��<C{&�����h����Rٷ���'x�:������&�Ǖ��3�(Gɚ��T ��S#<�X�n@��SmAtC�TE�A:5Am� j�io�ت�8/�A6�X��$����a�����+��
1
+ ������y�ȪU��,��s��0�A}��:�58D�ϟ���Oq��y#����6Բfݿ�sjG��R�#����.��G����rf]��xKޱ-l+z
@@ -1,8 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Version of your assets, change this if you want to expire all your assets.
4
- Rails.application.config.assets.version = '1.0'
5
-
6
- # Precompile additional assets.
7
- # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
8
- # Rails.application.config.assets.precompile += %w( search.js )