Module: Ronin::Payloads::HasPayload

Included in:
Exploits::Exploit, Ronin::Payloads::Helpers::Chained
Defined in:
lib/ronin/payloads/has_payload.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *arguments, &block) ⇒ Object (protected)

Relays method calls to the payload, if the payload is a kind of Ronin::Payloads::Payload.

Since:

  • 0.3.0



102
103
104
105
106
107
108
# File 'lib/ronin/payloads/has_payload.rb', line 102

def method_missing(name,*arguments,&block)
  if @payload.kind_of?(Ronin::Payloads::Payload)
    return @payload.send(name,*arguments,&block)
  end

  super(name,*arguments,&block)
end

Instance Method Details

#payloadPayload

Returns The payload being used.

Returns:

  • (Payload)

    The payload being used.



31
32
33
# File 'lib/ronin/payloads/has_payload.rb', line 31

def payload
  @payload
end

#payload=(new_payload) ⇒ Object

Sets the payload.

Parameters:

  • new_payload (Payload)

    The new payload to use.



41
42
43
# File 'lib/ronin/payloads/has_payload.rb', line 41

def payload=(new_payload)
  @payload = new_payload
end

#use_payload!(query = {}) {|payloads| ... } ⇒ Payload?

Selects and uses a new payload.

Parameters:

  • query (Hash) (defaults to: {})

    Query options to use when selecting the payload.

Yields:

  • (payloads)

    If a block is given, it will be passed all payloads matching the given query, in order to be filtered down. The first payload from the filtered payloads will end up being selected.

Yield Parameters:

  • payloads (Array<Payload>)

    All available payloads that match the given query.

Returns:

  • (Payload, nil)

    The new payload, or nil if no payload was found.

Since:

  • 0.3.0



75
76
77
# File 'lib/ronin/payloads/has_payload.rb', line 75

def use_payload!(query={},&block)
  self.payload = use_payload_class.load_first(query,&block)
end

#use_payload_classPayload

Returns The model to search within for acceptable payloads to use with the exploit.

Returns:

  • (Payload)

    The model to search within for acceptable payloads to use with the exploit.

Since:

  • 0.3.0



52
53
54
# File 'lib/ronin/payloads/has_payload.rb', line 52

def use_payload_class
  Ronin::Payloads::Payload
end

#use_payload_from!(path) ⇒ Payload?

Loads and uses a new payload from a given path.

Parameters:

  • path (String)

    The path to load the payload from.

Returns:

  • (Payload, nil)

    The new payload, or nil if no payload was found.

Since:

  • 0.3.0



90
91
92
# File 'lib/ronin/payloads/has_payload.rb', line 90

def use_payload_from!(path)
  self.payload = use_payload_class.load_from(path)
end