Module: Msf::Handler::FindTag
- Includes:
- FindPort
- Defined in:
- lib/msf/core/handler/find_tag.rb
Overview
This handlers implements tag-based findsock handling.
Constant Summary
Constants included from Msf::Handler
Instance Attribute Summary
Attributes included from FindPort
Attributes included from Msf::Handler
#exploit_config, #parent_payload, #pending_connections, #session_waiter_event, #sessions
Class Method Summary collapse
-
.general_handler_type ⇒ Object
Returns the connection oriented general handler type, in this case ‘find’.
-
.handler_type ⇒ Object
Returns the string representation of the handler type, in this case ‘find_tag’.
Instance Method Summary collapse
-
#_find_prefix(sock) ⇒ Object
protected
Prefix the stage with this.
-
#_find_tag ⇒ Object
protected
Returns the tag we’ll be using.
-
#_send_id(sock) ⇒ Object
protected
Transmits the tag.
-
#initialize(info = {}) ⇒ Object
Initializes the find tag handler with the option that is required for all find-tag based payloads, such as the TAG that will be searched for.
Methods included from FindPort
#_check_shell, #create_session, #handler
Methods included from Msf::Handler
#add_handler, #cleanup_handler, #create_session, #handle_connection, #handler, #handler_name, #interrupt_wait_for_session, #register_session, #setup_handler, #start_handler, #stop_handler, #wait_for_session, #wfs_delay
Class Method Details
.general_handler_type ⇒ Object
Returns the connection oriented general handler type, in this case ‘find’.
27 28 29 |
# File 'lib/msf/core/handler/find_tag.rb', line 27 def self.general_handler_type "find" end |
.handler_type ⇒ Object
Returns the string representation of the handler type, in this case ‘find_tag’.
19 20 21 |
# File 'lib/msf/core/handler/find_tag.rb', line 19 def self.handler_type return "find_tag" end |
Instance Method Details
#_find_prefix(sock) ⇒ Object (protected)
Prefix the stage with this.
57 58 59 60 61 62 63 |
# File 'lib/msf/core/handler/find_tag.rb', line 57 def _find_prefix(sock) if (self.respond_to?('stage_prefix') == true) self.stage_prefix = _find_tag else _find_tag end end |
#_find_tag ⇒ Object (protected)
Returns the tag we’ll be using.
81 82 83 84 85 86 |
# File 'lib/msf/core/handler/find_tag.rb', line 81 def _find_tag tag = (datastore['TAG'] || "msf!") tag << ("\x01" * (tag.length - 4)) return tag[0, 4] end |
#_send_id(sock) ⇒ Object (protected)
Transmits the tag.
68 69 70 71 72 73 74 75 76 |
# File 'lib/msf/core/handler/find_tag.rb', line 68 def _send_id(sock) if (self.payload_type == Msf::Payload::Type::Single) sock.put(_find_tag) return _find_tag end return nil end |
#initialize(info = {}) ⇒ Object
Initializes the find tag handler with the option that is required for all find-tag based payloads, such as the TAG that will be searched for.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/msf/core/handler/find_tag.rb', line 35 def initialize(info = {}) super ( [ OptString.new('TAG', [ true, "The four byte tag to signify the connection.", Rex::Text.rand_text_alphanumeric(4), ]) ], Msf::Handler::FindTag) # Eliminate the CPORT option. .remove_option('CPORT') end |