Changeset 5457

Show
Ignore:
Timestamp:
03/24/08 08:37:41 (2 months ago)
Author:
hdm
Message:

Handle PTR records

Files:

Legend:

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

    r5426 r5457  
    9595            request.each_question {|name, typeclass| 
    9696                tc_s = typeclass.to_s().gsub(/^Resolv::DNS::Resource::/, "") 
    97                  
     97 
     98                                request.qr = 1 
     99                                request.ra = 1 
     100                                                        
    98101                lst << "#{tc_s} #{name}" 
    99102                                case tc_s 
     
    111114                    # <hostname> SOA -> windows XP self hostname lookup 
    112115                    # 
    113                      
    114                     request.qr = 1 
    115                     request.ra = 1 
     116 
    116117                    answer = Resolv::DNS::Resource::IN::A.new( @targ || ::Rex::Socket.source_address(addr[3].to_s) ) 
    117118                    request.add_answer(name, 60, answer) 
    118119                 
    119120                                when 'IN::MX' 
    120                     request.qr = 1 
    121                     request.ra = 1 
    122121                    mx = Resolv::DNS::Resource::IN::MX.new(10, Resolv::DNS::Name.create("mail.#{name}")) 
    123122                    ns = Resolv::DNS::Resource::IN::NS.new(Resolv::DNS::Name.create("dns.#{name}")) 
    124                                          
    125123                                        ar = Resolv::DNS::Resource::IN::A.new( @targ || ::Rex::Socket.source_address(addr[3].to_s) ) 
    126  
    127124                                        request.add_answer(name, 60, mx) 
    128125                                        request.add_authority(name, 60, ns)      
     
    130127                                         
    131128                                when 'IN::NS' 
    132                     request.qr = 1 
    133                     request.ra = 1 
    134129                    ns = Resolv::DNS::Resource::IN::NS.new(Resolv::DNS::Name.create("dns.#{name}")) 
    135                                         ar = Resolv::DNS::Resource::IN::A.new( @targ || ::Rex::Socket.source_address(addr[3].to_s) ) 
     130                                        ar = Resolv::DNS::Resource::IN::A.new( @targ || ::Rex::Socket.source_address(addr[3].to_s) )     
     131                                        request.add_answer(name, 60, ns) 
     132                                        request.add_additional(name, 60, ar) 
     133                                when 'IN::PTR' 
     134                                        soa = Resolv::DNS::Resource::IN::SOA.new( 
     135                                                Resolv::DNS::Name.create("ns.internet.com"), 
     136                                                Resolv::DNS::Name.create("root.internet.com"), 
     137                                                1, 
     138                                                3600, 
     139                                                3600, 
     140                                                3600, 
     141                                                3600 
     142                                        ) 
     143                                        ans = Resolv::DNS::Resource::IN::PTR.new( 
     144                                                Resolv::DNS::Name.create("www") 
     145                                        ) 
    136146                                         
    137                                         request.add_answer(name, 60, ns) 
    138                                         request.add_additional(name, 60, ar)    
     147                                        request.add_answer(name, 60, ans) 
     148                                        request.add_authority(name, 60, soa) 
    139149                                else 
    140150                                        lst << "UNKNOWN #{tc_s}"