metasploit-credential 2.0.14 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/lib/metasploit/credential/engine.rb +2 -2
  5. data/lib/metasploit/credential/version.rb +3 -3
  6. data/spec/dummy/config/database.yml +2 -2
  7. data/spec/factories/metasploit/credential/blank_usernames.rb +1 -1
  8. data/spec/factories/metasploit/credential/cores.rb +6 -6
  9. data/spec/factories/metasploit/credential/importer/cores.rb +2 -2
  10. data/spec/factories/metasploit/credential/importer/pwdumps.rb +3 -3
  11. data/spec/factories/metasploit/credential/importer/zips.rb +8 -8
  12. data/spec/factories/metasploit/credential/logins.rb +3 -3
  13. data/spec/factories/metasploit/credential/nonreplayable_hashes.rb +1 -1
  14. data/spec/factories/metasploit/credential/ntlm_hashes.rb +1 -1
  15. data/spec/factories/metasploit/credential/origin/imports.rb +1 -1
  16. data/spec/factories/metasploit/credential/origin/manuals.rb +1 -1
  17. data/spec/factories/metasploit/credential/origin/services.rb +1 -1
  18. data/spec/factories/metasploit/credential/origin/sessions.rb +1 -1
  19. data/spec/factories/metasploit/credential/password_hashes.rb +1 -1
  20. data/spec/factories/metasploit/credential/passwords.rb +1 -1
  21. data/spec/factories/metasploit/credential/postgres_md5.rb +1 -1
  22. data/spec/factories/metasploit/credential/privates.rb +1 -1
  23. data/spec/factories/metasploit/credential/publics.rb +2 -2
  24. data/spec/factories/metasploit/credential/realms.rb +1 -1
  25. data/spec/factories/metasploit/credential/replayable_hashes.rb +1 -1
  26. data/spec/factories/metasploit/credential/ssh_keys.rb +1 -1
  27. data/spec/factories/metasploit/credential/usernames.rb +1 -1
  28. data/spec/lib/metasploit/credential/creation_spec.rb +52 -52
  29. data/spec/lib/metasploit/credential/exporter/core_spec.rb +3 -3
  30. data/spec/lib/metasploit/credential/exporter/pwdump_spec.rb +11 -11
  31. data/spec/lib/metasploit/credential/importer/core_spec.rb +19 -19
  32. data/spec/lib/metasploit/credential/importer/multi_spec.rb +4 -4
  33. data/spec/lib/metasploit/credential/importer/pwdump_spec.rb +3 -3
  34. data/spec/lib/metasploit/credential/importer/zip_spec.rb +3 -3
  35. data/spec/lib/metasploit/credential/migrator_spec.rb +22 -22
  36. data/spec/models/metasploit/credential/core_spec.rb +42 -42
  37. data/spec/models/metasploit/credential/login_spec.rb +20 -20
  38. data/spec/models/metasploit/credential/nonreplayable_hash_spec.rb +1 -1
  39. data/spec/models/metasploit/credential/ntlm_hash_spec.rb +5 -5
  40. data/spec/models/metasploit/credential/origin/import_spec.rb +1 -1
  41. data/spec/models/metasploit/credential/origin/manual_spec.rb +1 -1
  42. data/spec/models/metasploit/credential/origin/service_spec.rb +3 -3
  43. data/spec/models/metasploit/credential/origin/session_spec.rb +2 -2
  44. data/spec/models/metasploit/credential/password_hash_spec.rb +1 -1
  45. data/spec/models/metasploit/credential/password_spec.rb +1 -1
  46. data/spec/models/metasploit/credential/postgres_md5_spec.rb +3 -3
  47. data/spec/models/metasploit/credential/private_spec.rb +6 -6
  48. data/spec/models/metasploit/credential/public_spec.rb +1 -1
  49. data/spec/models/metasploit/credential/realm_spec.rb +9 -9
  50. data/spec/models/metasploit/credential/replayable_hash_spec.rb +1 -1
  51. data/spec/models/metasploit/credential/ssh_key_spec.rb +9 -27
  52. data/spec/models/metasploit/credential/username_spec.rb +1 -1
  53. data/spec/models/metasploit_data_models/search/visitor/relation_spec.rb +30 -30
  54. data/spec/support/shared/contexts/metasploit/credential/exporter/export_objects.rb +18 -18
  55. data/spec/support/shared/examples/core_validations.rb +38 -38
  56. metadata +18 -4
  57. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b12edd32b89a8ab5c21d6d91785ffce7af8db261
4
- data.tar.gz: 12d251ace48a0a59c4891a4048a595f0ec01283a
3
+ metadata.gz: 950ddd91d6906dedbf6f98c7a30cfa16a04f5e25
4
+ data.tar.gz: 7f3b132fdddba7305aa0287bbc667e1df710fe48
5
5
  SHA512:
6
- metadata.gz: 1f3fccee78faf5a28d5e48d112ce5c01085b11de53c43175654992f4e923f1260519b64bc66e37e9b757df0d44bcd31873623035784f7951f1afedef5cb72d47
7
- data.tar.gz: 4147945ccfe7f8ac5c0ea0335854b861d96c67c51ace00b6ecb601eedb0b23a62da869e5c3a705bfca712fe0d9069332df4892950bf2621def377e83dad1cd5b
6
+ metadata.gz: 464d1f60fd21a66c76d2c10a6eccd27600bfa03678c4e4a7e1209d4af28c113982207cd16f50d8190d41d9ee19dec28e80f249f5d56c2b0da87412258f2b0f68
7
+ data.tar.gz: bc40e57d9df8fb61cacc60c37039d9e3e1deea35bab29091809415a84c8e162f5717149650bb4878cdd786ed5b3c95a760a3ddf95d76539bc8934180a2e43cb5
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -29,12 +29,12 @@ class Metasploit::Credential::Engine < Rails::Engine
29
29
  after: 'factory_girl.set_factory_paths',
30
30
  # before metasploit_data_models because it prepends
31
31
  before: 'metasploit_data_models.prepend_factory_path' do
32
- if defined? FactoryGirl
32
+ if defined? FactoryBot
33
33
  relative_definition_file_path = config.generators.options[:factory_girl][:dir]
34
34
  definition_file_path = root.join(relative_definition_file_path)
35
35
 
36
36
  # unshift so that projects that use metasploit-credential can modify metasploit_credential_* factories
37
- FactoryGirl.definition_file_paths.unshift definition_file_path
37
+ FactoryBot.definition_file_paths.unshift definition_file_path
38
38
  end
39
39
  end
40
40
  end
@@ -3,13 +3,13 @@
3
3
  module Metasploit
4
4
  module Credential
5
5
  # VERSION is managed by GemRelease
6
- VERSION = '2.0.14'
7
-
6
+ VERSION = '3.0.0'
7
+
8
8
  # @return [String]
9
9
  #
10
10
  # returns the VERSION
11
11
  #
12
-
12
+
13
13
  def self.version
14
14
  VERSION
15
15
  end
@@ -1,6 +1,6 @@
1
1
  development: &pgsql
2
2
  adapter: postgresql
3
- database: metasploit-credential_development1
3
+ database: metasploit-credential_development0
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_test1
13
+ database: metasploit-credential_test0
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_blank_username,
3
3
  class: Metasploit::Credential::BlankUsername do
4
4
  initialize_with { Metasploit::Credential::BlankUsername.where(username: "").first_or_create }
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_core,
3
3
  class: Metasploit::Credential::Core do
4
4
  transient do
@@ -9,20 +9,20 @@ FactoryGirl.define do
9
9
 
10
10
  association :public, factory: :metasploit_credential_public
11
11
 
12
- origin { FactoryGirl.build(origin_factory) }
13
- private { FactoryGirl.build(private_factory) }
14
- realm { FactoryGirl.build(realm_factory) }
12
+ origin { FactoryBot.build(origin_factory) }
13
+ private { FactoryBot.build(private_factory) }
14
+ realm { FactoryBot.build(realm_factory) }
15
15
 
16
16
  workspace {
17
17
  case origin
18
18
  when Metasploit::Credential::Origin::Import
19
- FactoryGirl.build(:mdm_workspace)
19
+ FactoryBot.build(:mdm_workspace)
20
20
  when Metasploit::Credential::Origin::Manual
21
21
  user = origin.user
22
22
 
23
23
  # an admin can use workspaces it is not a member of
24
24
  if user.admin
25
- FactoryGirl.build(:mdm_workspace)
25
+ FactoryBot.build(:mdm_workspace)
26
26
  else
27
27
  origin.user.workspaces.sample
28
28
  end
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  long_form_headers = 'username,private_type,private_data,realm_key,realm_value,host_address,service_port,service_name,service_protocol,status,access_level,last_attempted_at'
3
3
  short_form_headers = 'username,private_data'
4
4
  login_status = Metasploit::Model::Login::Status::ALL.select {|x| x != Metasploit::Model::Login::Status::UNTRIED }.sample
@@ -7,7 +7,7 @@ FactoryGirl.define do
7
7
 
8
8
  factory :metasploit_credential_core_importer,
9
9
  class: Metasploit::Credential::Importer::Core do
10
- origin { FactoryGirl.build :metasploit_credential_origin_import }
10
+ origin { FactoryBot.build :metasploit_credential_origin_import }
11
11
  input { generate(:well_formed_csv_compliant_header) }
12
12
  end
13
13
 
@@ -1,9 +1,9 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_importer_pwdump,
3
3
  class: Metasploit::Credential::Importer::Pwdump do
4
4
  filename "pwdump-import-#{Time.now.to_i}"
5
- origin {FactoryGirl.build :metasploit_credential_origin_import }
6
- input { FactoryGirl.generate(:wellformed_pwdump) }
5
+ origin {FactoryBot.build :metasploit_credential_origin_import }
6
+ input { FactoryBot.generate(:wellformed_pwdump) }
7
7
  end
8
8
 
9
9
  # Represents a file that should do an error-free import
@@ -4,11 +4,11 @@
4
4
 
5
5
  require 'zip'
6
6
 
7
- FactoryGirl.define do
7
+ FactoryBot.define do
8
8
  factory :metasploit_credential_importer_zip,
9
9
  class: Metasploit::Credential::Importer::Zip do
10
10
  input { generate :metasploit_credential_importer_zip_file }
11
- origin {FactoryGirl.build :metasploit_credential_origin_import }
11
+ origin {FactoryBot.build :metasploit_credential_origin_import }
12
12
  end
13
13
 
14
14
 
@@ -29,12 +29,12 @@ FactoryGirl.define do
29
29
 
30
30
  # Create keys
31
31
  key_data = 5.times.collect do
32
- FactoryGirl.build(:metasploit_credential_ssh_key).data
32
+ FactoryBot.build(:metasploit_credential_ssh_key).data
33
33
  end
34
34
 
35
35
  # associate keys with usernames
36
36
  csv_hash = key_data.inject({}) do |hash, data|
37
- username = FactoryGirl.generate(:metasploit_credential_public_username)
37
+ username = FactoryBot.generate(:metasploit_credential_public_username)
38
38
  hash[username] = data
39
39
  hash
40
40
  end
@@ -77,12 +77,12 @@ FactoryGirl.define do
77
77
 
78
78
  # Create keys
79
79
  key_data = 5.times.collect do
80
- FactoryGirl.build(:metasploit_credential_ssh_key).data
80
+ FactoryBot.build(:metasploit_credential_ssh_key).data
81
81
  end
82
82
 
83
83
  # associate keys with usernames
84
84
  csv_hash = key_data.inject({}) do |hash, data|
85
- username = FactoryGirl.generate(:metasploit_credential_public_username)
85
+ username = FactoryBot.generate(:metasploit_credential_public_username)
86
86
  hash[username] = data
87
87
  hash
88
88
  end
@@ -121,12 +121,12 @@ FactoryGirl.define do
121
121
 
122
122
  # Create keys
123
123
  key_data = 5.times.collect do
124
- FactoryGirl.build(:metasploit_credential_ssh_key).data
124
+ FactoryBot.build(:metasploit_credential_ssh_key).data
125
125
  end
126
126
 
127
127
  # associate keys with usernames
128
128
  csv_hash = key_data.inject({}) do |hash, data|
129
- username = FactoryGirl.generate(:metasploit_credential_public_username)
129
+ username = FactoryBot.generate(:metasploit_credential_public_username)
130
130
  hash[username] = data
131
131
  hash
132
132
  end
@@ -1,9 +1,9 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_login,
3
3
  class: Metasploit::Credential::Login do
4
4
  transient do
5
5
  host {
6
- FactoryGirl.build(
6
+ FactoryBot.build(
7
7
  :mdm_host, workspace: workspace
8
8
  )
9
9
  }
@@ -20,7 +20,7 @@ FactoryGirl.define do
20
20
  end
21
21
  }
22
22
  service {
23
- FactoryGirl.build(
23
+ FactoryBot.build(
24
24
  :mdm_service,
25
25
  host: host
26
26
  )
@@ -1,6 +1,6 @@
1
1
  require 'digest/sha1'
2
2
 
3
- FactoryGirl.define do
3
+ FactoryBot.define do
4
4
  factory :metasploit_credential_nonreplayable_hash,
5
5
  class: Metasploit::Credential::NonreplayableHash,
6
6
  parent: :metasploit_credential_password_hash do
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  klass = Metasploit::Credential::NTLMHash
3
3
 
4
4
  factory :metasploit_credential_ntlm_hash,
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_origin_import,
3
3
  class: Metasploit::Credential::Origin::Import do
4
4
  association :task, factory: :mdm_task
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_origin_manual,
3
3
  class: Metasploit::Credential::Origin::Manual do
4
4
  association :user, factory: :mdm_user
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_origin_service,
3
3
  class: Metasploit::Credential::Origin::Service do
4
4
  transient do
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_origin_session,
3
3
  class: Metasploit::Credential::Origin::Session do
4
4
  association :session, factory: :mdm_session
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_password_hash,
3
3
  # no need to declare metasploit_credential_private as the :parent because :metasploit_credential_password_hash
4
4
  # uses its own data sequence to differentiate password hashes from other private data and #type is
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_password,
3
3
  # no need to declare metasploit_credential_private as the :parent because :metasploit_credential_password uses
4
4
  # its own data sequence to differentiate passwords from other private data and #type is automatically
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  klass = Metasploit::Credential::PostgresMD5
3
3
 
4
4
  factory :metasploit_credential_postgres_md5,
@@ -1,5 +1,5 @@
1
1
 
2
- FactoryGirl.define do
2
+ FactoryBot.define do
3
3
  factory :metasploit_credential_private,
4
4
  class: Metasploit::Credential::Private do
5
5
  data { generate :metasploit_credential_private_data }
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_public,
3
3
  class: Metasploit::Credential::Username do
4
4
  transient do
@@ -17,7 +17,7 @@ FactoryGirl.define do
17
17
  }
18
18
  end
19
19
 
20
- initialize_with { FactoryGirl.build(public_factory, username: username) }
20
+ initialize_with { FactoryBot.build(public_factory, username: username) }
21
21
  end
22
22
 
23
23
  sequence :metasploit_credential_public_username do |n|
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
 
3
3
  factory :metasploit_credential_realm,
4
4
  class: Metasploit::Credential::Realm do
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_replayable_hash,
3
3
  class: Metasploit::Credential::ReplayableHash,
4
4
  parent: :metasploit_credential_password_hash
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_ssh_key,
3
3
  class: Metasploit::Credential::SSHKey do
4
4
  transient do
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :metasploit_credential_username,
3
3
  class: Metasploit::Credential::Username do
4
4
  username { generate :metasploit_credential_public_username }
@@ -6,20 +6,20 @@ RSpec.describe Metasploit::Credential::Creation do
6
6
  end
7
7
  }
8
8
 
9
- let(:session) { FactoryGirl.create(:mdm_session) }
9
+ let(:session) { FactoryBot.create(:mdm_session) }
10
10
 
11
- let(:task) { FactoryGirl.create(:mdm_task, workspace: workspace)}
11
+ let(:task) { FactoryBot.create(:mdm_task, workspace: workspace)}
12
12
 
13
- let(:user) { FactoryGirl.create(:mdm_user)}
13
+ let(:user) { FactoryBot.create(:mdm_user)}
14
14
 
15
- let(:workspace) { FactoryGirl.create(:mdm_workspace) }
15
+ let(:workspace) { FactoryBot.create(:mdm_workspace) }
16
16
 
17
17
  subject(:test_object) { dummy_class.new }
18
-
18
+
19
19
  context '#create_credential' do
20
- let(:workspace) { FactoryGirl.create(:mdm_workspace) }
21
- let(:service) { FactoryGirl.create(:mdm_service, host: FactoryGirl.create(:mdm_host, workspace: workspace)) }
22
- let(:task) { FactoryGirl.create(:mdm_task, workspace: workspace) }
20
+ let(:workspace) { FactoryBot.create(:mdm_workspace) }
21
+ let(:service) { FactoryBot.create(:mdm_service, host: FactoryBot.create(:mdm_host, workspace: workspace)) }
22
+ let(:task) { FactoryBot.create(:mdm_task, workspace: workspace) }
23
23
  {
24
24
  cracked_password: Metasploit::Credential::Origin::CrackedPassword,
25
25
  import: Metasploit::Credential::Origin::Import,
@@ -28,26 +28,26 @@ RSpec.describe Metasploit::Credential::Creation do
28
28
  session: Metasploit::Credential::Origin::Session
29
29
  }.each_pair do |origin_type, origin_class|
30
30
  context "Origin[#{origin_type}], Public[Username], Private[Password]" do
31
- let(:service) { FactoryGirl.create(:mdm_service) }
31
+ let(:service) { FactoryBot.create(:mdm_service) }
32
32
  let!(:origin_data) {{
33
33
  cracked_password: {
34
- originating_core_id: FactoryGirl.create(
34
+ originating_core_id: FactoryBot.create(
35
35
  :metasploit_credential_core, workspace: workspace, origin_factory: :metasploit_credential_origin_manual).id
36
36
  },
37
37
  import: {
38
- filename: FactoryGirl.generate(:metasploit_credential_origin_import_filename)
38
+ filename: FactoryBot.generate(:metasploit_credential_origin_import_filename)
39
39
  },
40
40
  manual: {user_id: user.id},
41
41
  service: {
42
- module_fullname: "exploit/" + FactoryGirl.generate(:metasploit_credential_origin_service_reference_name),
42
+ module_fullname: "exploit/" + FactoryBot.generate(:metasploit_credential_origin_service_reference_name),
43
43
  address: service.host.address,
44
44
  port: service.port,
45
45
  service_name: service.name,
46
46
  protocol: service.proto
47
47
  },
48
48
  session: {
49
- session_id: FactoryGirl.create(:mdm_session, workspace: workspace, host: service.host),
50
- post_reference_name: FactoryGirl.generate(:metasploit_credential_origin_session_post_reference_name)
49
+ session_id: FactoryBot.create(:mdm_session, workspace: workspace, host: service.host),
50
+ post_reference_name: FactoryBot.generate(:metasploit_credential_origin_session_post_reference_name)
51
51
  }
52
52
  }}
53
53
  let(:credential_data) {{
@@ -129,7 +129,7 @@ RSpec.describe Metasploit::Credential::Creation do
129
129
  it 'creates a Public with username \'username\'' do
130
130
  expect{ test_object.create_credential(credential_data) }.to change{ Metasploit::Credential::Public.where(type: public_type).count }.by(1)
131
131
  end
132
- end
132
+ end
133
133
  end
134
134
  {
135
135
  password: "Metasploit::Credential::Password",
@@ -170,14 +170,14 @@ RSpec.describe Metasploit::Credential::Creation do
170
170
  it 'creates a Public with username \'username\'' do
171
171
  expect{ test_object.create_credential(credential_data) }.to change{ Metasploit::Credential::Public.where(username: 'admin').count }.by(1)
172
172
  end
173
- end
173
+ end
174
174
  end
175
175
  end
176
-
176
+
177
177
  context '#create_credential_and_login' do
178
- let(:workspace) { FactoryGirl.create(:mdm_workspace) }
179
- let(:service) { FactoryGirl.create(:mdm_service, host: FactoryGirl.create(:mdm_host, workspace: workspace)) }
180
- let(:task) { FactoryGirl.create(:mdm_task, workspace: workspace) }
178
+ let(:workspace) { FactoryBot.create(:mdm_workspace) }
179
+ let(:service) { FactoryBot.create(:mdm_service, host: FactoryBot.create(:mdm_host, workspace: workspace)) }
180
+ let(:task) { FactoryBot.create(:mdm_task, workspace: workspace) }
181
181
  {
182
182
  cracked_password: Metasploit::Credential::Origin::CrackedPassword,
183
183
  import: Metasploit::Credential::Origin::Import,
@@ -188,23 +188,23 @@ RSpec.describe Metasploit::Credential::Creation do
188
188
  context "Origin[#{origin_type}], Public[Username], Private[Password]" do
189
189
  let!(:origin_data) {{
190
190
  cracked_password: {
191
- originating_core_id: FactoryGirl.create(
191
+ originating_core_id: FactoryBot.create(
192
192
  :metasploit_credential_core, workspace: workspace, origin_factory: :metasploit_credential_origin_manual).id
193
193
  },
194
194
  import: {
195
- filename: FactoryGirl.generate(:metasploit_credential_origin_import_filename)
195
+ filename: FactoryBot.generate(:metasploit_credential_origin_import_filename)
196
196
  },
197
197
  manual: {user_id: user.id},
198
198
  service: {
199
- module_fullname: "exploit/" + FactoryGirl.generate(:metasploit_credential_origin_service_reference_name),
199
+ module_fullname: "exploit/" + FactoryBot.generate(:metasploit_credential_origin_service_reference_name),
200
200
  address: service.host.address,
201
201
  port: service.port,
202
202
  service_name: service.name,
203
203
  protocol: service.proto
204
204
  },
205
205
  session: {
206
- session_id: FactoryGirl.create(:mdm_session, workspace: workspace, host: service.host),
207
- post_reference_name: FactoryGirl.generate(:metasploit_credential_origin_session_post_reference_name)
206
+ session_id: FactoryBot.create(:mdm_session, workspace: workspace, host: service.host),
207
+ post_reference_name: FactoryBot.generate(:metasploit_credential_origin_session_post_reference_name)
208
208
  }
209
209
  }}
210
210
  let(:login_data) {{
@@ -281,7 +281,7 @@ RSpec.describe Metasploit::Credential::Creation do
281
281
  end
282
282
  end
283
283
  end
284
-
284
+
285
285
  {
286
286
  "Metasploit::Credential::Username" => 'admin',
287
287
  "Metasploit::Credential::BlankUsername" => ''
@@ -314,7 +314,7 @@ RSpec.describe Metasploit::Credential::Creation do
314
314
  it 'creates a Login with status for the service' do
315
315
  expect{ test_object.create_credential_and_login(login_data) }.to change{ Metasploit::Credential::Login.where(service_id: service.id, status: login_data[:status]).count }.by(1)
316
316
  end
317
- end
317
+ end
318
318
  end
319
319
  {
320
320
  password: "Metasploit::Credential::Password",
@@ -364,19 +364,19 @@ RSpec.describe Metasploit::Credential::Creation do
364
364
  it 'creates a Login with status for the service' do
365
365
  expect{ test_object.create_credential_and_login(login_data) }.to change{ Metasploit::Credential::Login.where(service_id: service.id, status: login_data[:status]).count }.by(1)
366
366
  end
367
- end
367
+ end
368
368
  end
369
369
  end
370
370
 
371
371
  context '#create_cracked_credential' do
372
- let(:public) { FactoryGirl.create(:metasploit_credential_public) }
373
- let(:hash) { FactoryGirl.create(:metasploit_credential_nonreplayable_hash) }
374
- let(:origin) { FactoryGirl.create(:metasploit_credential_origin_manual) }
372
+ let(:public) { FactoryBot.create(:metasploit_credential_public) }
373
+ let(:hash) { FactoryBot.create(:metasploit_credential_nonreplayable_hash) }
374
+ let(:origin) { FactoryBot.create(:metasploit_credential_origin_manual) }
375
375
  let(:password) { "omgwtfbbq" }
376
- let(:realm) { FactoryGirl.create(:metasploit_credential_realm) }
376
+ let(:realm) { FactoryBot.create(:metasploit_credential_realm) }
377
377
 
378
378
  let!(:old_core) do
379
- FactoryGirl.create(:metasploit_credential_core, public: public, private: hash, realm: realm, workspace: workspace, origin: origin)
379
+ FactoryBot.create(:metasploit_credential_core, public: public, private: hash, realm: realm, workspace: workspace, origin: origin)
380
380
  end
381
381
 
382
382
  it 'creates a Core' do
@@ -403,11 +403,11 @@ RSpec.describe Metasploit::Credential::Creation do
403
403
  end
404
404
 
405
405
  context 'when previous core has logins' do
406
- let(:host) { FactoryGirl.create(:mdm_host, workspace: workspace) }
407
- let(:service) { FactoryGirl.create(:mdm_service, host: host) }
406
+ let(:host) { FactoryBot.create(:mdm_host, workspace: workspace) }
407
+ let(:service) { FactoryBot.create(:mdm_service, host: host) }
408
408
 
409
409
  before do
410
- FactoryGirl.create(:metasploit_credential_login,
410
+ FactoryBot.create(:metasploit_credential_login,
411
411
  service: service,
412
412
  core: old_core,
413
413
  status: Metasploit::Model::Login::Status::UNTRIED
@@ -545,7 +545,7 @@ RSpec.describe Metasploit::Credential::Creation do
545
545
  workspace_id: workspace.id,
546
546
  origin_type: :service
547
547
  }
548
- FactoryGirl.create(:mdm_host, address: opts[:address], workspace_id: opts[:workspace_id])
548
+ FactoryBot.create(:mdm_host, address: opts[:address], workspace_id: opts[:workspace_id])
549
549
  expect { test_object.create_credential_origin_service(opts)}.to_not change{Mdm::Host.count }
550
550
  end
551
551
  end
@@ -576,8 +576,8 @@ RSpec.describe Metasploit::Credential::Creation do
576
576
  workspace_id: workspace.id,
577
577
  origin_type: :service
578
578
  }
579
- host = FactoryGirl.create(:mdm_host, address: opts[:address], workspace_id: opts[:workspace_id])
580
- FactoryGirl.create(:mdm_service, host_id: host.id, port: opts[:port], proto: opts[:protocol])
579
+ host = FactoryBot.create(:mdm_host, address: opts[:address], workspace_id: opts[:workspace_id])
580
+ FactoryBot.create(:mdm_service, host_id: host.id, port: opts[:port], proto: opts[:protocol])
581
581
  expect { test_object.create_credential_origin_service(opts)}.to_not change{Mdm::Service.count }
582
582
  end
583
583
  end
@@ -822,12 +822,12 @@ RSpec.describe Metasploit::Credential::Creation do
822
822
  end
823
823
 
824
824
  context '#create_credential_core' do
825
- let(:origin) { FactoryGirl.create(:metasploit_credential_origin_service) }
826
- let(:public) { FactoryGirl.create(:metasploit_credential_public)}
827
- let(:private) { FactoryGirl.create(:metasploit_credential_password)}
828
- let(:realm) { FactoryGirl.create(:metasploit_credential_realm)}
825
+ let(:origin) { FactoryBot.create(:metasploit_credential_origin_service) }
826
+ let(:public) { FactoryBot.create(:metasploit_credential_public)}
827
+ let(:private) { FactoryBot.create(:metasploit_credential_password)}
828
+ let(:realm) { FactoryBot.create(:metasploit_credential_realm)}
829
829
  let(:workspace) { origin.service.host.workspace }
830
- let(:task) { FactoryGirl.create(:mdm_task, workspace: workspace) }
830
+ let(:task) { FactoryBot.create(:mdm_task, workspace: workspace) }
831
831
 
832
832
  it 'raises a KeyError if any required option is missing' do
833
833
  opts = {}
@@ -865,10 +865,10 @@ RSpec.describe Metasploit::Credential::Creation do
865
865
  end
866
866
 
867
867
  context '#create_credential_login' do
868
- let(:workspace) { FactoryGirl.create(:mdm_workspace) }
869
- let(:service) { FactoryGirl.create(:mdm_service, host: FactoryGirl.create(:mdm_host, workspace: workspace)) }
870
- let(:task) { FactoryGirl.create(:mdm_task, workspace: workspace) }
871
- let(:credential_core) { FactoryGirl.create(:metasploit_credential_core_manual, workspace: workspace) }
868
+ let(:workspace) { FactoryBot.create(:mdm_workspace) }
869
+ let(:service) { FactoryBot.create(:mdm_service, host: FactoryBot.create(:mdm_host, workspace: workspace)) }
870
+ let(:task) { FactoryBot.create(:mdm_task, workspace: workspace) }
871
+ let(:credential_core) { FactoryBot.create(:metasploit_credential_core_manual, workspace: workspace) }
872
872
 
873
873
  it 'creates a Metasploit::Credential::Login' do
874
874
  login_data = {
@@ -905,7 +905,7 @@ RSpec.describe Metasploit::Credential::Creation do
905
905
  context '#invalidate_login' do
906
906
 
907
907
  context 'when an untried login exists' do
908
- let(:untried_login) { FactoryGirl.create(:metasploit_credential_login, status: Metasploit::Model::Login::Status::UNTRIED)}
908
+ let(:untried_login) { FactoryBot.create(:metasploit_credential_login, status: Metasploit::Model::Login::Status::UNTRIED)}
909
909
 
910
910
  let(:opts) {{
911
911
  address: untried_login.service.host.address.to_s,
@@ -928,16 +928,16 @@ RSpec.describe Metasploit::Credential::Creation do
928
928
 
929
929
  context 'when a login exists on the same service for a different credential' do
930
930
  let(:other_origin) {
931
- FactoryGirl.create(:metasploit_credential_origin_manual)
931
+ FactoryBot.create(:metasploit_credential_origin_manual)
932
932
  }
933
933
  let(:other_core) {
934
- FactoryGirl.create(:metasploit_credential_core,
934
+ FactoryBot.create(:metasploit_credential_core,
935
935
  workspace: untried_login.core.workspace,
936
936
  origin: other_origin
937
937
  )
938
938
  }
939
939
  let(:other_login) {
940
- FactoryGirl.create(:metasploit_credential_login,
940
+ FactoryBot.create(:metasploit_credential_login,
941
941
  status: Metasploit::Model::Login::Status::UNTRIED,
942
942
  service: untried_login.service,
943
943
  core: other_core