Class: Rex::Post::Meterpreter::Extensions::NetworkPug::NetworkPug

Inherits:
Rex::Post::Meterpreter::Extension show all
Defined in:
lib/rex/post/meterpreter/extensions/networkpug/networkpug.rb

Overview

NetworkPug implements a remote packet recieve/send on a network interface on the remote machine

Instance Attribute Summary

Attributes inherited from Rex::Post::Meterpreter::Extension

#name

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ NetworkPug

Returns a new instance of NetworkPug.



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rex/post/meterpreter/extensions/networkpug/networkpug.rb', line 17

def initialize(client)
	super(client, 'networkpug')

	client.register_extension_aliases(
		[
			{
				'name' => 'networkpug',
				'ext'  => self
			},
		])
end

Instance Method Details

#networkpug_start(interface, filter) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rex/post/meterpreter/extensions/networkpug/networkpug.rb', line 29

def networkpug_start(interface, filter)
	request = Packet.create_request('networkpug_start')
	request.add_tlv(TLV_TYPE_NETWORKPUG_INTERFACE, interface)
	request.add_tlv(TLV_TYPE_NETWORKPUG_FILTER, filter) if(filter and filter != "")
	response = client.send_request(request)

	channel = nil
	channel_id = response.get_tlv_value(TLV_TYPE_CHANNEL_ID)

	if(channel_id)
		channel = Rex::Post::Meterpreter::Channels::Pools::StreamPool.new(
			client,
			channel_id,
			"networkpug_interface",
			CHANNEL_FLAG_SYNCHRONOUS
		)
	end

	return response, channel
end

#networkpug_stop(interface) ⇒ Object



50
51
52
53
54
# File 'lib/rex/post/meterpreter/extensions/networkpug/networkpug.rb', line 50

def networkpug_stop(interface)
	request = Packet.create_request('networkpug_stop')
	request.add_tlv(TLV_TYPE_NETWORKPUG_INTERFACE, interface)
	response = client.send_request(request)
end