Sha256: f0b373dc6f5599bfbdeb3f51f9bbde2c8602e72219941d5c64beb1a11800d527

Contents?: true

Size: 1.81 KB

Versions: 5

Compression:

Stored size: 1.81 KB

Contents

#!/usr/bin/env ruby

require 'rex/post/meterpreter/extensions/lanattacks/tlv'

module Rex
module Post
module Meterpreter
module Extensions
module Lanattacks

###
#
# This meterpreter extension can currently run DHCP and TFTP servers
#
###
class Lanattacks < Extension

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

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

	def start_dhcp
		client.send_request(Packet.create_request('lanattacks_start_dhcp'))
		true
	end

	def reset_dhcp
		client.send_request(Packet.create_request('lanattacks_reset_dhcp'))
		true
	end

	def set_dhcp_option(name, value)
		request = Packet.create_request('lanattacks_set_dhcp_option')
		request.add_tlv(TLV_TYPE_LANATTACKS_OPTION_NAME, name)
		request.add_tlv(TLV_TYPE_LANATTACKS_OPTION, value)
		client.send_request(request)
		true
	end

	def load_dhcp_options(datastore)
		datastore.each do |name, value|
			if Regexp.new('DHCPIPSTART|DHCPIPEND|NETMASK|ROUTER|DNSSERVER|BROADCAST|'+
					'SERVEONCE|PXE|HOSTNAME|HOSTSTART|FILENAME|PXECONF|SRVHOST') =~ name
				set_dhcp_option(name,value)
			end
		end
	end

	def stop_dhcp
		client.send_request(Packet.create_request('lanattacks_stop_dhcp'))
		true
	end

	def start_tftp
		client.send_request(Packet.create_request('lanattacks_start_tftp'))
		true
	end

	def reset_tftp
		client.send_request(Packet.create_request('lanattacks_reset_tftp'))
		true
	end

	def add_tftp_file(filename, data)
		request = Packet.create_request('lanattacks_add_tftp_file')
		request.add_tlv(TLV_TYPE_LANATTACKS_OPTION_NAME, filename)
		request.add_tlv(TLV_TYPE_LANATTACKS_RAW, data, false, true) #compress it
		client.send_request(request)
		true
	end

	def stop_tftp
		client.send_request(Packet.create_request('lanattacks_stop_tftp'))
		true
	end
end

end; end; end; end; end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
librex-0.0.50 lib/rex/post/meterpreter/extensions/lanattacks/lanattacks.rb
librex-0.0.49 lib/rex/post/meterpreter/extensions/lanattacks/lanattacks.rb
librex-0.0.48 lib/rex/post/meterpreter/extensions/lanattacks/lanattacks.rb
librex-0.0.47 lib/rex/post/meterpreter/extensions/lanattacks/lanattacks.rb
librex-0.0.46 lib/rex/post/meterpreter/extensions/lanattacks/lanattacks.rb