Changeset 5582

Show
Ignore:
Timestamp:
07/23/08 16:59:57 (3 months ago)
Author:
hdm
Message:

Log the name correctly and fix the whitespace issues

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • framework3/trunk/modules/auxiliary/server/dns/spoofhelper.rb

    r5576 r5582  
    2323        def initialize 
    2424                super( 
    25                         'Name'        => 'DNS Sppofing Helper Service', 
     25                        'Name'        => 'DNS Spoofing Helper Service', 
    2626                        'Version'     => '$Revision$', 
    2727                        'Description'    => %q{ 
     
    5252 
    5353         
    54         def run 
     54        def run          
     55                @targ = datastore['TARGETHOST'] 
    5556                 
    56                 @targ = datastore['TARGETHOST'] 
    5757                if(@targ and @targ.strip.length == 0) 
    5858                        @targ = nil 
     
    6161                @port = datastore['SRVPORT'].to_i 
    6262 
    63         # MacOS X workaround 
    64         ::Socket.do_not_reverse_lookup = true 
    65              
    66         @sock = ::UDPSocket.new() 
    67         @sock.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_REUSEADDR, 1) 
    68         @sock.bind(datastore['SRVHOST'], @port) 
    69         @run = true 
    70                  
    71                 Thread.new { 
     63                # MacOS X workaround 
     64                ::Socket.do_not_reverse_lookup = true 
     65 
     66                @sock = ::UDPSocket.new() 
     67                @sock.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_REUSEADDR, 1) 
     68                @sock.bind(datastore['SRVHOST'], @port) 
     69                @run = true 
     70 
    7271                # Wrap in exception handler 
    7372                begin 
    74                  
    75         while @run 
    76             packet, addr = @sock.recvfrom(65535) 
    77             if (packet.length == 0) 
    78                 break 
    79             end 
    80                          
    81             request = Resolv::DNS::Message.decode(packet) 
     73                        name = '' 
     74                        while @run 
     75                                packet, addr = @sock.recvfrom(65535) 
     76                                if (packet.length == 0) 
     77                                        break 
     78                                end 
    8279 
    83             request.each_question {|name, typeclass| 
    84                 tc_s = typeclass.to_s().gsub(/^Resolv::DNS::Resource::/, "") 
     80                                request = Resolv::DNS::Message.decode(packet) 
    8581 
    86                                 request.qr = 1 
    87                                 request.ra = 1 
    88                                                         
    89                                 case tc_s 
    90                                 when 'IN::TXT' 
    91                     answer = Resolv::DNS::Resource::IN::TXT.new("#{addr[3]}:#{addr[1]} #{name}") 
    92                     request.add_answer(name, 1, answer) 
    93                                 end 
    94             } 
    95                         print_status("DNS #{addr[3]}:#{addr[1]} XID #{request.id}") 
    96                          
    97             @sock.send(request.encode(), 0, addr[3], addr[1]) 
    98         end 
    99                  
     82                                request.each_question {|name, typeclass| 
     83                                        tc_s = typeclass.to_s().gsub(/^Resolv::DNS::Resource::/, "") 
     84 
     85                                        request.qr = 1 
     86                                        request.ra = 1 
     87 
     88                                        case tc_s 
     89                                        when 'IN::TXT' 
     90                                                print_status("DNS #{addr[3]}:#{addr[1]} XID #{request.id} #{name}")                                              
     91                                                answer = Resolv::DNS::Resource::IN::TXT.new("#{addr[3]}:#{addr[1]} #{name}") 
     92                                                request.add_answer(name, 1, answer) 
     93                                        end 
     94                                } 
     95 
     96                                @sock.send(request.encode(), 0, addr[3], addr[1]) 
     97                        end 
     98 
    10099                # Make sure the socket gets closed on exit 
    101100                rescue ::Exception => e 
     
    104103                        @sock.close 
    105104                end 
    106                  
    107                 } 
    108                  
    109105        end 
    110106