本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。
(1)简单应用SET工具建立冒名网站 (1分)
(2)ettercap DNS spoof (1分)
(3)结合应用两种技术,用DNS spoof引导特定访问到冒名网站。(1.5分)
(4)请勿使用外部网站做实验
- 通常在什么场景下容易受到DNS spoof攻击
自我感觉在同一局域网下、在同一网段下或在公共网络下,攻击者修改DNS缓存表达到DNS欺骗的目的
- 在日常生活中如何防范以上两种攻击方法?
- 不要乱连不明的Wifi,不乱点开不明的链接
- 或者说,及时给DNS服务器软件打补丁,避免被不法分子用DNS欺骗攻击。
DNS
- DNS即Domain Name System,,域名系统以分布数据库的形式将域名和IP地址相互转换。
- DNS协议即域名解析协议,是用来解析域名的。有了DNS我们就不需要再记住烦人的IP地址,用相对好记的域名就可以对服务器进行访问,即使服务器更换地址,我们依旧可以通过域名访问该服务器,这样能够使我们更方便地访问互联网。
原理:DNS欺骗是一种以中间人攻击的形式,它是攻击者冒充域名服务器的一种欺骗行为。攻击者通常冒充服务器,把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页了,而不是用户想要看到的网页。
- 防范:DNS欺骗攻击是很难防御的,因为这种攻击大多数本质都是被动的。通常情况下,除非发生欺骗攻击,否则你不可能知道你的DNS已经被欺骗,只是你打开的网页与你想要看到的网页有所不同。在很多针对性的攻击中,用户都无法知道自己已经将网上银行帐号信息输入到错误的网址,直到接到银行的电话告知其帐号已购买某某高价商品时用户才会知道。也就是说,在抵御这种类型攻击方面还是有迹可循:
- 保护内部设备: 像这样的攻击大多数都是从网络内部执行攻击的,如果你的网络设备很安全,那么那些感染的主机就很难向你的设备发动欺骗攻击。
- 不要依赖DNS:在高度敏感和安全的系统,你通常不会在这些系统上浏览网页,最后不要使用DNS。如果你有软件依赖于主机名来运行,那么可以在设备主机文件里手动指定。
- 使用入侵检测系统: 只要正确部署和配置,使用入侵检测系统就可以检测出大部分形式的ARP缓存中毒攻击和DNS欺骗攻击。
- 使用DNSSEC: DNSSEC是替代DNS的更好选择,它使用的是数字前面DNS记录来确保查询响应的有效性,DNSSEC现在还没有广泛运用,但是已被公认为是DNS的未来方向,也正是如此,美国国防部已经要求所有MIL和GOV域名都必须开始使用DNSSEC。
- 定义:set(社会工程学工具包)是一个开源的、Python驱动的社会工程学渗透测试工具。利用人们的好奇心、信任、贪婪及一些愚蠢的错误,攻击人们自身存在的弱点。
- 功能:传递攻击载荷到目标系统,收集目标系统数据,创建持久后门,进行中间人攻击等。
- 简单使用过程在实践过程记录中有具体体现
- 输入命令
sudo vi /etc/apache2/ports.conf
修改Apache
的端口文件,将端口改为http对应的80号端口
修改后按esc
键 -> :wq
保存退出
- 使用
netstat -tupln |grep 80
查看80端口是否被占用。查看了一下,有一个pid=1807的进程占用了80端口。于是,我使用kill 1807
杀死该进程或kill -s 9 1807
强制杀死进程。
- 开启Apache服务:输入
systemctl start apache2
输入
setoolkit
开启SET工具。选择
1)Social-Engineering Attacks
(社会工程学攻击)
- 选择
2) Website Attack Vectors
(钓鱼网站攻击向量)
- 选择
3) Credential Harvester Attack Method
(登录密码截取攻击)
- 选择
2) Site Cloner
(克隆网站)
- 输入攻击机Kali的IP地址:
192.168.154.156
(可以使用网址缩短改变网址来迷惑靶机
- 输入一个有需要登录的url(被克隆的url)
- 出现提示
Do you want to attempt to disable Apache?
时,选择y
- 在靶机浏览器地址栏中输入攻击机Kali的IP地址(192.168.154.156)访问,攻击机这边收到连接提示,如图所示
- 在靶机输入(可能有误的)用户名和密码,攻击机这边可全部获取,是不是很可怕呢?设想如果是银行卡和密码的话,细思极恐。
- 为了达到更好的隐蔽的效果,我们可以利用网址缩短地址来进行缩短,如图所示,在空白栏中输入所要缩短的地址,点击
生成
就OK。
ettercap DNS spoof
- 输入
ifconfig eth0 promisc
将Kali网卡改为混杂模式 - 输入
vi /etc/ettercap/etter.dns
将DNS缓存表进行修改,按i
键添加几条对网站和IP的DNS记录,也就是构造虚假的域名和IP的对应关系。
- 开启
ettercap
:输入ettercap -G
自动弹出ettercap的可视化界面
- 点击工具栏中的
Sniff
->unified sniffing
(嗅探所有),在弹出的界面中选择eth0
后点击确定
(即监听eth0网卡)
- 点击工具栏中的
Hosts
->Scan for hosts
扫描子网,再点击Hosts list
查看存活主机,将网关IP
添加到target 1
,靶机IP
添加到target2
。
- 点击工具栏中的
Flugins
->Manage the plugins
,双击dns_spoof
,选择DNS欺骗的插件。
- 点击左上角的
Start
开始嗅探,此时在靶机中用命令行ping www.mosoteach.cn
和ping www.cnblogs.com
会发现解析地址是攻击机kali的IP地址
- 此时在ettercap上也成功捕获到访问记录
- 首先,按照任务一的步骤克隆一个登陆页面,跳转成功
- 通过任务二实施DNS欺骗,此时在靶机输入网址
www.mosoteach.cn
可以成功访问我们的冒名网站
- 之后,重新开启setoolkit停在正在捕获处(注意检查80端口是否被占用),重新打开ettercap开始DNS欺骗,靶机中输入网址
www.mosoteach.cn
可以发现捕获到记录。
Q1:在任务一中等待收到的连接提示时,发现一直卡在某处不动。
A1:后来发现,自己没有输入systemctl start apache2
打开apache。
Q2:在任务二中,使用ettercap进行DNS欺骗时,发现靶机ping
之后并没有变化。
A2:后来发现,自己的Kali攻击机的网关地址为192.168.154.2
,把该地址填入target 1
,大家可以参考如何在Linux中查看网关IP来查询网关。
本次实验相对简单,但是也让我了解到原来在DNS欺骗中不法分子获取账号密码是非常容易的,这也让我认识到了生活中信息安全的重要性,今后要多多加强信息安全防范意识。