# An attempt to exploit {#host}. class Mdm::ExploitAttempt < ActiveRecord::Base # # Associations # # Host that was attempted to be exploited. # # @return [Mdm::Host] belongs_to :host, class_name: 'Mdm::Host', counter_cache: :exploit_attempt_count, inverse_of: :exploit_attempts # Loot gathers from the successful exploit. # # @return [Mdm::Loot, nil] belongs_to :loot, class_name: 'Mdm::Loot', inverse_of: :exploit_attempt # The service being exploited on {#host}. # # @return [Mdm::Service, nil] belongs_to :service, class_name: 'Mdm::Service', inverse_of: :exploit_attempts # The session that was established when this attempt was successful. # # @return [Mdm::Session] # @return [nil] if session was not established. belongs_to :session, class_name: 'Mdm::Session', inverse_of: :exploit_attempt # The vulnerability that was attempted to be exploited. # # @return [Mdm::Vuln, nil] belongs_to :vuln, class_name: 'Mdm::Vuln', inverse_of: :exploit_attempts # # Attributes # # @!attribute attempted_at # When the attempt was made. # # @return [DateTime] # @!attribute exploited # Whether the attempt was successful. # # @return [true] attempt was successful. # @return [false] attempt was not successful. # @!attribute fail_detail # A more verbose reason (compared to {#fail_reason} for the failure. # # @return [String, nil] # @!attribute fail_reason # Summary of why the attempt failed if {#exploited} is `false`. For more details see {#fail_detail}. # # @return [String, nil] # @!attribute host_id # Foreign key to look up {#host}. # # @return [Integer] # @!attribute module # The full name of the exploit module that made the attempt. # # @return [String] # @todo Remove deprecated Mdm::Exploit#module (MSP-9281) # @!attribute port # The port on {#host} which the exploit was attempted. # # @return [Integer] # @todo Mdm::ExploitAttempt#port and Mdm::ExploitAttempt#proto are obsolete and should be removed (MSP-9284) # @!attribute proto # The protocol name used on {#port}. # # @return [String] # @todo Mdm::ExploitAttempt#port and Mdm::ExploitAttempt#proto are obsolete and should be removed (MSP-9284) # @!attribute username # Name of user that made the attempt. May be an {Mdm::User#name} or a system username. # # @return [String] # # Validations # validates :host_id, :presence => true Metasploit::Concern.run(self) end