使用kali里的dnschef进行DNS欺骗

1. 前言

        DNSChef是针对渗透测试人员和恶意软件分析师的高度可配置的DNS代理。它能够精细配置哪些DNS回复以修改或简单地代理真实响应。为了利用该工具,您必须手动配置DNS服务器以指向DNSChef。

2. 执行参数

选项参数:

-h,--help
	显示帮助信息并退出

--fakedomain thesprawl.org.google.com
	以逗号分隔的域名列表,将解析为上述参数中指定的FAKE值。 所有其他域名将解析为其真实值。

--truedomains thesprawl.org.google.com
	以逗号分隔的域名列表,这些列表将解析为TRUE值。 所有其他域名将解析为上述参数中指定的伪造值。

假DNS记录:

--fakeip 192.0.2.1
	用于匹配DNS查询的IP地址。 如果您在不指定域名的情况下使用此参数,则所有“ A”查询都会被欺骗。 如果需要定义多个IP地址,请考虑使用–file参数。

--fakeipv6 2001:db8::1
	用于匹配DNS查询的IPv6地址。 如果您在不指定域名的情况下使用此参数,则将欺骗所有“ AAAA”查询。 如果需要定义多个IPv6地址,请考虑使用--file参数。

--fakemail mail.fake.com
	用于匹配DNS查询的MX名称。 如果您在不指定域名的情况下使用此参数,则会欺骗所有“ MX”查询。 如果需要定义多个MX记录,请考虑使用--file参数。

--fakealias www.fake.com
	用于匹配DNS查询的CNAME名称。 如果您在不指定域名的情况下使用此参数,则会欺骗所有“ CNAME”查询。 如果需要定义多个CNAME记录,请考虑使用--file参数。

--fakens ns.fake.com
	用于匹配DNS查询的NS名称。 如果您在不指定域名的情况下使用此参数,则会欺骗所有“ NS”查询。 如果需要定义多个NS记录,请考虑使用--file参数。

--file FILE
	指定一个文件,该文件包含用于DNS响应的DOMAIN = IP对(每行一对)的列表。 例如:google.com = 1.1.1.1将强制所有对“ google.com”的查询都解析为“ 1.1.1.1”。 IPv6地址将被自动检测。 通过将--file与其他参数组合,您甚至可以更加具体。 但是,从文件获取的数据将优先于其他数据。

可选的运行时参数:

--logfile FILE
	指定一个日志文件以记录所有活动

--nameservers 8.8.8.8#53 or 4.2.2.1#53#tcp or 2001:4860:4860::8888
	用逗号分隔的替代DNS服务器列表,用于处理代理请求。 名称服务器可以采用P或IP#PORT格式。 提供多个服务器时,将从列表中随机选择的服务器用于代理请求。 默认情况下,该工具在Pv4模式下运行时使用oogle的公共DNS服务器8.8.8.8,在Pv6模式下运行时使用2001:4860:4860 :: 8888。

-i 27.0.0.1 or ::1,--interface 127.0.0.1 or ::1
	定义用于DNS侦听器的接口。 默认情况下,该工具将127.0.0.1用于IPv4模式和:: 1或IPv6模式。

-t,--tcp
	使用TCP DNS代理而不是默认的UDP。

-6,ipv6
	在IPv6模式下运行。

-p 53,--port 53
	侦听DNS请求的端口号。

-q,--quiet
	不显示标题。

3. 实际测试使用

3.1 网络连接

笔记本电脑无线连接某流量卡提供的wifi。

笔记本电脑的virtualbox里的kali启动,网络选择桥接模式。

笔记本电脑的热点打开。

手机安卓设备无线连接笔记本电脑的热点。

3.2 网络配置

3.2.1 检查笔记本电脑的网络信息

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::8158:d09:dfd0:cbe5%10
   IPv4 地址 . . . . . . . . . . . . : 192.168.43.168
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.43.1

        在kali启动后的网络配置中需要用到。kali的网络配置详见如下博客:

5分钟完成 Kali linux安装(基于VirtualBox)_virtualbox安装kali_晓翔仔的博客-CSDN博客

3.2.2 检查kali的网络信息,得知kali的ip是192.168.43.209

┌──(root㉿kali)-[/home/kali]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.209  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::a00:27ff:fe22:464f  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:22:46:4f  txqueuelen 1000  (Ethernet)
        RX packets 53891  bytes 67773851 (64.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19008  bytes 1363876 (1.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 4  bytes 240 (240.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 240 (240.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.2.3 设置计算机的DNS地址为kali的地址

3.3 DNSChef启动、配置规则、测试

        检查下kali里DNSChef在不在

┌──(root㉿kali)-[/home/kali]
└─# dnschef                                                       
          _                _          __  
         | | version 0.4  | |        / _| 
       __| |_ __  ___  ___| |__   ___| |_ 
      / _` | '_ \/ __|/ __| '_ \ / _ \  _|
     | (_| | | | \__ \ (__| | | |  __/ |  
      \__,_|_| |_|___/\___|_| |_|\___|_|  
                   [email protected]  

(21:09:00) [*] DNSChef started on interface: 127.0.0.1
(21:09:00) [*] Using the following nameservers: 8.8.8.8
(21:09:00) [*] No parameters were specified. Running in full proxy mode
^C(21:10:01) [*] DNSChef is shutting down.

        我们拿南京两所知名大学的url做测试。通过在浏览器登录学校网站时wireshak抓包(dns answer)获得两所学校的IP,分别如下

        南京大学: www.nju.edu.cn   202.119.32.7

        南京航空航天大学:www.nuaa.edu.cn  218.94.136.180

        我们将南京大学的url和南京航空航天大学的ip 进行匹配,并写入DNS服务器。

--interface后的ip填写kali的ip。 

dnschef --fakeip=218.94.136.180 --fakedomains=www.nju.edu.cn --interface 192.168.43.209 -q

        在手机安卓设备上使用浏览器尝试输入两所大学的网址做测试。

        观察到以下格式打印,说明DNS设置成功,DNSChef会将他处理过的域名打印出来,供分析。

 proxing the response of *** 表示走的是标准DNS代理,默认是8.8.8.8,当然这是可配的。

cooking the response of *****表示是我们配置的欺骗规则,可以看到我们的DNS将南京大学的url(www.nju.edu.cn)用南京航空航天大学的ip做了响应(218.94.136.180)

        而现象是: 南京航空航天大学的网站可以正常打开。而南京大学的网站无法打开。

        至于为什么我们输入南京大学的url,不会显示南京航空航天大学的网址,这个可能和浏览器使用的一些安全策略有关。尚不清楚。

        这里需要补充的是,如果你有好多条规则需要设置,怎么办?

        可以使用这一条命令:

dnschef --file dnsfile --interface 0.0.0.0 -q

        dnsfile是文件名,文件里面的结构如下:

[A]
name1 = ip1
name2 = ip2

如果你有疑问,为什么IP要设置0.0.0.0呢,这篇博客就是答案:

IP地址0.0.0.0是什么意思?_mtAsnow的博客-CSDN博客

4.最后

本文使用kali自带的DNSChef工具做DNS欺骗,工具成功生效了。

参考

最新kali之dnschef_dnschef工具运行不反应_Vanony的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_33163046/article/details/131073971
今日推荐