1 实践说明
1.1 实践内容
本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。
具体实验内容
- 简单应用SET工具建立冒名网站 (1分)
- ettercap DNS spoof (1分)
- 结合应用两种技术,用DNS spoof引导特定访问到冒名网站(2分)
实验要求
- 请勿使用外部网站做实验。
1.2 基础知识问答
(1)通常在什么场景下容易受到DNS spoof攻击
由于设计师在设计DNS协议时没有考虑到一些安全问题,导致DNS协议存在安全隐患与缺陷。DNS欺骗的原理是攻击者冒充域名服务器的一种欺骗行为,通常做法是欺骗者先向目标机器发送构造好的ARP应答数据包,ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造好的个DNS返回包,对方收到DNS应答包后,发现ID和端口号全部正确,即把返回数据包中的域名和对应的IP地址保存进DNS缓存表中,而后来的当真实的DNS应答包返回时则被丢弃。
- 通常与攻击者在同一局域网下会更容易遭到DNS欺骗攻击,因为攻击者可能会冒充该局域网的域名服务器来实施DNS欺骗。
- 此外公共网络环境下(例如无密码登录的wifi等)也容易遭到DNS欺骗攻击
(2)在日常生活工作中如何防范实验中的两种攻击方法?
冒名(钓鱼)网络的防范
恶意钓鱼网站通常会伪装得跟真正的网站几乎一样,通过各种手段发送给受害者,诱导他们打开网站。例如通过e-mail、微信QQ等通讯工具中发送链接;又或在微博贴吧等开放性的网上社区发布虚假的钓鱼链接;更严重的是通过假冒银行、购物网站或第三方支付平台等正规机构名义发送短信传播钓鱼网站链接。
- 手动输入网址:尽量避免超链接方式进入某付款界面
- 认清网址:由于钓鱼网站会将网址伪造得与原网址类似,但还是会有不同,例如一个字母的差别等,需要用户仔细辨认
- 查看证书:正规网站都是拥有正规CA机构颁发的证书的,而钓鱼网站几乎不会拥有证书,可以通过查看证书来确认网站的真实性
DNS欺骗攻击防范
- 由于DNS欺骗攻击的前提是需要ARP欺骗成功,要做好对ARP欺骗攻击的防范
- 主机被动检查:当系统接收到来自局域网上的ARP请求时,系统检查该请求发送端的IP地址是否与自己的IP地址相同
- 主机主动检查:主机定期向所在局域网发送查询自己IP地址的ARP请求报文
- 服务器检查:服务器收到ARP响应时,根据响应报文中给出的MAC地址生成RARP请求,查询到这个MAC地址对应的IP地址,比较这两个IP地址
- 网络级检查:配置主机定期向中心管理主机报告其ARP缓存的内容
- 参考:ARP欺骗的原理及防范
- 使用安全检测软件定期对系统进行检查,预防遭受DNS攻击
- 学会利用DNS域名解析服务器解析域名,帮助防御DNS欺骗攻击
1.3 实验工具学习
(1)了解社会工程学工具包SET
社会工程学工具包(SET)是一个开源的、Python驱动的社会工程学渗透测试工具。这套工具包由David Kenned设计,而且已经成为业界部署实施社会工程学攻击的标准。kali中可以直接使用SET包。
- 启动:
setoolkit
- 包目录:
Select from the menu:
1) Social-Engineering Attacks //社会工程学攻击
2) Penetration Testing (Fast-Track) //快速追踪渗透测试
3) Third Party Modules //第三方模块
4) Update the Social-Engineer Toolkit //更新软件
5) Update SET configuration //升级配置
6) Help, Credits, and About //帮助
99) Exit the Social-Engineer Toolkit //退出
- 选择(1)后进入社会工程学攻击,出现以下选项:
Select from the menu:
1) Spear-Phishing Attack Vectors //鱼叉式钓鱼攻击向量
2) Website Attack Vectors //钓鱼网站攻击向量
3) Infectious Media Generator //媒介感染生成器
4) Create a Payload and Listener //生成一个payload和监听
5) Mass Mailer Attack //大规模邮件钓鱼
6) Arduino-Based Attack Vector //基于Arduino的攻击向量
7) Wireless Access Point Attack Vector //无线接入点攻击向量
8) QRCode Generator Attack Vector //二维码攻击向量
9) Powershell Attack Vectors //powershell攻击向量
10) SMS Spoofing Attack Vector //SMS欺骗攻击向量
11) Third Party Modules //第三方模块
99) Return back to the main menu. //退出
- 可以自由选择不同选项进行攻击;
(2)了解工具EtterCap
EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具。它具有动态连接嗅探、动态内容过滤和许多其他有趣的技巧。它支持对许多协议的主动和被动分析,并包含许多用于网络和主机分析的特性。kali中已经内置了ettercap,可以直接使用。
- 查看版本信息:
ettercap -v
- 启动:
ettercap -G
-
菜单处选择嗅探
sniff
→两个选择
- 嗅探所有:Unified sniffing…
- 桥接嗅探:Bridged sniffing…
-
网卡选择默认
eth0
,点击确认可开始嗅探 -
菜单处
Hosts
→Hosts List
可查看嗅探到的主机ip地址、mac地址 -
菜单处
Mitm
可选择攻击方式,包括arp 欺骗
、DHCP洪泛攻击
、DNS欺骗
等 -
菜单出
view
中可查看嗅探到的通信信息
2 实践内容
2.1 简单应用SET工具建立冒名网站
(1)修改Apache的端口文件
- kali终端中输入命令:
sudo vi /etc/apache2/ports.conf
- 查看端口是否为http对应的80号端口,不是就修改为80
i
修改,esc
退出编辑,:wq
保存退出
(2)查看80端口是否被占用
-
输入命令:
netstat -tupln | grep 80
-
查看80端口是否被占用
-
若有则使用
kill+进程号
杀死该进程
- 查看进程号:
ps
命令(help ps)
- 查看进程号:
-
若无法杀死进程,使用
kill -s 9 进程号
强制杀死进程 -
开启Apache服务:
systemctl start apache2
(3)使用SET工具包
- 启动:
setoolkit
- 选择1:Social-Engineering Attacks(社会工程学攻击)
- 选择2:Website Attack Vectors(钓鱼网站攻击向量)
- 选择3::Credential Harvester Attack Method`(即登录密码截取攻击)
- 选择2:Site Cloner(克隆网站)
(4)克隆网站
-
输入攻击机kali的IP地址:
192.168.3.154
,不输入也可以,使用默认也行。 -
输入一个被克隆的url:
随意(这里使用教务系统url)http://192.168.200.83/cas/login
-
启动:选择
y
继续
(5)钓鱼网站攻击成功
- 在靶机(Win 10 Pro 20H2,IP:192.168.3.123)中用IE输入kali地址
http://192.168.3.154
- 发现竟然进入的就是已经被完全克隆下来的“假”教务网站(除了网址不同,其他完全一致)
- 在登录的同时,kali也收到了靶机登录的信息
- 靶机中输入用户名密码登录网站,信息同步传回kali
2.2 ettercap DNS spoof
(1)修改DNS缓存表
-
将kali网卡模式修改为混杂模式:
ifconfig eth0 promisc
-
修改DNS缓存表:
vi /etc/ettercap/etter.dns
- 添加几条对网站和IP的DNS记录(需要欺骗的网址)
www.cnblogs.com A 192.168.95.134
mail.qq.com A 192.168.95.134
(2)使用工具ettercap进行嗅探
- 开启ettercap:
ettercap -G
- 在弹出的界面的Primary Interface中选择
eth0
(监听eth0网卡),点击右上角的对勾。
- 扫描子网:点击右上角的,选择
Hosts
→Scan for hosts
- 查看存活主机:
Host
→Hosts list
- 查看靶机IP及默认网关
- 在
Hosts list
中将网关IP
添加到target1
,将靶机IP
添加到target2
- 点击右上角的,选择
Plugins
→Manage the plugins
,双击dns_spoof
选择DNS欺骗的插件
-
点击左上角的
Start
开始嗅探 -
靶机中使用ping命令查看响应包(ping的是欺骗地址)
-
发现已经被DNS欺骗,解析的地址全部都是kali的IP
- 同时在ettercap上也成功捕获到访问记录
2.3 结合应用两种技术,用DNS spoof引导特定访问到冒名网站
- 在实验2.1和实验2.2完成的情况下,在靶机中使用IE打开网址
www.cnblogs.com
,发现进入的是实验2.1中已经被克隆下来,并且由实验2.2修改了dns域名的教务系统网站,成功~
3 实验遇到的问题及解决方法
- 在DNS spoof中,由于靶机之前访问过
www.cnblogs.com
的网站,所以有相关的DNS缓存,访问网站时没有实际查询DNS,因此不能成功诱骗。 - 解决方法:使用
ipconfig/flushdns
指令刷新DNS缓存,再次访问即可。
4 实验收获与感想
- 本次实验挺有意思的,学习了常见的ARP协议、DNS服务以及TCP/IP协议中的一些安全性漏洞以及利用方法,并实际使用SET工具和ettercap这两种工具进行实际操作,并实现了简单的网络欺诈。但在实验的过程中,我发现如果使用桥接模式则无法诱骗DNS,推测是路由器采取了一定的安全性策略,阻止了非法的DNS回复。这也让我看到了理论与实践之间的差距,不过我也发现除了这种网络欺诈的方式,SET工具也提供了一些较新的欺诈方式,比如无线局域网(Wi-Fi)、二维码等,如果有时间,我也会尝试去试用这些模块。