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.
596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 |
# File 'lib/rex/post/meterpreter/packet.rb', line 596 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.
552 553 554 |
# File 'lib/rex/post/meterpreter/packet.rb', line 552 def created_at @created_at end |
Class Method Details
.create_request(method = nil) ⇒ Object
Creates a request with the supplied method.
563 564 565 |
# File 'lib/rex/post/meterpreter/packet.rb', line 563 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.
570 571 572 573 574 575 576 577 578 579 580 581 582 583 |
# File 'lib/rex/post/meterpreter/packet.rb', line 570 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.
653 654 655 |
# File 'lib/rex/post/meterpreter/packet.rb', line 653 def method return get_tlv_value(TLV_TYPE_METHOD) end |
#method=(method) ⇒ Object
Sets the packet’s method TLV to the method supplied.
646 647 648 |
# File 'lib/rex/post/meterpreter/packet.rb', line 646 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.
639 640 641 |
# File 'lib/rex/post/meterpreter/packet.rb', line 639 def method?(method) return (get_tlv_value(TLV_TYPE_METHOD) == method) end |
#response? ⇒ Boolean
Checks to see if the packet is a response.
625 626 627 628 |
# File 'lib/rex/post/meterpreter/packet.rb', line 625 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.
675 676 677 |
# File 'lib/rex/post/meterpreter/packet.rb', line 675 def result return get_tlv_value(TLV_TYPE_RESULT) end |
#result=(result) ⇒ Object
Sets the packet’s result TLV.
668 669 670 |
# File 'lib/rex/post/meterpreter/packet.rb', line 668 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.
661 662 663 |
# File 'lib/rex/post/meterpreter/packet.rb', line 661 def result?(result) return (get_tlv_value(TLV_TYPE_RESULT) == result) end |
#rid ⇒ Object
Gets the value of the packet’s request identifier TLV.
682 683 684 |
# File 'lib/rex/post/meterpreter/packet.rb', line 682 def rid return get_tlv_value(TLV_TYPE_REQUEST_ID) end |