Class: Rex::Post::Meterpreter::Packet
- Defined in:
- lib/rex/post/meterpreter/packet.rb
Overview
The logical meterpreter packet class
Instance Attribute Summary collapse
-
#created_at ⇒ Object
Returns the value of attribute created_at.
Attributes inherited from GroupTlv
Attributes inherited from Tlv
Class Method Summary collapse
-
.create_request(method = nil) ⇒ Object
Creates a request with the supplied method.
-
.create_response(request = nil) ⇒ Object
Creates a response to a request if one is provided.
Instance Method Summary collapse
-
#initialize(type = nil, method = nil) ⇒ Packet
constructor
Initializes the packet to the supplied packet type and method, if any.
-
#method ⇒ Object
Returns the value of the packet’s method TLV.
-
#method=(method) ⇒ Object
Sets the packet’s method TLV to the method supplied.
-
#method?(method) ⇒ Boolean
Checks to see if the packet’s method is equal to the supplied method.
-
#response? ⇒ Boolean
Checks to see if the packet is a response.
-
#result ⇒ Object
Gets the value of the packet’s result TLV.
-
#result=(result) ⇒ Object
Sets the packet’s result TLV.
-
#result?(result) ⇒ Boolean
Checks to see if the packet’s result value is equal to the supplied result.
-
#rid ⇒ Object
Gets the value of the packet’s request identifier TLV.
Methods inherited from GroupTlv
#add_tlv, #add_tlvs, #each, #each_tlv, #each_tlv_with_index, #each_with_index, #from_r, #get_tlv, #get_tlv_value, #get_tlv_values, #get_tlvs, #has_tlv?, #reset, #to_r
Methods inherited from Tlv
#from_r, #inspect, #meta_type?, #to_r, #type?, #value?
Constructor Details
#initialize(type = nil, method = nil) ⇒ Packet
Initializes the packet to the supplied packet type and method, if any. If the packet is a request, a request identifier is created.
616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 |
# File 'lib/rex/post/meterpreter/packet.rb', line 616 def initialize(type = nil, method = nil) super(type) if (method) self.method = method end self.created_at = ::Time.now # If it's a request, generate a random request identifier if ((type == PACKET_TYPE_REQUEST) || (type == PACKET_TYPE_PLAIN_REQUEST)) rid = '' 32.times { |val| rid << rand(10).to_s } add_tlv(TLV_TYPE_REQUEST_ID, rid) end end |
Instance Attribute Details
#created_at ⇒ Object
Returns the value of attribute created_at.
572 573 574 |
# File 'lib/rex/post/meterpreter/packet.rb', line 572 def created_at @created_at end |
Class Method Details
.create_request(method = nil) ⇒ Object
Creates a request with the supplied method.
583 584 585 |
# File 'lib/rex/post/meterpreter/packet.rb', line 583 def Packet.create_request(method = nil) return Packet.new(PACKET_TYPE_REQUEST, method) end |
.create_response(request = nil) ⇒ Object
Creates a response to a request if one is provided.
590 591 592 593 594 595 596 597 598 599 600 601 602 603 |
# File 'lib/rex/post/meterpreter/packet.rb', line 590 def Packet.create_response(request = nil) response_type = PACKET_TYPE_RESPONSE method = nil if (request) if (request.type?(PACKET_TYPE_PLAIN_REQUEST)) response_type = PACKET_TYPE_PLAIN_RESPONSE end method = request.method end return Packet.new(response_type, method) end |
Instance Method Details
#method ⇒ Object
Returns the value of the packet’s method TLV.
673 674 675 |
# File 'lib/rex/post/meterpreter/packet.rb', line 673 def method return get_tlv_value(TLV_TYPE_METHOD) end |
#method=(method) ⇒ Object
Sets the packet’s method TLV to the method supplied.
666 667 668 |
# File 'lib/rex/post/meterpreter/packet.rb', line 666 def method=(method) add_tlv(TLV_TYPE_METHOD, method, true) end |
#method?(method) ⇒ Boolean
Checks to see if the packet’s method is equal to the supplied method.
659 660 661 |
# File 'lib/rex/post/meterpreter/packet.rb', line 659 def method?(method) return (get_tlv_value(TLV_TYPE_METHOD) == method) end |
#response? ⇒ Boolean
Checks to see if the packet is a response.
645 646 647 648 |
# File 'lib/rex/post/meterpreter/packet.rb', line 645 def response? return ((self.type == PACKET_TYPE_RESPONSE) || (self.type == PACKET_TYPE_PLAIN_RESPONSE)) end |
#result ⇒ Object
Gets the value of the packet’s result TLV.
695 696 697 |
# File 'lib/rex/post/meterpreter/packet.rb', line 695 def result return get_tlv_value(TLV_TYPE_RESULT) end |
#result=(result) ⇒ Object
Sets the packet’s result TLV.
688 689 690 |
# File 'lib/rex/post/meterpreter/packet.rb', line 688 def result=(result) add_tlv(TLV_TYPE_RESULT, result, true) end |
#result?(result) ⇒ Boolean
Checks to see if the packet’s result value is equal to the supplied result.
681 682 683 |
# File 'lib/rex/post/meterpreter/packet.rb', line 681 def result?(result) return (get_tlv_value(TLV_TYPE_RESULT) == result) end |
#rid ⇒ Object
Gets the value of the packet’s request identifier TLV.
702 703 704 |
# File 'lib/rex/post/meterpreter/packet.rb', line 702 def rid return get_tlv_value(TLV_TYPE_REQUEST_ID) end |