2018-2019-2 20165330《网络对抗技术》Exp7 网络欺诈防范
目录
实验目的
----------
- 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。
实验内容
----------
- [简单应用SET工具建立冒名网站](#1)
- [ettercap DNS spoof](#2)
- [结合应用两种技术,用DNS spoof引导特定访问到冒名网站。](#3)
基础问题
----------
- 通常在什么场景下容易受到DNS spoof攻击
>- 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名服务器,来发送伪造的数据包,从而修改目标主机的DNS缓存表,达到DNS欺骗的目的。
>- 还有连接公共场合一些不需要输入密码的WiFi也会为这种攻击创造条件。
- 在日常生活工作中如何防范以上两攻击方法
- 使用最新版本的DNS服务器软件,并及时安装补丁;
- 可以将IP地址和MAC地址进行绑定,很多时候DNS欺骗攻击是以ARP欺骗为开端的,所以将网关的IP地址和MAC地址静态绑定在一起,可以防范ARP欺骗,进而放止DNS spoof攻击。
- 使用入侵检测系统:只要正确部署和配置,使用入侵检测系统就可以检测出大部分形式的ARP缓存中毒攻击和DNS欺骗攻击
- 不乱连WiFi,不乱点一些网站及不明链接,从而给攻击者可乘之机。
相关知识
----------
- DNS欺骗
- 原理:攻击者冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了。
- DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了
- 预防:DNS欺骗攻击是很难防御的,因为这种攻击大多数本质都是被动的。通常情况下,除非发生欺骗攻击,否则你不可能知道你的DNS已经被欺骗,只是你打开的网页与你想要看到的网页有所不同。
- 保护内部设备
- 不要依赖DNS:在高度敏感和安全的系统,你通常不会在这些系统上浏览网页,最后不要使用DNS。如果你有软件依赖于主机名来运行,那么可以在设备主机文件里手动指定。
- 使用入侵检测系统:只要正确部署和配置,使用入侵检测系统就可以检测出大部分形式的ARP缓存中毒攻击和DNS欺骗攻击。
- 使用DNSSEC:DNSSEC使用的是数字前面DNS记录来确保查询响应的有效性,现在还没有广泛运用,但已被公认为是DNS的未来方向。
- SET工具
- 社会工程学工具包(SET)是一个开源的、Python驱动的社会工程学渗透测试工具。这套工具包由David Kenned设计,而且已经成为业界部署实施社会工程学攻击的标准。
- SET利用人们的好奇心、信任、贪婪及一些愚蠢的错误,攻击人们自身存在的弱点。使用SET可以传递攻击载荷到目标系统,收集目标系统数据,创建持久后门,进行中间人攻击等。
- 简单使用
- 启动SET:`setoolkit`
- 进入会出现下列选项:
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501160725768-384179998.png)
- 选择`社会工程学攻击`后会出现下列选项
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501160754201-1906550425.png)
- SET工具默认安装在`/usr/share/set`目录下
- 更多可参考[使用社会工程学工具包(SET)](https://www.cnblogs.com/youcanch/articles/5671274.html)
- EtterCap
- EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具。它具有动态连接嗅探、动态内容过滤和许多其他有趣的技巧。它支持对许多协议的主动和被动分析,并包含许多用于网络和主机分析的特性。
- kali 2.0内置有ettercap,可用过`ettercap -v`查看版本信息
- 图形化界面:`ettercap -G`
- 选择`sniffer`模式
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501162545575-1977172297.png)
- 网卡选择默认`eth0`,点击`确认`可开始嗅探
- 菜单处`Hosts`-`Hosts List`可查看嗅探到的主机ip地址、mac地址
- 菜单处`Mitm`可选择攻击方式,包括arp 欺骗、DHCP洪泛攻击等
- 菜单出`view`中可查看嗅探到的通信信息
- 更多可参考[Kali 2.0 下Ettercap 使用教程+DNS欺骗攻击](https://blog.csdn.net/qq_36711453/article/details/83714342)
实验步骤
----------
### 简单应用SET工具建立冒名网站
- 使用`sudo vi /etc/apache2/ports.conf`命令修改Apache的端口文件,将端口改为http对应的80号端口
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501165058002-1015191607.png)
修改后`esc`键-`:wq`保存退出
- 使用`netstat -tupln |grep 80`查看80端口是否被占用。如果有,使用`kill+进程号`杀死该进程或使用`kill -s 9 进程号`强制杀死进程
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501165446615-1410638050.png)
上图显示为未被占用
- 开启Apache服务:`systemctl start apache2`
- 开启SET工具:`setoolkit`
- 选择`1`:`Social-Engineering Attacks`(社会工程学攻击)
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501170029238-1897734320.png)
- 选择`2`:`Website Attack Vectors`(钓鱼网站攻击向量)
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501193935170-704850004.png)
- 选择`3::`Credential Harvester Attack Method`(即登录密码截取攻击)
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501194125510-1902909000.png)
- 选择`2`:`Site Cloner`克隆网站
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501194312208-489510908.png)
- 输入攻击机kali的IP地址:`192.168.43.4`(我们可使用[网址缩短](http://suo.im/)改变网址来迷惑靶机)
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501214007662-679197214.png)
- 我们输入一个有需要登陆的url(即被克隆的url)
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501222843255-1111767073.png)
- 提示`Do you want to attempt to disable Apache?`时选择`y`
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501222608201-751709810.png)
- 在靶机浏览器地址栏中输入攻击机kali的IP地址访问,攻击机这边即收到连接提示
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501223209007-1851595801.png)
- 在靶机输入(可能是错误的)用户名和密码,攻击机可全部获取
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190501223232743-297030990.png)
ettercap DNS spoof
- 使用指令
ifconfig eth0 promisc
将kali网卡改为混杂模式 - 输入
vi /etc/ettercap/etter.dns
对DNS缓存表进行修改,按i
键添加几条对网站和IP的DNS记录
- 开启ettercap:
ettercap -G
(自动弹出ettercap的可视化界面) - 点击工具栏中的
Sniff
—unified sniffing
(嗅探所有),在弹出的界面中选择eth0
后点击确定
(即监听eth0网卡)
- 点击工具栏中的
Hosts
-Scan for hosts
扫描子网,再点击Hosts list
查看存活主机,将网关IP
添加到target1,靶机IP
添加到target2
注意:这里的网关IP需要在靶机cmd中输入
ipconfig
确认,在我的win7虚拟机中网关为192.168.38.2
,win10主机却为192.168.38.1
,将target1换为win7的网关后,ping命令出现的就是攻击机kali的IP了! - 点击工具栏中的
Plugins
—Manage the plugins
,双击dns_spoof
选择DNS欺骗的插件
- 点击左上角的
Start
开始嗅探,此时在靶机中用命令行ping www.mosoteach.cn
会发现解析的地址是攻击机kali的IP地址
- 此时在ettercap上也成功捕获到访问记录
结合应用两种技术,用DNS spoof引导特定访问到冒名网站。
- 综合使用以上两种技术
- 首先按照实验一的步骤克隆一个登录页面,跳转成功
- 通过实验二实施DNS欺骗,此时在靶机输入网址
www.mosoteach.cn
可以发现成功访问我们的冒名网站
- 之后我们重新开启setoolkit停在正在捕获处(注意检查80端口是否被占用),重新打开ettercap开始DNS欺骗,靶机中输入网址
www.mosoteach.cn
可以发现捕获到记录
实验中遇到的问题
----------
- 在使用setoolkit克隆网站时出现`Address already in use`
![image](https://img2018.cnblogs.com/blog/1291750/201905/1291750-20190502005923843-281510272.png)
>解决办法:`ctrl+z`退出当前命令,使用`netstat -tupln |grep 80`查看80端口,使用`kill+进程号`或`kill -s 9 进程号`杀死进程, 在`systemctl start apache2`开启Apache服务,最后进入`setoolkit`即可。
- 在使用ettercap嗅探时并未出现网关地址
解决办法:一开始我的kali为桥接模式,改为NAT模式后就可扫描出,以此靶机使用NAT模式的win7虚拟机。
- 使用ettercap进行DNS欺骗时,靶机ping后并没有发生变化。
解决办法:在靶机的cmd中输入
ipconfig
确认网关的IP地址,发现我的win7虚拟机为192.168.38.2
,win10主机却为192.168.38.1
,随后将target1换为win7的网关后,ping命令出现的就是攻击机kali的IP了!
实验总结与体会
----------
- 通过本次实验,在学习利用各种工具克隆网页,制作一个钓鱼网站,并将自己的IP伪装,通过实践监控靶机的输入,获取用户名密码等信息,感觉自己离成为真正的攻击者更进了一步,但与此同时,作为一个普通的用户,我们也要多加防范这些钓鱼网站,以免被非法获取个人信息。
参考资料