1 DNS
1.1 DNS是什么?
域名系统(Domain Name System)是互联网使用的命名系统,用来将主机域名转换为 ip 地址,属于应用层协议,使用 UDP 传输。
1.2 为什么需要DNS?
DNS协议提供域名到IP地址之间的解析服务。计算机既可以被赋予IP地址,也可以被赋予主机名和域名。用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问。因为与IP地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。
为了解决上述的问题,DNS服务应运而生。DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。
1.3 DNS工作原理
①客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
②当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
③如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
④本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
⑤重复第四步,直到找到正确的纪录。
⑥本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
2 网站克隆实现网站钓鱼攻击
2.1 DNS欺骗的原理及实现步骤
当客户主机向本地DNS服务器查询域名的时候,如果服务器的缓存中已经有相应记录,DNS服务器就不会再向其他服务器进行查询,而是直接将这条记录返回给用户。
而入侵者欲实现DNS欺骗,关键的一个条件就是在DNS服务器的本地Cache中缓存一条伪造的解析记录。
在上面的例子中,假如dhs.com域DNS服务器返回的是经过黑客篡改的信息,比如将www.dhs.com指向另一个IP地址5.6.7.8,nipc.com域DNS服务器将会接受这个结果,并将错误的信息存储在本地Cache中。以后在这条记录被缓存的生存期内,再向nipc.com域DNS服务器发送的对www.dhs.com的域名解析请求,所得到的IP地址都将是被篡改过的。
2.2 网络钓鱼
网络钓鱼是一种电子信息欺骗,攻击者创造了一个完整的令人信服的Web世界,但实际上它却是一个虚假的复制。
虚假的Web看起来十分逼真,它拥有相同的网页和链接。然而攻击者控制着这个虚假的Web站点,这样受害者的浏览器和Web之间的所有网络通信就完全被攻击者截获。
2.3 实践
1.先检查能不能ping通靶机
2.配置dns
vi etter.dns
:wq
3.进入var/www/html目录,编辑index.html网页文件
重启apache服务:
设置IP转发:
打开ettercap图形界面,并扫描局域网内的主机,添加欺骗主机,将网关地址设为 Target1,要欺骗的 IP 地址设为 Target2:
选择欺骗类型:
点击插件,选择 dns_spoof
点击左上角start开始攻击:
可以看到我加的这行字:
使用ifconfig查看攻击机IP:
编辑/etc/ettercap/etter.dns文件,添加伪造网站的本地DNS解析记录:
接下来使用setoolkit伪造目标网站:
输入命令(1),进入钓鱼攻击页面:
(2)输入命令2,进入web钓鱼攻击页面
输入命令3,进入到设置钓鱼页面选项
输入命令2,进入到克隆网页界面,回车继续,设置网页如下:
输入要克隆的URL:
此时在靶机中的浏览器尝试访问攻击机IP:
访问成功,可以对靶机进行下一步的DNS欺骗操作:
启动ettercap:
靶机ping网站地址,响应IP为攻击机的IP,DNS欺骗成功:
靶机浏览器访问攻击机网站,并且输入相关信息:
点击登录之后,攻击机的setoolkit中捕捉到输入的数据:
在实验换验证码输入登录一次: