metasploit-credential 3.0.3 → 4.0.3

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 (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 )