Sha256: 6dac40b6037d997750ee16c5cf8eba4eee02694d931d724e3c53e3d283f7484f

Contents?: true

Size: 1.67 KB

Versions: 15

Compression:

Stored size: 1.67 KB

Contents

# -*- coding: binary -*-

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

module Rex
module Post
module Meterpreter
module Extensions
module Lanattacks
module Dhcp

###
#
# DHCP Server functionality
#
###
class Dhcp

  def initialize(client)
    @client = client
  end

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

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

  def set_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_options(datastore)
    # TODO: change this so that all of the options are set in a single
    # payload rather than firing off lots of calls separately
    datastore.each do |name, value|
      if Regexp.new('DHCPIPSTART|DHCPIPEND|NETMASK|ROUTER|DNSSERVER|BROADCAST|'+
          'SERVEONCE|PXE|HOSTNAME|HOSTSTART|FILENAME|PXECONF|SRVHOST') =~ name
        set_option(name, value)
      end
    end
  end

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

  def log
    response = client.send_request(Packet.create_request('lanattacks_dhcp_log'))
    entries = []
    if( response.result == 0 )
      log = response.get_tlv_value( TLV_TYPE_LANATTACKS_RAW )
      while log.length > 0
        mac = log.slice!(0..5)
        ip = log.slice!(0..3)
        entries << {
         :mac => mac,
         :ip  => ip
        }
      end
    end
    entries
  end

  attr_accessor :client

end

end; end; end; end; end; end

Version data entries

15 entries across 15 versions & 3 rubygems

Version Path
rex-2.0.13 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.12 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.11 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.10 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.9 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.8 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.7 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.5 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.4 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
dstruct-0.0.1 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.3 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
librex-0.0.999 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
rex-2.0.2 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
librex-0.0.71 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb
librex-0.0.70 lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb