DNSリクエストを作成するためにscapyとpythonを使用しています。UDP要求には問題はありませんが、TCPを使用したい場合(UDPで使用するのとまったく同じ要求で)、WiresharkはDNS要求の形式が正しくないと言います。
ここに私のPythonコード:
from scapy.all import *
ip=IP(dst="130.104.254.1")
dns = DNS(rd=1, qd=DNSQR(qname = "google.be", qtype="A"))
SYN=ip/TCP(sport=RandNum(1024,65535), dport=53, flags="S", seq=42)
SYNACK=sr1(SYN)
ACK=ip/TCP(sport=SYNACK.dport, dport=53, flags="A", seq=SYNACK.ack, ack=SYNACK.seq + 1)
send(ACK)
DNSRequest = ip/TCP(sport=SYNACK.dport, dport=53, flags="PA", seq=SYNACK.ack, ack=SYNACK.seq + 1) / dns
DNSReply = sr1(DNSRequest, timeout = 1)
リクエストを送信する前に、スリーウェイハンドシェイクが完全に完了しています。
どうもありがとうございます !