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