Sha256: 4d45b15678a94ba0ed48573eee0eb1508fd9d5afd67b0f5313411f754f8b5dc2

Contents?: true

Size: 1.94 KB

Versions: 23

Compression:

Stored size: 1.94 KB

Contents

# The result of {#run running} a {#match}.
class MetasploitDataModels::AutomaticExploitation::MatchResult < ApplicationRecord
  #
  # CONSTANTS
  #

  # Running associated exploit did NOT create a session
  FAILED = "failed"
  # Running associated exploit created a session
  SUCCEEDED = "succeeded"

  # Valid values for {#state}
  VALID_STATES = [FAILED, SUCCEEDED]

  #
  # Associations
  #

  # A {MetasploitDataModels::AutomaticExploitation::Match#module_detail Metasploit Module} matched to
  # {MetasploitDataModels::AutomaticExploitation::Match#matchable Mdm::Host or Mdm::Service}.
  belongs_to :match,
             class_name: 'MetasploitDataModels::AutomaticExploitation::Match',
             inverse_of: :match_results,
             dependent: :destroy

  # A mass automatic exploitation run.
  belongs_to :run,
             inverse_of: :match_results,
             class_name: 'MetasploitDataModels::AutomaticExploitation::Run'

  #
  # Attributes
  #

  # @!attribute state
  #   Whether the {#run} of {#match} succeeded.
  #
  #   @return ['failed', 'succeeded']

  #
  # Validations
  #

  # must be present and one of allowable values
  validates :state,
            presence: true,
            inclusion: VALID_STATES

  #
  # Scopes
  #

  # Runs of {#match} that failed
  scope :failed, lambda { where(state:"failed") }

  # Runs of {#match} that succeeded
  scope :succeeded, lambda { where(state:"succeeded") }

  # Runs of {#match} by workspace ID
  scope :by_workspace, lambda { |workspace_id|
                       joins(
                         MetasploitDataModels::AutomaticExploitation::MatchResult.join_association(:match),
                         MetasploitDataModels::AutomaticExploitation::Match.join_association(:match_set)
                       ).where(
                         MetasploitDataModels::AutomaticExploitation::MatchSet[:workspace_id].eq(workspace_id),
                       )
                     }

  Metasploit::Concern.run(self)
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
metasploit_data_models-6.0.6 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
wg-metasploit_data_models-4.1.4.02 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-6.0.5 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-6.0.4 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-6.0.3 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-6.0.2 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-6.0.1 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-6.0.0 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-5.0.6 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-5.0.5 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-5.0.4 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-5.0.3 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-5.0.2 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-5.0.1 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-5.0.0 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-4.1.4 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-4.1.3 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-4.1.2 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-4.1.1 app/models/metasploit_data_models/automatic_exploitation/match_result.rb
metasploit_data_models-4.1.0 app/models/metasploit_data_models/automatic_exploitation/match_result.rb