使用kali里的dnschef进行DNS欺骗

这篇具有很好参考价值的文章主要介绍了使用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的地址

使用kali里的dnschef进行DNS欺骗

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

        检查下kali里DNSChef在不在

┌──(root㉿kali)-[/home/kali]
└─# dnschef                                                       
          _                _          __  
         | | version 0.4  | |        / _| 
       __| |_ __  ___  ___| |__   ___| |_ 
      / _` | '_ \/ __|/ __| '_ \ / _ \  _|
     | (_| | | | \__ \ (__| | | |  __/ |  
      \__,_|_| |_|___/\___|_| |_|\___|_|  
                   iphelix@thesprawl.org  

(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会将他处理过的域名打印出来,供分析。使用kali里的dnschef进行DNS欺骗使用kali里的dnschef进行DNS欺骗

 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. DNSCrypt-proxy工具也可以使用

使用以下命令安装DNSCrypt软件包

sudo apt-get update
sudo apt-get install dnscrypt-proxy

设置配置文件

- 在`server_names`部分,选择您想要使用的DNSCrypt服务器的名称。您可以在https://dnscrypt.info/public-servers/上找到可用的服务器列表。
- 在`listen_addresses`部分,选择您希望DNSCrypt监听的IP地址和端口。
- cloaking_rules 部分,填写指定修改的DNS规则文件,我这里取名 cloaking-rules.txt

┌──(root㉿kali)-[/home/kali]
└─# cat /etc/dnscrypt-proxy/dnscrypt-proxy.toml 
# Empty listen_addresses to use systemd socket activation
listen_addresses = ['192.168.43.***:53','192.168.43.***:853']
#listen_addresses = []
server_names = ['cloudflare']
#server_names = ['2.dnscrypt-cert.ns2.jp']


cloaking_rules = 'cloaking-rules.txt'

[query_log]
  file = '/var/log/dnscrypt-proxy/query.log'

[nx_log]
  file = '/var/log/dnscrypt-proxy/nx.log'

[sources]
  [sources.'public-resolvers']
  url = 'https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md'
  cache_file = '/var/cache/dnscrypt-proxy/public-resolvers.md'
  minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
  refresh_delay = 72
  prefix = ''

多个文件内容:

┌──(root㉿kali)-[/etc/dnscrypt-proxy]
└─# cat cloaking-rules.txt                     
****************.file.myqcloud.com                192.168.43.***

功能开启,关闭,状态检查命令

 systemctl start dnscrypt-proxy
 systemctl stop dnscrypt-proxy
 systemctl status dnscrypt-proxy

如果启动成功,查看状态会有如下显示:

┌──(root㉿kali)-[/etc/dnscrypt-proxy]
└─# systemctl status dnscrypt-proxy
● dnscrypt-proxy.service - DNSCrypt client proxy
     Loaded: loaded (/lib/systemd/system/dnscrypt-proxy.service; disabled; preset: disabled)
     Active: active (running) since Sun 2023-07-30 08:29:11 EDT; 5s ago
TriggeredBy: ● dnscrypt-proxy.socket
       Docs: https://github.com/DNSCrypt/dnscrypt-proxy/wiki
   Main PID: 7002 (dnscrypt-proxy)
      Tasks: 7 (limit: 2268)
     Memory: 14.5M
        CPU: 72ms
     CGroup: /system.slice/dnscrypt-proxy.service
             └─7002 /usr/sbin/dnscrypt-proxy -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Jul 30 08:29:11 kali systemd[1]: Started dnscrypt-proxy.service - DNSCrypt client proxy.
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [NOTICE] dnscrypt-proxy 2.0.45
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [NOTICE] Network connectivity detected
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [NOTICE] Now listening to 192.168.43.***:53 [UDP]
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [NOTICE] Now listening to 192.168.43.***:53 [TCP]
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [NOTICE] Now listening to 192.168.43.***:853 [UDP]
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [NOTICE] Now listening to 192.168.43.***:853 [TCP]
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [WARNING] Systemd sockets are untested and unsupported - use at your own risk
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [NOTICE] Wiring systemd TCP socket #0, dnscrypt-proxy.socket, 127.0.2.1:53
Jul 30 08:29:11 kali dnscrypt-proxy[7002]: [2023-07-30 08:29:11] [NOTICE] Wiring systemd UDP socket #1, dnscrypt-proxy.socket, 127.0.2.1:53

5.最后

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

参考

最新kali之dnschef_dnschef工具运行不反应_Vanony的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-473847.html

到了这里,关于使用kali里的dnschef进行DNS欺骗的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • ARP欺骗和DNS劫持以及Wireshark分析

    ARP欺骗和DNS劫持以及Wireshark分析

    目录 第一部分,使用ettercap图形化界面进行ARP欺骗 第二部分,使用ettercap进行DNS劫持,开启Apache服务,让目标主机访问任何网站都劫持到kali系统主页 第三部分,使用Wireshark抓包分析ARP欺骗和DNS劫持的特征数据,并进行分析 一、实验目的 利用ettercap进行中间人攻击之 ARP欺骗

    2024年02月04日
    浏览(14)
  • 网络安全入门学习第十课——DNS欺骗

    网络安全入门学习第十课——DNS欺骗

    域名系统(英文:Domain Name System,缩写:DNS) 是互联网的一项服务。 作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。 我们本地的计算机在接入网络的时候,都会自动分配一个DNS服务器的IP地址,这个DNS服务器叫做本地

    2024年02月06日
    浏览(17)
  • 域名劫持、域名欺骗、域名污染是什么意思?DNS是啥?

    一、DNS 是啥? DNS 是洋文“Domain Name System”的缩写,直译过来就是“域名系统”。 二、DNS 有啥用? 咱们每天打交道的这个互联网,其底层的基石是“IP”。IP 是“Internet Protocol”的缩写,中文就“互联网协议”(光看名字就知道这玩意儿很重要)。咱们日常用的那些互联网软

    2024年02月08日
    浏览(11)
  • ARP伪造使用抓包工具进行ARP欺骗arp伪造攻击

    ARP伪造使用抓包工具进行ARP欺骗arp伪造攻击

    ARP(英文全写:Address Resolution Protocol),翻译成中文的意思是“地址解析协议”。 在局域网中,网络以“帧”的形式传输数据,一个主机要和另一个主机进行直接通信,就必须要知道目标主机的MAC地址。显然,在双方通信之初,发送方是无法知道目标主机的MAC地址的。那么,

    2023年04月17日
    浏览(9)
  • 使用matlab里的SVM进行数据分类预测

    在MATLAB中使用支持向量机(SVM)进行数据分类预测的示例代码如下: 该示例代码假设您已经拥有特征矩阵X和对应的标签向量Y。首先,将数据集划分为训练集和测试集。然后,使用 fitcsvm 函数建立支持向量机(SVM)模型,并设置相关参数,如核函数。接下来,使用训练好的模型对测

    2024年02月16日
    浏览(14)
  • 使用matlab里的集成树进行数据分类预测

    当使用MATLAB时,您可以使用集成学习方法中的决策树来进行数据分类预测。决策树是一种基于树状结构的机器学习算法,它通过对训练数据进行分层次的决策来进行预测。 MATLAB提供了一个称为ClassificationTree的集成树分类器。以下是一个使用MATLAB进行数据分类预测的基本示例:

    2024年02月16日
    浏览(10)
  • 使用matlab里的神经网络进行数据分类预测

    在MATLAB中使用神经网络进行数据分类预测,你可以按照以下步骤进行: Step 1: 准备数据 首先,准备用于训练和测试神经网络的数据。将数据集分为输入特征和相应的目标类别。确保数据已经进行了适当的预处理和标准化。 Step 2: 创建并训练神经网络模型 使用MATLAB的Neural Net

    2024年02月16日
    浏览(8)
  • 使用python里的神经网络进行数据分类预测

    在Python中使用神经网络进行数据分类预测,可以使用深度学习库如TensorFlow、Keras或PyTorch来实现。以下是使用Keras库的示例代码: Step 1: 准备数据 首先,准备用于训练和测试神经网络的数据集。将数据集分为输入特征和相应的目标类别。确保对数据进行适当处理和归一化。 S

    2024年02月16日
    浏览(9)
  • 使用python里的神经网络进行数据回归预测

    在Python中使用神经网络进行数据回归预测,你可以使用深度学习库如TensorFlow、Keras或PyTorch来实现。以下是使用Keras库的示例代码: Step 1: 准备数据 首先,准备用于训练和测试神经网络的数据集。将数据集分为输入特征和相应的目标值。确保对数据进行适当处理和归一化。 S

    2024年02月17日
    浏览(10)
  • 如何使用Kali Linux进行渗透测试?

    如何使用Kali Linux进行渗透测试?

    1. 渗透测试简介 渗透测试是通过模拟恶意攻击,评估系统、应用或网络的安全性的过程。Kali Linux为渗透测试人员提供了丰富的工具和资源,用于发现漏洞、弱点和安全风险。 2. 使用Kali Linux进行渗透测试的步骤 以下是使用Kali Linux进行渗透测试的基本步骤: 信息收集: 在进

    2024年02月12日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包