Exp7 网络欺诈防范
序言
本次实验是为了理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。
预备知识
SET工具
概念
- 社会工程学工具包(SET)是一个开源的、Python驱动的社会工程学渗透测试工具。这套工具包由David Kenned设计,而且已经成为业界部署实施社会工程学攻击的标准。
- SET利用人们的好奇心、信任、贪婪及一些愚蠢的错误,攻击人们自身存在的弱点。使用SET可以传递攻击载荷到目标系统,收集目标系统数据,创建持久后门,进行中间人攻击等。
使用方法
- 启动SET:
setoolkit
- 输入1,进入社会工程学攻击
- 输入2,进入钓鱼网站攻击向量
DNS欺骗
原理
- 攻击者冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了。
- DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
预防
- 使用入侵检测系统:只要正确部署和配置,使用入侵检测系统就可以检测出大部分形式的ARP缓存中毒攻击和DNS欺骗攻击。
- 使用DNSSEC:DNSSEC使用的是数字前面DNS记录来确保查询响应的有效性,现在还没有广泛运用,但已被公认为是DNS的未来方向。
EtterCap工具
概念
EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具。它具有动态连接嗅探、动态内容过滤和许多其他有趣的技巧。它支持对许多协议的主动和被动分析,并包含许多用于网络和主机分析的特性。
使用方法
- 查看版本信息:
ettercap -v
- 图形化界面:
ettercap -G
- 菜单处
Hosts
->Hosts List
可查看嗅探到的主机ip地址、mac地址 - 菜单处
Mitm
可选择攻击方式,包括arp 欺骗、DHCP洪泛攻击等 - 菜单处
view
中可查看嗅探到的通信信息
一、实验内容
- 简单应用SET工具建立冒名网站;
- EtterCap DNS spoof;
- 结合应用两种技术,用DNS spoof引导特定访问到冒名网站。
二、实验过程
2.1 简单应用SET工具建立冒名网站
输入命令vim /etc/apache2/ports.conf
查看Apache的端口文件,如果显示listen的端口不是80,则将端口改为http对应的80号端口
输入命令netstat -tupln |grep 80
查看80端口是否被占用
这里显示没有进程占用80端口,如果有就杀死该进程
这时,我们可以开启Apache服务systemctl start apache2
输入setoolkit
开启SET工具
输入1,进入社会工程学攻击
输入2,进入钓鱼网站攻击向量
输入3,进入登录密码截取攻击
输入2,克隆网站
这里输入作为攻击机的本机ip地址:192.168.0.107
然后输入被克隆的网址https://www.mosoteach.cn/web/index.php?c=passport
输入y
这时,在浏览器输入http://192.168.0.107
,进入被克隆的网站
输入用户名:13788888888
,密码:13788888888
,登入
回到攻击机上可以看到明文状态的用户名和密码被窃听了
2.2 EtterCap DNS spoof
输入命令ifconfig eth0 promisc
将kali网卡改为混杂模式,使其能接收所有经过它的数据流,并使用ifconfig
检查,可以看到eth0第一行显示promisc。
输入命令vim /etc/ettercap/etter.dns
对DNS缓存表进行修改,加入记录gitee.com A 192.168.0.111
输入命令ettercap -G
打开ettercap的可视化界面,选择eth0
后点击√
开始监听
在工具栏中选择Hosts
->Scan for hosts
扫描子网
在Hosts list
中查看存活主机
在靶机(Windows XP)中输入ipconfig
查看ip和虚拟网关地址。可以看到ip=192.168.0.113,默认网关=192.168.0.1
将网关的ip添加到target1,将靶机ip添加到target2
点击工具栏中的Plugins
->Manage the plugins
,选择dns_spoof
即DNS欺骗的插件,双击开启
这个时候攻击机kali已经处于嗅探模式,在靶机中Ping DNS缓存表中添加的网站,即ping gitee.com
,解析地址都是攻击机的IP地址
攻击机kali窃听的结果
2.3 结合应用两种技术,用DNS spoof引导特定访问到冒名网站
按照上面2.2实施DNS欺骗将http://www.4399.com/
映射成攻击机kali的ip192.168.0.111
,即将www.4399.com A 192.168.0.111
输入/etc/ettercap/etter.dns
,重启EtterCap完成DNS spoof
按照2.1的步骤克隆一个登录页面https://gitee.com/login
这个时候,用靶机打开http://www.4399.com/
,显示的是码云登陆界面,但是网址栏显示http://www.4399.com/
这里的Firefox版本号是30,特别老,很多最新的html效果都不能支持,所以只能显示成这个样子,然后我输入用户名13788888888
和密码13788888888
,点击登入,跳转的网站当然进不去
但是攻击机kali获取到了明文状态的用户名和密码,我认为应该是因为4399用的是http协议而不是https协议,所以钓鱼网站http://www.4399.com/
将password明态传输了。
三、回答一些问题
3.1 通常在什么场景下容易受到DNS spoof攻击?
攻击机和靶机都在同一个网段里,比如公共WiFi。
3.2 在日常生活工作中如何防范以上两攻击方法?
- 第一种攻击防范:仔细查看域名,查看证书,安全认证信息等。
- 第二种攻击防范:减少访问http的网页次数,实验中可以知道https会阻止这种攻击,但http不会。
四、实践总结体会
DNS欺骗实践需要使用http网站,https的网站会阻止DNS欺骗,这花费了很多时间。
Windows 10似乎本身能防御DNS欺骗,因为我一开始靶机使用的是Windows 10,无论如何也做不成功。
现在越来越多的http网站被https替代,这说明DNS欺骗攻击这种方法已经几乎不可行了。