metasploit-credential 0.14.8 → 1.0.0.pre.rails.pre.4.0

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 +4 -4
  2. data/Rakefile +0 -0
  3. data/app/concerns/mdm/task/metasploit_credential_core.rb +2 -2
  4. data/app/concerns/mdm/task/metasploit_credential_login.rb +2 -2
  5. data/app/models/metasploit/credential/core.rb +13 -4
  6. data/app/models/metasploit/credential/login.rb +3 -11
  7. data/app/models/metasploit/credential/origin/import.rb +0 -7
  8. data/app/models/metasploit/credential/origin/service.rb +0 -6
  9. data/app/models/metasploit/credential/origin/session.rb +0 -6
  10. data/app/models/metasploit/credential/private.rb +0 -6
  11. data/app/models/metasploit/credential/public.rb +0 -6
  12. data/app/models/metasploit/credential/realm.rb +0 -7
  13. data/db/migrate/20140331173835_create_metasploit_credential_publics.rb +1 -1
  14. data/db/migrate/20140407212345_create_metasploit_credential_privates.rb +1 -1
  15. data/db/migrate/20140410132401_create_metasploit_credential_realms.rb +1 -1
  16. data/db/migrate/20140410191213_create_metasploit_credential_origin_manuals.rb +1 -1
  17. data/db/migrate/20140410205410_create_metasploit_credential_origin_imports.rb +1 -1
  18. data/db/migrate/20140411142102_create_metasploit_credential_origin_sessions.rb +1 -1
  19. data/db/migrate/20140411205325_create_metasploit_credential_origin_services.rb +1 -1
  20. data/db/migrate/20140414192550_create_metasploit_credential_cores.rb +1 -1
  21. data/db/migrate/20140417140933_create_metasploit_credential_logins.rb +1 -1
  22. data/db/migrate/20140605173747_create_metasploit_credential_origin_cracked_passwords.rb +1 -1
  23. data/lib/metasploit/credential/engine.rb +1 -1
  24. data/lib/metasploit/credential/exporter/core.rb +1 -1
  25. data/lib/metasploit/credential/exporter/pwdump.rb +1 -1
  26. data/lib/metasploit/credential/version.rb +6 -6
  27. data/spec/dummy/config/application.rb +2 -10
  28. data/spec/dummy/config/database.yml +9 -14
  29. data/spec/dummy/config/environments/development.rb +4 -14
  30. data/spec/dummy/config/environments/production.rb +6 -3
  31. data/spec/dummy/config/environments/test.rb +9 -7
  32. data/spec/dummy/db/structure.sql +24 -19
  33. data/spec/factories/metasploit/credential/cores.rb +5 -5
  34. data/spec/factories/metasploit/credential/logins.rb +1 -1
  35. data/spec/factories/metasploit/credential/origin/services.rb +1 -1
  36. data/spec/factories/metasploit/credential/password_hashes.rb +2 -2
  37. data/spec/factories/metasploit/credential/publics.rb +1 -1
  38. data/spec/factories/metasploit/credential/ssh_keys.rb +3 -3
  39. data/spec/lib/metasploit/credential/creation_spec.rb +1 -1
  40. data/spec/lib/metasploit/credential/exporter/core_spec.rb +3 -4
  41. data/spec/lib/metasploit/credential/exporter/pwdump_spec.rb +1 -1
  42. data/spec/lib/metasploit/credential/migrator_spec.rb +9 -15
  43. data/spec/lib/metasploit/credential/version_spec.rb +1 -3
  44. data/spec/models/metasploit/credential/blank_username_spec.rb +0 -8
  45. data/spec/models/metasploit/credential/login_spec.rb +1 -13
  46. data/spec/models/metasploit/credential/origin/import_spec.rb +0 -7
  47. data/spec/models/metasploit/credential/origin/service_spec.rb +0 -8
  48. data/spec/models/metasploit/credential/origin/session_spec.rb +0 -8
  49. data/spec/models/metasploit/credential/private_spec.rb +1 -9
  50. data/spec/models/metasploit/credential/public_spec.rb +0 -6
  51. data/spec/models/metasploit/credential/realm_spec.rb +2 -8
  52. data/spec/models/metasploit/credential/username_spec.rb +0 -6
  53. data/spec/support/shared/examples/timestamp_database_column.rb +2 -2
  54. metadata +17 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 895352ea1fdface54872f23f7ef803a5733cd3c2
4
- data.tar.gz: ff8bb3e6f773ec263c99459fe8618db96fa66855
3
+ metadata.gz: 1efca2efc37f91d52ec2143adcd8eee2e159486d
4
+ data.tar.gz: 73a2bf5fd644056094597f10bb6a63908b893681
5
5
  SHA512:
6
- metadata.gz: f13f43bae66ba9283939559732ffef33303215e06146ee78ccb0ba14fb1c8d7b1cc3f9be1fe424ba519ef499cab9d666ac877cb30ff17b19d1183b13d54962a7
7
- data.tar.gz: fa0396f86e9f469da28eb4875c57f70719d1b0aa177cde5bc06b69848b53438b80414ed10b4522ead6c732a1b2ea53778f11769259b8a703e158851b7e162bf5
6
+ metadata.gz: fea97168a4a19a01980bedfa046d5be7766eb36f35c2910e604db4d531d5d7867a437b112241325f0be6dc35c567219abff722d517ca7e468154e4af47598d38
7
+ data.tar.gz: a07277c1422761b87560288b3f77829376603338640d3f8e58a2f609495d3b0bad004a189a493de1d740f79b696faa254f46e34afb5100eea22cc4285db33b9e
data/Rakefile CHANGED
File without changes
@@ -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
16
  class_name: "Metasploit::Credential::Core",
16
- join_table: "credential_cores_tasks",
17
- uniq: true
17
+ join_table: "credential_cores_tasks"
18
18
  end
19
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
16
  class_name: "Metasploit::Credential::Login",
16
- join_table: "credential_logins_tasks",
17
- uniq: true
17
+ join_table: "credential_logins_tasks"
18
18
  end
19
19
  end
@@ -16,9 +16,9 @@ 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
20
  class_name: "Mdm::Task",
20
- join_table: "credential_cores_tasks",
21
- uniq: true
21
+ join_table: "credential_cores_tasks"
22
22
 
23
23
  # @!attribute logins
24
24
  # The {Metasploit::Credential::Login logins} using this core credential to log into a service.
@@ -277,9 +277,18 @@ class Metasploit::Credential::Core < ActiveRecord::Base
277
277
  # @param host_id [Integer]
278
278
  # @return [String]
279
279
  def self.cores_from_host_sql(host_id)
280
+ left = origin_service_host_id(host_id).ast
281
+ right = origin_session_host_id(host_id).ast
282
+
283
+ # TODO: Kill with fire. ActiveRecord 4.0.x leaks order/limit scopes
284
+ # We strip out order/limit statement from the subquery since it's invalid SQL
285
+ # https://github.com/rails/rails/issues/14003
286
+ left.orders = []
287
+ right.orders = []
288
+
280
289
  Arel::Nodes::Union.new(
281
- origin_service_host_id(host_id).ast,
282
- origin_session_host_id(host_id).ast
290
+ left,
291
+ right
283
292
  ).to_sql
284
293
  end
285
294
 
@@ -12,10 +12,10 @@ class Metasploit::Credential::Login < ActiveRecord::Base
12
12
  # The {Mdm::Task tasks} using this to track what tasks interacted with a given core.
13
13
  #
14
14
  # @return [ActiveRecord::Relation<Mdm::Task>]
15
- has_and_belongs_to_many :tasks,
15
+ has_and_belongs_to_many :tasks,
16
+ -> { uniq },
16
17
  class_name: "Mdm::Task",
17
- join_table: "credential_logins_tasks",
18
- uniq: true
18
+ join_table: "credential_logins_tasks"
19
19
 
20
20
  # @!attribute core
21
21
  # The {Metasploit::Credential::Core core credential} used to authenticate to {#service}.
@@ -94,14 +94,6 @@ class Metasploit::Credential::Login < ActiveRecord::Base
94
94
 
95
95
  before_validation :blank_to_nil
96
96
 
97
- #
98
- # Mass Assignment Security
99
- #
100
-
101
- attr_accessible :access_level
102
- attr_accessible :last_attempted_at
103
- attr_accessible :status
104
-
105
97
  #
106
98
  #
107
99
  # Search
@@ -42,12 +42,5 @@ class Metasploit::Credential::Origin::Import < ActiveRecord::Base
42
42
  # @return [DateTime]
43
43
 
44
44
 
45
- #
46
- # Mass Assignment Security
47
- #
48
-
49
- attr_accessible :filename
50
-
51
-
52
45
  Metasploit::Concern.run(self)
53
46
  end
@@ -45,12 +45,6 @@ class Metasploit::Credential::Origin::Service < ActiveRecord::Base
45
45
  # @return [String] `'auxiliary/<Mdm::Module::Detail#refname>'` if an auxiliary module was used.
46
46
  # @return [String] `'exploit/<Mdm::Module::Detail#refname>'` if an exploit module was used.
47
47
 
48
- #
49
- # Mass Assignment Security
50
- #
51
-
52
- attr_accessible :module_full_name
53
-
54
48
  #
55
49
  # Validations
56
50
  #
@@ -36,12 +36,6 @@ class Metasploit::Credential::Origin::Session < ActiveRecord::Base
36
36
  # @return [String] a `Mdm::Module::Detail#refname` for a `Mdm::Module::Detail` where `Mdm::Module:Detail#mtype` is
37
37
  # `'post'.`
38
38
 
39
- #
40
- # Mass Assignment Security
41
- #
42
-
43
- attr_accessible :post_reference_name
44
-
45
39
  #
46
40
  # Validations
47
41
  #
@@ -50,12 +50,6 @@ class Metasploit::Credential::Private < ActiveRecord::Base
50
50
  #
51
51
  # @return [DateTime]
52
52
 
53
- #
54
- # Mass Assignment Security
55
- #
56
-
57
- attr_accessible :data
58
-
59
53
  #
60
54
  #
61
55
  # Search
@@ -35,12 +35,6 @@ class Metasploit::Credential::Public < ActiveRecord::Base
35
35
  #
36
36
  # @return [String]
37
37
 
38
- #
39
- # Mass-Assignment Security
40
- #
41
-
42
- attr_accessible :username
43
-
44
38
  #
45
39
  #
46
40
  # Search
@@ -49,13 +49,6 @@ class Metasploit::Credential::Realm < ActiveRecord::Base
49
49
  #
50
50
  # @return [String]
51
51
 
52
- #
53
- # Mass Assignment Security
54
- #
55
-
56
- attr_accessible :key
57
- attr_accessible :value
58
-
59
52
  #
60
53
  # Search
61
54
  #
@@ -11,7 +11,7 @@ class CreateMetasploitCredentialPublics < ActiveRecord::Migration
11
11
  # Timestamps
12
12
  #
13
13
 
14
- t.timestamps
14
+ t.timestamps null: false
15
15
  end
16
16
 
17
17
  change_table :metasploit_credential_publics do |t|
@@ -17,7 +17,7 @@ class CreateMetasploitCredentialPrivates < ActiveRecord::Migration
17
17
  # Timestamps
18
18
  #
19
19
 
20
- t.timestamps
20
+ t.timestamps null: false
21
21
  end
22
22
 
23
23
  change_table :metasploit_credential_privates do |t|
@@ -4,7 +4,7 @@ class CreateMetasploitCredentialRealms < ActiveRecord::Migration
4
4
  t.string :key, null: false
5
5
  t.string :value, null: false
6
6
 
7
- t.timestamps
7
+ t.timestamps null: false
8
8
  end
9
9
  end
10
10
  end
@@ -11,7 +11,7 @@ class CreateMetasploitCredentialOriginManuals < ActiveRecord::Migration
11
11
  # Timestamps
12
12
  #
13
13
 
14
- t.timestamps
14
+ t.timestamps null: false
15
15
  end
16
16
 
17
17
  #
@@ -17,7 +17,7 @@ class CreateMetasploitCredentialOriginImports < ActiveRecord::Migration
17
17
  # Timestamps
18
18
  #
19
19
 
20
- t.timestamps
20
+ t.timestamps null: false
21
21
  end
22
22
 
23
23
  #
@@ -17,7 +17,7 @@ class CreateMetasploitCredentialOriginSessions < ActiveRecord::Migration
17
17
  # Timestamps
18
18
  #
19
19
 
20
- t.timestamps
20
+ t.timestamps null: false
21
21
  end
22
22
 
23
23
  #
@@ -17,7 +17,7 @@ class CreateMetasploitCredentialOriginServices < ActiveRecord::Migration
17
17
  # Timestamps
18
18
  #
19
19
 
20
- t.timestamps
20
+ t.timestamps null: false
21
21
  end
22
22
 
23
23
  #
@@ -21,7 +21,7 @@ class CreateMetasploitCredentialCores < ActiveRecord::Migration
21
21
  # Timestamps
22
22
  #
23
23
 
24
- t.timestamps
24
+ t.timestamps null: false
25
25
  end
26
26
 
27
27
  change_table :metasploit_credential_cores do |t|
@@ -20,7 +20,7 @@ class CreateMetasploitCredentialLogins < ActiveRecord::Migration
20
20
  #
21
21
 
22
22
  t.datetime :last_attempted_at, null: true
23
- t.timestamps
23
+ t.timestamps null: false
24
24
  end
25
25
 
26
26
  change_table :metasploit_credential_logins do |t|
@@ -13,7 +13,7 @@ class CreateMetasploitCredentialOriginCrackedPasswords < ActiveRecord::Migration
13
13
  # Timestamps
14
14
  #
15
15
 
16
- t.timestamps
16
+ t.timestamps null: false
17
17
  end
18
18
 
19
19
  #
@@ -12,7 +12,7 @@ class Metasploit::Credential::Engine < Rails::Engine
12
12
 
13
13
  # Remove ActiveSupport::Dependencies loading paths to save time during constant resolution and to ensure that
14
14
  # metasploit_data_models is properly declaring all autoloads and not falling back on ActiveSupport::Dependencies
15
- config.paths.each_value do |path|
15
+ config.paths.values.each do |path|
16
16
  path.skip_autoload!
17
17
  path.skip_autoload_once!
18
18
  path.skip_eager_load!
@@ -130,7 +130,7 @@ class Metasploit::Credential::Exporter::Core
130
130
  def line_for_login(login)
131
131
  result = line_for_core(login.core)
132
132
  result.merge({
133
- host_address: login.service.host.address,
133
+ host_address: login.service.host.address.to_s,
134
134
  service_port: login.service.port,
135
135
  service_name: login.service.try(:name),
136
136
  service_protocol: login.service.proto,
@@ -137,7 +137,7 @@ class Metasploit::Credential::Exporter::Pwdump
137
137
  # @return [String]
138
138
  def format_service_for_login(login)
139
139
  service = login.service
140
- address = service.host.address
140
+ address = service.host.address.to_s
141
141
  "#{address}:#{service.port}/#{service.proto} (#{service.name})"
142
142
  end
143
143
 
@@ -5,13 +5,13 @@ module Metasploit
5
5
  # Holds components of {VERSION} as defined by {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0}.
6
6
  module Version
7
7
  # The major version number.
8
- MAJOR = 0
8
+ MAJOR = 1
9
9
  # The minor version number, scoped to the {MAJOR} version number.
10
- MINOR = 14
11
- # The patch number, scoped to the {MAJOR} and {MINOR} version number.
12
- PATCH = 8
13
- # The prerelease version, scoped to the {MAJOR}, {MINOR}, and {PATCH} version number.
14
- # PRERELEASE =
10
+ MINOR = 0
11
+ # The patch number, scoped to the {MINOR} version number.
12
+ PATCH = 0
13
+ # the prerelease identifier
14
+ PRERELEASE = 'rails-4.0'
15
15
 
16
16
  # The full version string, including the {MAJOR}, {MINOR}, {PATCH}, and optionally, the {PRERELEASE} in the
17
17
  # {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
@@ -3,10 +3,8 @@ require File.expand_path('../boot', __FILE__)
3
3
  # Pick the frameworks you want:
4
4
  require "active_record/railtie"
5
5
  require "action_controller/railtie"
6
- require "action_mailer/railtie"
7
- require "active_resource/railtie"
8
- require "sprockets/railtie"
9
- # require "rails/test_unit/railtie"
6
+ # require "action_mailer/railtie"
7
+ ## require "sprockets/railtie"
10
8
 
11
9
  Bundler.require(*Rails.groups)
12
10
  require "metasploit/credential"
@@ -54,12 +52,6 @@ module Dummy
54
52
  # like if you have constraints or database-specific column types
55
53
  config.active_record.schema_format = :sql
56
54
 
57
- # Enforce whitelist mode for mass assignment.
58
- # This will create an empty whitelist of attributes available for mass-assignment for all models
59
- # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
60
- # parameters by using an attr_accessible or attr_protected declaration.
61
- config.active_record.whitelist_attributes = true
62
-
63
55
  # Enable the asset pipeline
64
56
  config.assets.enabled = true
65
57
 
@@ -1,22 +1,17 @@
1
- # Please only use postgresql bound to a TCP port.
2
- defaults: &defaults
1
+ development: &pgsql
3
2
  adapter: postgresql
4
- username: msf
3
+ database: metasploit_credential_development
4
+ username: lance
5
5
  password: pass123
6
6
  host: localhost
7
7
  port: 5432
8
- pool: 50
8
+ pool: 15
9
9
  timeout: 5
10
-
11
- development:
12
- database: metasploit_cr_dev
13
- <<: *defaults
14
-
15
- test:
16
- database: metasploit_cr_test
17
10
  min_messages: WARNING
18
- <<: *defaults
19
11
 
20
12
  production:
21
- database: metasploit_cr_prod
22
- <<: *defaults
13
+ <<: *pgsql
14
+
15
+ test:
16
+ <<: *pgsql
17
+ database: metasploit_credential_test
@@ -6,29 +6,19 @@ Dummy::Application.configure do
6
6
  # since you don't have to restart the web server when you make code changes.
7
7
  config.cache_classes = false
8
8
 
9
- # Log error messages when you accidentally call methods on nil.
10
- config.whiny_nils = true
9
+ # Do not eager load code on boot.
10
+ config.eager_load = false
11
11
 
12
12
  # Show full error reports and disable caching
13
13
  config.consider_all_requests_local = true
14
14
  config.action_controller.perform_caching = false
15
15
 
16
- # Don't care if the mailer can't send
17
- config.action_mailer.raise_delivery_errors = false
16
+ # # Don't care if the mailer can't send
17
+ # config.action_mailer.raise_delivery_errors = false
18
18
 
19
19
  # Print deprecation notices to the Rails logger
20
20
  config.active_support.deprecation = :log
21
21
 
22
- # Only use best-standards-support built into browsers
23
- config.action_dispatch.best_standards_support = :builtin
24
-
25
- # Raise exception on mass assignment protection for Active Record models
26
- config.active_record.mass_assignment_sanitizer = :strict
27
-
28
- # Log the query plan for queries taking more than this (works
29
- # with SQLite, MySQL, and PostgreSQL)
30
- config.active_record.auto_explain_threshold_in_seconds = 0.5
31
-
32
22
  # Do not compress assets
33
23
  config.assets.compress = false
34
24
 
@@ -3,6 +3,12 @@ Dummy::Application.configure do
3
3
 
4
4
  # Code is not reloaded between requests
5
5
  config.cache_classes = true
6
+
7
+ # Eager load code on boot. This eager loads most of Rails and
8
+ # your application in memory, allowing both thread web servers
9
+ # and those relying on copy on write to perform better.
10
+ # Rake tasks automatically ignore this option for performance.
11
+ config.eager_load = true
6
12
 
7
13
  # Full error reports are disabled and caching is turned on
8
14
  config.consider_all_requests_local = false
@@ -61,7 +67,4 @@ Dummy::Application.configure do
61
67
  # Send deprecation notices to registered listeners
62
68
  config.active_support.deprecation = :notify
63
69
 
64
- # Log the query plan for queries taking more than this (works
65
- # with SQLite, MySQL, and PostgreSQL)
66
- # config.active_record.auto_explain_threshold_in_seconds = 0.5
67
70
  end
@@ -7,6 +7,11 @@ Dummy::Application.configure do
7
7
  # and recreated between test runs. Don't rely on the data there!
8
8
  config.cache_classes = true
9
9
 
10
+ # Do not eager load code on boot. This avoids loading your whole application
11
+ # just for the purpose of running a single test. If you are using a tool that
12
+ # preloads Rails for running tests, you may have to set it to true.
13
+ config.eager_load = false
14
+
10
15
  # Configure static asset server for tests with Cache-Control for performance
11
16
  config.serve_static_assets = true
12
17
  config.static_cache_control = "public, max-age=3600"
@@ -22,13 +27,10 @@ Dummy::Application.configure do
22
27
  # Disable request forgery protection in test environment
23
28
  config.action_controller.allow_forgery_protection = false
24
29
 
25
- # Tell Action Mailer not to deliver emails to the real world.
26
- # The :test delivery method accumulates sent emails in the
27
- # ActionMailer::Base.deliveries array.
28
- config.action_mailer.delivery_method = :test
29
-
30
- # Raise exception on mass assignment protection for Active Record models
31
- config.active_record.mass_assignment_sanitizer = :strict
30
+ # # Tell Action Mailer not to deliver emails to the real world.
31
+ # # The :test delivery method accumulates sent emails in the
32
+ # # ActionMailer::Base.deliveries array.
33
+ # config.action_mailer.delivery_method = :test
32
34
 
33
35
  # Print deprecation notices to the stderr
34
36
  config.active_support.deprecation = :stderr
@@ -3,6 +3,7 @@
3
3
  --
4
4
 
5
5
  SET statement_timeout = 0;
6
+ SET lock_timeout = 0;
6
7
  SET client_encoding = 'UTF8';
7
8
  SET standard_conforming_strings = on;
8
9
  SET check_function_bodies = false;
@@ -3326,17 +3327,17 @@ CREATE INDEX index_automatic_exploitation_match_sets_on_workspace_id ON automati
3326
3327
 
3327
3328
 
3328
3329
  --
3329
- -- Name: index_automatic_exploitation_matches_on_module_fullname; Type: INDEX; Schema: public; Owner: -; Tablespace:
3330
+ -- Name: index_automatic_exploitation_matches_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3330
3331
  --
3331
3332
 
3332
- CREATE INDEX index_automatic_exploitation_matches_on_module_fullname ON automatic_exploitation_matches USING btree (module_fullname);
3333
+ CREATE INDEX index_automatic_exploitation_matches_on_module_detail_id ON automatic_exploitation_matches USING btree (module_detail_id);
3333
3334
 
3334
3335
 
3335
3336
  --
3336
- -- Name: index_automatic_exploitation_matches_on_ref_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3337
+ -- Name: index_automatic_exploitation_matches_on_module_fullname; Type: INDEX; Schema: public; Owner: -; Tablespace:
3337
3338
  --
3338
3339
 
3339
- CREATE INDEX index_automatic_exploitation_matches_on_ref_id ON automatic_exploitation_matches USING btree (module_detail_id);
3340
+ CREATE INDEX index_automatic_exploitation_matches_on_module_fullname ON automatic_exploitation_matches USING btree (module_fullname);
3340
3341
 
3341
3342
 
3342
3343
  --
@@ -3494,24 +3495,24 @@ CREATE UNIQUE INDEX index_metasploit_credential_realms_on_key_and_value ON metas
3494
3495
 
3495
3496
 
3496
3497
  --
3497
- -- Name: index_module_actions_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3498
+ -- Name: index_module_actions_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3498
3499
  --
3499
3500
 
3500
- CREATE INDEX index_module_actions_on_module_detail_id ON module_actions USING btree (detail_id);
3501
+ CREATE INDEX index_module_actions_on_detail_id ON module_actions USING btree (detail_id);
3501
3502
 
3502
3503
 
3503
3504
  --
3504
- -- Name: index_module_archs_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3505
+ -- Name: index_module_archs_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3505
3506
  --
3506
3507
 
3507
- CREATE INDEX index_module_archs_on_module_detail_id ON module_archs USING btree (detail_id);
3508
+ CREATE INDEX index_module_archs_on_detail_id ON module_archs USING btree (detail_id);
3508
3509
 
3509
3510
 
3510
3511
  --
3511
- -- Name: index_module_authors_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3512
+ -- Name: index_module_authors_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3512
3513
  --
3513
3514
 
3514
- CREATE INDEX index_module_authors_on_module_detail_id ON module_authors USING btree (detail_id);
3515
+ CREATE INDEX index_module_authors_on_detail_id ON module_authors USING btree (detail_id);
3515
3516
 
3516
3517
 
3517
3518
  --
@@ -3543,24 +3544,24 @@ CREATE INDEX index_module_details_on_refname ON module_details USING btree (refn
3543
3544
 
3544
3545
 
3545
3546
  --
3546
- -- Name: index_module_mixins_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3547
+ -- Name: index_module_mixins_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3547
3548
  --
3548
3549
 
3549
- CREATE INDEX index_module_mixins_on_module_detail_id ON module_mixins USING btree (detail_id);
3550
+ CREATE INDEX index_module_mixins_on_detail_id ON module_mixins USING btree (detail_id);
3550
3551
 
3551
3552
 
3552
3553
  --
3553
- -- Name: index_module_platforms_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3554
+ -- Name: index_module_platforms_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3554
3555
  --
3555
3556
 
3556
- CREATE INDEX index_module_platforms_on_module_detail_id ON module_platforms USING btree (detail_id);
3557
+ CREATE INDEX index_module_platforms_on_detail_id ON module_platforms USING btree (detail_id);
3557
3558
 
3558
3559
 
3559
3560
  --
3560
- -- Name: index_module_refs_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3561
+ -- Name: index_module_refs_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3561
3562
  --
3562
3563
 
3563
- CREATE INDEX index_module_refs_on_module_detail_id ON module_refs USING btree (detail_id);
3564
+ CREATE INDEX index_module_refs_on_detail_id ON module_refs USING btree (detail_id);
3564
3565
 
3565
3566
 
3566
3567
  --
@@ -3585,10 +3586,10 @@ CREATE INDEX index_module_runs_on_user_id ON module_runs USING btree (user_id);
3585
3586
 
3586
3587
 
3587
3588
  --
3588
- -- Name: index_module_targets_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3589
+ -- Name: index_module_targets_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3589
3590
  --
3590
3591
 
3591
- CREATE INDEX index_module_targets_on_module_detail_id ON module_targets USING btree (detail_id);
3592
+ CREATE INDEX index_module_targets_on_detail_id ON module_targets USING btree (detail_id);
3592
3593
 
3593
3594
 
3594
3595
  --
@@ -4058,8 +4059,12 @@ INSERT INTO schema_migrations (version) VALUES ('20150226151459');
4058
4059
 
4059
4060
  INSERT INTO schema_migrations (version) VALUES ('20150312155312');
4060
4061
 
4062
+ INSERT INTO schema_migrations (version) VALUES ('20150317145455');
4063
+
4061
4064
  INSERT INTO schema_migrations (version) VALUES ('20150326183742');
4062
4065
 
4066
+ INSERT INTO schema_migrations (version) VALUES ('20150421211719');
4067
+
4063
4068
  INSERT INTO schema_migrations (version) VALUES ('21');
4064
4069
 
4065
4070
  INSERT INTO schema_migrations (version) VALUES ('22');
@@ -4084,4 +4089,4 @@ INSERT INTO schema_migrations (version) VALUES ('7');
4084
4089
 
4085
4090
  INSERT INTO schema_migrations (version) VALUES ('8');
4086
4091
 
4087
- INSERT INTO schema_migrations (version) VALUES ('9');
4092
+ INSERT INTO schema_migrations (version) VALUES ('9');
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :metasploit_credential_core,
3
3
  class: Metasploit::Credential::Core do
4
- ignore do
4
+ transient do
5
5
  origin_factory { generate :metasploit_credential_core_origin_factory }
6
6
  private_factory { generate :metasploit_credential_core_private_factory }
7
7
  realm_factory { generate :metasploit_credential_core_realm_factory }
@@ -34,25 +34,25 @@ FactoryGirl.define do
34
34
  }
35
35
 
36
36
  factory :metasploit_credential_core_import do
37
- ignore do
37
+ transient do
38
38
  origin_factory :metasploit_credential_origin_import
39
39
  end
40
40
  end
41
41
 
42
42
  factory :metasploit_credential_core_manual do
43
- ignore do
43
+ transient do
44
44
  origin_factory :metasploit_credential_origin_manual
45
45
  end
46
46
  end
47
47
 
48
48
  factory :metasploit_credential_core_service do
49
- ignore do
49
+ transient do
50
50
  origin_factory :metasploit_credential_origin_service
51
51
  end
52
52
  end
53
53
 
54
54
  factory :metasploit_credential_core_session do
55
- ignore do
55
+ transient do
56
56
  origin_factory :metasploit_credential_origin_session
57
57
  end
58
58
  end
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :metasploit_credential_login,
3
3
  class: Metasploit::Credential::Login do
4
- ignore do
4
+ transient do
5
5
  host {
6
6
  FactoryGirl.build(
7
7
  :mdm_host, workspace: workspace
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :metasploit_credential_origin_service,
3
3
  class: Metasploit::Credential::Origin::Service do
4
- ignore do
4
+ transient do
5
5
  module_type { generate :metasploit_credential_origin_service_module_type }
6
6
  reference_name { generate :metasploit_credential_origin_service_reference_name }
7
7
  end
@@ -4,12 +4,12 @@ FactoryGirl.define do
4
4
  # uses its own data sequence to differentiate password hashes from other private data and #type is
5
5
  # automatically set by ActiveRecord because Metasploit::Credential::Password is an STI subclass.
6
6
  class: Metasploit::Credential::Password do
7
- ignore do
7
+ transient do
8
8
  password_data { generate :metasploit_credential_password_data }
9
9
  end
10
10
 
11
11
  data {
12
- BCrypt::Password.create(password_data).hash
12
+ BCrypt::Password.create(password_data).hash.to_s
13
13
  }
14
14
  end
15
15
  end
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :metasploit_credential_public,
3
3
  class: Metasploit::Credential::Username do
4
- ignore do
4
+ transient do
5
5
  public_factory { [
6
6
  :metasploit_credential_username,
7
7
  :metasploit_credential_blank_username
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
2
  factory :metasploit_credential_ssh_key,
3
3
  class: Metasploit::Credential::SSHKey do
4
- ignore do
4
+ transient do
5
5
  key_type { generate :metasploit_credential_ssh_key_key_type }
6
6
  # key size tuned for speed. DO NOT use for production, it is below current recommended key size of 2048
7
7
  key_size { 512 }
@@ -13,13 +13,13 @@ FactoryGirl.define do
13
13
  }
14
14
 
15
15
  factory :metasploit_credential_dsa_key do
16
- ignore do
16
+ transient do
17
17
  key_type :DSA
18
18
  end
19
19
  end
20
20
 
21
21
  factory :metasploit_credential_rsa_key do
22
- ignore do
22
+ transient do
23
23
  key_type :RSA
24
24
  end
25
25
  end
@@ -575,7 +575,7 @@ describe Metasploit::Credential::Creation do
575
575
  let(:untried_login) { FactoryGirl.create(:metasploit_credential_login, status: Metasploit::Model::Login::Status::UNTRIED)}
576
576
 
577
577
  let(:opts) {{
578
- address: untried_login.service.host.address,
578
+ address: untried_login.service.host.address.to_s,
579
579
  port: untried_login.service.port,
580
580
  protocol: untried_login.service.proto,
581
581
  username: untried_login.core.public.username,
@@ -86,14 +86,14 @@ describe Metasploit::Credential::Exporter::Core do
86
86
  it 'should produce values in the proper order' do
87
87
  result_hash.values.should == [core.public.username, core.private.type,
88
88
  core.private.data, core.realm.key, core.realm.value,
89
- login.service.host.address, login.service.port,
89
+ login.service.host.address.to_s, login.service.port,
90
90
  login.service.name, login.service.proto,
91
91
  login.status, login.access_level, login.last_attempted_at
92
92
  ]
93
93
  end
94
94
 
95
95
  it 'should produce a hash with the service host address' do
96
- result_hash[:host_address].should == login.service.host.address
96
+ result_hash[:host_address].should == login.service.host.address.to_s
97
97
  end
98
98
 
99
99
  it 'should produce a hash with the service port' do
@@ -341,8 +341,7 @@ describe Metasploit::Credential::Exporter::Core do
341
341
  end
342
342
 
343
343
  it 'should contain the associated Mdm::Host#address for all Login objects' do
344
- @login_host_addresses.should include(login1.service.host.address)
345
- @login_host_addresses.should include(login2.service.host.address)
344
+ @login_host_addresses.should include(login1.service.host.address.to_s, login2.service.host.address.to_s)
346
345
  end
347
346
 
348
347
  it 'should contain the associated Mdm::Service#port (stringified) for all Login objects' do
@@ -13,7 +13,7 @@ describe Metasploit::Credential::Exporter::Pwdump do
13
13
  describe "associated Mdm::Service objects" do
14
14
  it 'should properly format the service information' do
15
15
  service = login.service
16
- exporter.format_service_for_login(login).should == "#{service.host.address}:#{service.port}/#{service.proto} (#{service.name})"
16
+ exporter.format_service_for_login(login).should == "#{service.host.address.to_s}:#{service.port}/#{service.proto} (#{service.name})"
17
17
  end
18
18
  end
19
19
 
@@ -14,7 +14,9 @@ describe Metasploit::Credential::Migrator do
14
14
  describe "#convert_creds_in_workspace" do
15
15
  describe "when there are no Mdm::Cred objects in the workspace" do
16
16
  before(:each) do
17
- workspace.creds = []
17
+ workspace.services.each do |service|
18
+ service.creds = []
19
+ end
18
20
  end
19
21
 
20
22
  it 'should not change the Core count' do
@@ -44,13 +46,9 @@ describe Metasploit::Credential::Migrator do
44
46
  let(:service2){ FactoryGirl.create(:mdm_service, host: host2)}
45
47
  let(:service3){ FactoryGirl.create(:mdm_service, host: host3)}
46
48
 
47
- let(:cred1){ FactoryGirl.create(:mdm_cred, service: service1)}
48
- let(:cred2){ FactoryGirl.create(:mdm_cred, service: service2)}
49
- let(:cred3){ FactoryGirl.create(:mdm_cred, service: service3)}
50
-
51
- before(:each) do
52
- cred1; cred2; cred3
53
- end
49
+ let!(:cred1){ FactoryGirl.create(:mdm_cred, service: service1)}
50
+ let!(:cred2){ FactoryGirl.create(:mdm_cred, service: service2)}
51
+ let!(:cred3){ FactoryGirl.create(:mdm_cred, service: service3)}
54
52
 
55
53
  it 'should migrate them into Metasploit::Credential::Core objects' do
56
54
  expect{migrator.convert_creds_in_workspace(workspace)}.to change(Metasploit::Credential::Core, :count).from(0).to(3)
@@ -62,10 +60,9 @@ describe Metasploit::Credential::Migrator do
62
60
  end
63
61
 
64
62
  it "should be created for each Mdm::Cred" do
65
- Metasploit::Credential::Public.where(username: cred1.user).should_not be_blank
66
- Metasploit::Credential::Public.where(username: cred2.user).should_not be_blank
67
- Metasploit::Credential::Public.where(username: cred3.user).should_not be_blank
63
+ expect(Metasploit::Credential::Public.pluck(:username)).to match_array([cred1.user, cred2.user, cred3.user])
68
64
  end
65
+
69
66
  end
70
67
 
71
68
  describe "new Privates" do
@@ -74,10 +71,7 @@ describe Metasploit::Credential::Migrator do
74
71
  end
75
72
 
76
73
  it "should be created for each Mdm::Cred" do
77
- migrator.convert_creds_in_workspace(workspace)
78
- Metasploit::Credential::Password.where(data: cred1.pass).should_not be_blank
79
- Metasploit::Credential::Password.where(data: cred2.pass).should_not be_blank
80
- Metasploit::Credential::Password.where(data: cred3.pass).should_not be_blank
74
+ expect(Metasploit::Credential::Password.pluck(:data)).to match_array([cred1.pass, cred2.pass, cred3.pass])
81
75
  end
82
76
  end
83
77
  end
@@ -7,9 +7,7 @@ describe Metasploit::Credential::Version do
7
7
  described_class::MAJOR
8
8
  end
9
9
 
10
- it 'is 0 because the API is not locked yet' do
11
- expect(major).to eq(0)
12
- end
10
+ it { should be_a Integer }
13
11
  end
14
12
 
15
13
  context 'MINOR' do
@@ -16,12 +16,4 @@ describe Metasploit::Credential::BlankUsername do
16
16
  end
17
17
  end
18
18
 
19
- context 'mass assignment security' do
20
- it { should_not allow_mass_assignment_of(:created_at) }
21
- it { should_not allow_mass_assignment_of(:updated_at) }
22
- it { should allow_mass_assignment_of(:username) }
23
- end
24
-
25
-
26
-
27
19
  end
@@ -153,18 +153,6 @@ describe Metasploit::Credential::Login do
153
153
  end
154
154
  end
155
155
 
156
- context 'mass assignment security' do
157
- it { should allow_mass_assignment_of(:access_level) }
158
- it { should_not allow_mass_assignment_of(:core) }
159
- it { should_not allow_mass_assignment_of(:core_id) }
160
- it { should_not allow_mass_assignment_of(:created_at) }
161
- it { should allow_mass_assignment_of(:last_attempted_at) }
162
- it { should_not allow_mass_assignment_of(:service) }
163
- it { should_not allow_mass_assignment_of(:service_id) }
164
- it { should allow_mass_assignment_of(:status) }
165
- it { should_not allow_mass_assignment_of(:updated_at) }
166
- end
167
-
168
156
  context 'search' do
169
157
  let(:base_class) {
170
158
  described_class
@@ -208,7 +196,7 @@ describe Metasploit::Credential::Login do
208
196
  end
209
197
 
210
198
  it { should validate_presence_of :service }
211
- it { should ensure_inclusion_of(:status).in_array(Metasploit::Model::Login::Status::ALL) }
199
+ it { should validate_inclusion_of(:status).in_array(Metasploit::Model::Login::Status::ALL) }
212
200
 
213
201
  context '#consistent_last_attempted_at' do
214
202
  include_context 'Mdm::Workspace'
@@ -36,11 +36,4 @@ describe Metasploit::Credential::Origin::Import do
36
36
  it { should be_valid }
37
37
  end
38
38
 
39
- context 'mass assignment security' do
40
- it { should_not allow_mass_assignment_of :created_at }
41
- it { should allow_mass_assignment_of :filename }
42
- it { should_not allow_mass_assignment_of :task }
43
- it { should_not allow_mass_assignment_of :task_id }
44
- it { should_not allow_mass_assignment_of :updated_at }
45
- end
46
39
  end
@@ -40,14 +40,6 @@ describe Metasploit::Credential::Origin::Service do
40
40
  end
41
41
  end
42
42
 
43
- context 'mass assignment security' do
44
- it { should_not allow_mass_assignment_of :created_at }
45
- it { should allow_mass_assignment_of :module_full_name }
46
- it { should_not allow_mass_assignment_of :service }
47
- it { should_not allow_mass_assignment_of :service_id }
48
- it { should_not allow_mass_assignment_of :updated_at }
49
- end
50
-
51
43
  context 'validations' do
52
44
  context '#module_full_name' do
53
45
  # there is no way to test all values that match and do not match a regex, so testing by value is all that's
@@ -36,14 +36,6 @@ describe Metasploit::Credential::Origin::Session do
36
36
  end
37
37
  end
38
38
 
39
- context 'mass assignment security' do
40
- it { should_not allow_mass_assignment_of(:created_at) }
41
- it { should allow_mass_assignment_of(:post_reference_name) }
42
- it { should_not allow_mass_assignment_of(:session) }
43
- it { should_not allow_mass_assignment_of(:session_id) }
44
- it { should_not allow_mass_assignment_of(:updated_at) }
45
- end
46
-
47
39
  context 'validations' do
48
40
  context 'post_reference_name' do
49
41
  include_context 'Mdm::Workspace'
@@ -26,14 +26,6 @@ describe Metasploit::Credential::Private do
26
26
  end
27
27
  end
28
28
 
29
- context 'mass assignement security' do
30
- it { should_not allow_mass_assignment_of :created_at }
31
- it { should allow_mass_assignment_of :data }
32
- it { should_not allow_mass_assignment_of :id }
33
- it { should_not allow_mass_assignment_of :updated_at }
34
- it { should_not allow_mass_assignment_of :type }
35
- end
36
-
37
29
  context 'validations' do
38
30
  context 'data' do
39
31
  it { should validate_non_nilness_of :data }
@@ -50,7 +42,7 @@ describe Metasploit::Credential::Private do
50
42
  #
51
43
 
52
44
  let(:error) do
53
- I18n.translate!(:'activerecord.errors.messages.taken')
45
+ I18n.translate!(:'errors.messages.taken')
54
46
  end
55
47
 
56
48
  let(:new_private) do
@@ -25,12 +25,6 @@ describe Metasploit::Credential::Public do
25
25
  end
26
26
  end
27
27
 
28
- context 'mass assignment security' do
29
- it { should_not allow_mass_assignment_of(:created_at) }
30
- it { should_not allow_mass_assignment_of(:updated_at) }
31
- it { should allow_mass_assignment_of(:username) }
32
- end
33
-
34
28
  context 'search' do
35
29
  let(:base_class) {
36
30
  described_class
@@ -80,12 +80,6 @@ describe Metasploit::Credential::Realm do
80
80
  end
81
81
  end
82
82
 
83
- context 'mass assignment security' do
84
- it { should allow_mass_assignment_of(:key) }
85
- it { should allow_mass_assignment_of(:value) }
86
- end
87
-
88
-
89
83
  context 'search' do
90
84
  context 'attributes' do
91
85
  let(:base_class) {
@@ -106,7 +100,7 @@ describe Metasploit::Credential::Realm do
106
100
 
107
101
  context 'validations' do
108
102
  context 'on #key' do
109
- it { should ensure_inclusion_of(:key).in_array(Metasploit::Model::Realm::Key::ALL) }
103
+ it { should validate_inclusion_of(:key).in_array(Metasploit::Model::Realm::Key::ALL) }
110
104
  it { should validate_presence_of :key }
111
105
  end
112
106
 
@@ -125,7 +119,7 @@ describe Metasploit::Credential::Realm do
125
119
  #
126
120
 
127
121
  let(:error) do
128
- I18n.translate!('activerecord.errors.messages.taken')
122
+ I18n.translate!('errors.messages.taken')
129
123
  end
130
124
 
131
125
  let(:new_realm) do
@@ -15,12 +15,6 @@ describe Metasploit::Credential::Username do
15
15
  end
16
16
  end
17
17
 
18
- context 'mass assignment security' do
19
- it { should_not allow_mass_assignment_of(:created_at) }
20
- it { should_not allow_mass_assignment_of(:updated_at) }
21
- it { should allow_mass_assignment_of(:username) }
22
- end
23
-
24
18
  context 'validations' do
25
19
  context 'username' do
26
20
  it { should validate_presence_of :username }
@@ -1,4 +1,4 @@
1
1
  shared_examples_for 'timestamp database columns' do
2
- it { should have_db_column(:created_at).of_type(:datetime).with_options(null: false) }
3
- it { should have_db_column(:updated_at).of_type(:datetime).with_options(null: false) }
2
+ it { should have_db_column(:created_at).of_type(:datetime) }
3
+ it { should have_db_column(:updated_at).of_type(:datetime) }
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metasploit-credential
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.8
4
+ version: 1.0.0.pre.rails.pre.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Imhoff
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-29 00:00:00.000000000 Z
12
+ date: 2015-04-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: metasploit-concern
@@ -17,56 +17,56 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 0.4.0
20
+ version: 1.0.0.pre.rails.pre.4.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: 0.4.0
27
+ version: 1.0.0.pre.rails.pre.4.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: metasploit_data_models
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - '='
33
33
  - !ruby/object:Gem::Version
34
- version: 0.24.5
34
+ version: 1.0.0.pre.rails.pre.4.0a
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - '='
40
40
  - !ruby/object:Gem::Version
41
- version: 0.24.5
41
+ version: 1.0.0.pre.rails.pre.4.0a
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: metasploit-model
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: 0.29.0
48
+ version: 1.0.0.pre.rails.pre.4.0
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - '='
54
54
  - !ruby/object:Gem::Version
55
- version: 0.29.0
55
+ version: 1.0.0.pre.rails.pre.4.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: railties
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - "<"
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 4.0.0
62
+ version: '0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - "<"
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 4.0.0
69
+ version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rubyntlm
72
72
  requirement: !ruby/object:Gem::Requirement
@@ -313,12 +313,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
313
313
  version: '2.1'
314
314
  required_rubygems_version: !ruby/object:Gem::Requirement
315
315
  requirements:
316
- - - ">="
316
+ - - ">"
317
317
  - !ruby/object:Gem::Version
318
- version: '0'
318
+ version: 1.3.1
319
319
  requirements: []
320
320
  rubyforge_project:
321
- rubygems_version: 2.4.6
321
+ rubygems_version: 2.4.3
322
322
  signing_key:
323
323
  specification_version: 4
324
324
  summary: Credential models for metasploit-framework and Metasploit Pro