2017-2018-2 20155314《网络对抗技术》Exp7 网络欺诈防范
2017-2018-2 20155314《网络对抗技术》Exp7 网络欺诈防范
目录
实验目标
理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。
实验内容
简单应用SET工具建立冒名网站 (1分)
ettercap DNS spoof (1分)
结合应用两种技术,用DNS spoof引导特定访问到冒名网站。(1.5分)
实验环境
- macOS本机
- macOS下Parallels Desktop虚拟机中(网络源均设置为共享网络模式):
- Kali Linux - 64bit(攻击机,IP为
10.211.55.10
) - Windows 7 - 64bit(靶机,IP为
10.211.55.14
)
- Kali Linux - 64bit(攻击机,IP为
基础问题回答
- 通常在什么场景下容易受到DNS spoof攻击?
- 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名服务器,来发送伪造的数据包,从而修改目标主机的DNS缓存表,达到DNS欺骗的目的
- 连公共场合的免费WiFi也容易受到攻击,尤其是那种不需要输入密码直接就可以连接的更加可疑
- 在日常生活工作中如何防范以上两攻击方法?
- 可以将IP地址和MAC地址进行绑定,很多时候DNS欺骗攻击是以ARP欺骗为开端的,所以将网关的IP地址和MAC地址静态绑定在一起,可以防范ARP欺骗,进而放止DNS spoof攻击
- 直接使用IP登录网站,这种是最安全的,但是实际操作起来太麻烦,没有人会去记一个网站的IP地址
- 对于冒名网站,要做到不随便点来路不明的链接,或者在点之前可以先观察一下域名,查看其是否存在异常
预备知识
DNS
DNS即Domain Name System,域名系统以分布数据库的形式将域名和IP地址相互转换。DNS协议即域名解析协议,是用来解析域名的。有了DNS我们就不用再记住烦人的IP地址,用相对好记的域名就可以对服务器进行访问,即使服务器更换地址,我们依旧可以通过域名访问该服务器,这样能够时候我们更方便的访问互联网。
DNS spoof(DNS欺骗)
- 原理:
DNS欺骗是一种中间人攻击形式,它是攻击者冒充域名服务器的一种欺骗行为。
DNS spoof主要用于向主机提供错误DNS信息。当用户尝试浏览网页,例如IP地址为
XXX.XX.XX.XX
,网址为www.bankofamerica.com
,而实际上登录的确实IP地址YYY.YY.YY.YY
上的www.bankofamerica.com
,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这个网址是攻击者用以窃取网上银行登录证书以及帐号信息的假冒网址,DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
- 原因:
尽管DNS在互联网中扮演如此重要的角色,但是在设计DNS协议时设计者没有考虑到一些安全问题,导致了DNS的安全隐患与缺陷。
DNS欺骗就是利用DNS协议设计时的一个非常重要的安全缺陷。首先欺骗者向目标机器发送构造的APR应答包,ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造后的一个DNS返回包,对方收到DNS应答包,发现ID和端口号全部正确,即把返回数据包中的额域名和对应的IP地址保存近DNS缓存表中,而后来当真实的DNS应答包返回时则被丢弃。
- 防范:
DNS欺骗攻击是很难防御的,因为这种攻击大多数本质都是被动的。通常情况下,除非发生欺骗攻击,否则你不可能知道你的DNS已经被欺骗,只是你打开的网页与你想要看到的网页有所不同。在很多针对性的攻击中,用户都无法知道自己已经将网上银行帐号信息输入到错误的网址,直到接到银行的电话告知其帐号已购买某某高价商品时用户才会知道。这就是说,在抵御这种类型攻击方面还是有迹可循:
- 保护内部设备: 像这样的攻击大多数都是从网络内部执行攻击的,如果你的网络设备很安全,那么那些感染的主机就很难向你的设备发动欺骗攻击。
- 不要依赖DNS:在高度敏感和安全的系统,你通常不会在这些系统上浏览网页,最后不要使用DNS。如果你有软件依赖于主机名来运行,那么可以在设备主机文件里手动指定。
- 使用入侵检测系统: 只要正确部署和配置,使用入侵检测系统就可以检测出大部分形式的ARP缓存中毒攻击和DNS欺骗攻击。
- 使用DNSSEC: DNSSEC是替代DNS的更好选择,它使用的是数字前面DNS记录来确保查询响应的有效性,DNSSEC现在还没有广泛运用,但是已被公认为是DNS的未来方向,也正是如此,美国国防部已经要求所有MIL和GOV域名都必须开始使用DNSSEC。
实验步骤
1 利用setoolkit建立冒名网站
SET(Social-Engineer Toolkit)是一款python开发的社会工程学工具包。
打开Kali攻击机,终端中输入
setoolkit
命令启动SET工具,然后输入y
,出现欢迎页面(跟msfconsole都是一个德行):
往下拉会出现几个选项,分别是:- Social-Engineering Attacks:社会工程学攻击
- Fast-Track Penetration Testing:快速追踪渗透测试
- Third Party Modules:第三方模块
- Update the Social-Engineer Toolkit:更新软件
- Update SET configuration:升级配置
- Help, Credits, and About:关于
- Exit the Social-Engineer Toolkit:退出
setoolkit最常用的功能是社会工程学攻击,因此我们选择第一个选项
1
:
又出现一个欢迎页面,之后有几个选项:- Spear-Phishing Attack Vectors:鱼叉式钓鱼攻击向量(也称针对性钓鱼攻击)
- Website Attack Vectors:钓鱼网站攻击向量
- Infectious Media Generator:媒介感染生成器
- Create a Payload and Listener:生成一个payload和监听
- Mass Mailer Attack:大规模邮件钓鱼
- Arduino-Based Attack Vector:基于Arduino的攻击向量(类似于单片机)
- Wireless Access Point Attack Vector:无线接入点攻击向量
- QRCode Generator Attack Vector:二维码攻击向量
- Powershell Attack Vectors:powershell攻击向量
- SMS Spoofing Attack Vectors:SMS欺骗攻击向量
- Third Party Modules:第三方模块
- Return back to the main menu.返回主菜单
这里我们选择钓鱼网站攻击向量
2
:
选完又蹦出来几个选项,好在有相应介绍:- Java Applet Attack Method:Java程序攻击(这里会欺骗用户进行Java升级,内含payload,可能太老,win7实测无效)
- Metasploit Browser Exploit Method:基于Metasploit的浏览器攻击
- Credential Harvester Attack Method:认证获取攻击(搭建web、克隆登陆网页、获取认证信息)
- Tabnabbing Attack Method:标签劫持攻击
- Web Jacking Attack Method:网页劫持攻击
- Multi-Attack Web Method:综合攻击
- Full Screen Attack Method:全屏攻击
- HTA Attack Method:HTA攻击(当用户访问设计好的网页时,会提示选择keep/discard(保留/放弃))
- Return to Main Menu:返回主菜单
这里我们选择认证获取攻击
3
截取登录密码:
出现3个功能选项,分别是:- Web Templates:网页模板(只有google,facebook,twitter,yahoo,java required这几个选项,可以自己添加)
- Site Cloner:站点克隆(有些网页克隆会出现问题,只能克隆一些简单的网页)
- Custom Import:自定义输入
- Return to Webattack Menu:返回Web攻击菜单
这里我们选择站点克隆
2
进行网站的克隆:- 输入要克隆的url,这里以学校图书馆在线预约系统为例(打码了!):
- 这里提示端口80被占用,输入
y
杀死占用该端口的进程Apache和nginx服务,开启Harvester服务:
等待“鱼儿”上钩!
- 输入要克隆的url,这里以学校图书馆在线预约系统为例(打码了!):
win7靶机打开IE浏览器,输入Kali攻击机的IP:
靶机上钩了!Kali捕获到靶机的HTTP请求!诶等等?!貌似有404???
可恶啊靶机这边显示的网页也不正常>_<看来是钓鱼网站制作失败了>_<换成教务网试试?别急,咱们这回先在本机瞅瞅钓鱼网站做得咋样!浏览器中输入自己的IP:
奈斯!一模一样啊嘻嘻(阴脸)但是,像学长的博客中说的那样,为了能够更好的迷惑别人,我们不能直接将IP地址发给对方,需要先对其进行一定的伪装!这里我们找一个短网址生成器,将攻击机的IP地址变成一串短网址:
将得到的伪装地址
http://short.php5developer.com/dst
在靶机的IE浏览器中打开,出现一个跳转提示(和广告):
往下拉,它告诉我们等待10秒后会自动跳转到钓鱼网站的IP:
10s后跳转——出来吧钓鱼网站!!!
Kali这边的setoolkit会记录下靶机的IP以及生成一个以时间为名的文件:
然后模拟不知情的受害用户在钓鱼网站上输入用户名、密码(甚至还有验证码),接着就会被setoolkit工具记录下来:
其中submit对应html中的提交当前表单中的全部信息,包括username和password。可以看到钓鱼网站攻击成功,成功窃取用户的身份信息(虽然这回是假的,不过仍不得不让人细思极恐啊)!!!
2 ettercap DNS spoof
ettercap是一个很好用来演示ARP欺骗攻击的工具,包含一个DNS插件,非常容易使用。
输入命令
ifconfig eth0 promisc
将Kali攻击机的网卡改为混杂模式:
输入命令
vi /etc/ettercap/etter.dns
对ettercap的DNS缓存表进行修改:
在对应的位置添加对应的标识和IP地址(*代表所有域名),后边就是你要欺骗成的IP地址。如图所示,我添加了一条对博客园网站的DNS记录,并欺骗成Kali攻击机的IP。输入命令
ettercap -G
启动ettercap可视化界面,一下弹出一个带有蜘蛛的界面把我吓了一跳(蜘蛛恐惧症伤不起啊>_<):
依次选择上方工具栏中的
Sniff
->Unified sniffing...
打开配置界面,选择网卡eth0
(默认):
依次选择工具栏中的
Hosts
->Scan for hosts
扫描存活主机:
再选择同目录下的
Hosts list
查看扫描结果,然后开启中间人监听模式,将要监听的两端(网关IP和win7靶机IP)分别添加到Target1、Target2,如图:
选择工具栏
Mitm
—>Arp poisoning
,勾选Sniff remote connections.
(嗅探并保持原连接状态),确定,然后选择工具栏Start
->Start sniffing
开始实行arp欺骗:
在靶机中发现已经被arp欺骗成功(欺骗靶机
10.211.55.14
,让它误以为Kali攻击机10.211.55.10
是网关10.211.55.1
):
依次选择工具栏
View
->Connections
查看和被监听靶机之间的所有连接信息:
依次选择工具栏
Plugins
—>Manage the plugins
,选择DNS_spoof插件,*
表示被选中:
选择工具栏
Start
->Start sniffing
开始嗅探:
此时在靶机中的cmd输入命令
ping www.cnblogs.com
会发现解析的地址是Kali的IP:
在Kali上可以看到,在DNS已经成功欺骗时,所有会话被转移到了攻击者的主机,而不是真正的博客园服务器!!
本次DNS欺骗攻击还可以用ettercap的命令行版本完成(感觉这回用命令行要比界面操作简单的多得多啊)!在配置完
etter.dns
之后,只需输入如下命令即可完成欺骗:ettercap -T -q -i eth0 -P dns_spoof -M arp // //
各参数及其含义如下:
-P
:使用插件(这里我们使用的是dns_spoof)-T
:使用基于文本界面-q
:启动安静模式(不回显的意思)-M
:启动ARP欺骗攻击// //
:代表欺骗整个子网网络-i eth0
:使用特定的接口eth0执行dns欺骗攻击
3 利用DNS spoof引导特定访问到冒名网站
- 结合应用以上两种技术,下面我们用DNS spoof引导特定访问钓鱼网站。
- 为了利用DNS spoof将靶机引导到我们的钓鱼网站,这里假设我们的钓鱼网站是学校教务信息网的登录页面,先利用第一个实验中的步骤先克隆一个登录页面,然后再通过第二个实验实施DNS spoof,接着在靶机上输入博客园的网址
www.cnblogs.com
,就可以发现成功登录了钓鱼网站同时记录下用户名和密码:
实验总结与体会
DNS欺骗是一种非常危险的攻击,因为攻击者可以利用ettercap的dns_spoof插件和其他工具执行攻击,最终,攻击者可以使用一个社会工程工具包(如SET)来执行攻击去控制受害者的主机。想象一下这是多容易,通过社会工程工具包和DNS欺骗技术你所需要做的仅仅就是配置你的社会工程工具包和你的IP清单,制作像百度一样的网站欺骗域名到你的IP地址上。当受害者打开www.baidu.com
,你的攻击将使它访问你的IP,之后建立一个远程的会话。
怎么说呢,还是那句话,遇事多留心、常疑问,提高防骗意识,才能立于不(bei)败(pian)之地!
参考资料
- setoolkit 制作钓鱼网页 - 金牛小子 - 博客园
- Setoolkit社会工程学工具包 - CSDN博客
- 某《魔鬼训练营》读书笔记:setoolkit克隆网站
- DNS欺骗原理及工作工程分析 - CSDN博客
- Exploitation with Social Engineering Toolkit SET - AirCrk - 博客园
- DNS欺骗是什么?演示DNS欺骗攻击
- ettercap局域网内DNS欺骗(隔壁的哥们轻一点 ...)
2017-2018-2 20155314《网络对抗技术》Exp7 网络欺诈防范的更多相关文章
- 20145226夏艺华 网络对抗技术 EXP7 网络欺诈技术防范
20145226夏艺华 网络对抗技术 EXP7 网络欺诈技术防范 实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. · 简单应用SET工具建立冒名网站 · ett ...
- 2018-2019-2 20165205 网络对抗技术 Exp7 网络欺诈防范
2018-2019-2 20165205 网络对抗技术 Exp7 网络欺诈防范 实验内容 本次实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET ...
- 20145236《网络对抗》Exp7 网络欺诈技术防范
20145236<网络对抗>Exp7 网络欺诈技术防范 一.基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 随便连接没有设置密码的wifi的情况下比较容易受攻击,因为这样就 ...
- 20145215《网络对抗》Exp7 网络欺诈技术防范
20145215<网络对抗>Exp7 网络欺诈技术防范 基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名 ...
- 20145208 蔡野 《网络对抗》Exp7 网络欺诈技术防范
20145208 蔡野 <网络对抗>Exp7 网络欺诈技术防范 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体有(1)简单应用SET工具建立冒名网站(2) ...
- 20155304《网络对抗》Exp7 网络欺诈技术防范
20155304<网络对抗>Exp7 网络欺诈技术防范 实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建立冒名网 ...
- 20145316许心远《网络对抗》EXP7网络欺诈技术防范
20145316许心远<网络对抗>EXP7网络欺诈技术防范 实验后回答问题 通常在什么场景下容易受到DNS spoof攻击 公共共享网络里,同一网段可以ping通的网络非常容易被攻击 在日 ...
- 20145220韩旭飞《网络对抗》Exp7 网络欺诈技术防范
20145220韩旭飞<网络对抗>Exp7 网络欺诈技术防范 应用SET工具建立冒名网站 要让冒名网站在别的主机上也能看到,需要开启本机的Apache服务,并且要将Apache服务的默认端 ...
- 20145307陈俊达《网络对抗》Exp7 网络欺诈技术防范
20145307陈俊达<网络对抗>Exp7 网络欺诈技术防范 基础问题回答 什么是dns欺骗攻击! 利用dns spoof运行DNS欺骗,如果是请求解析某个域名,dnsspoof会让该域名 ...
- 20145317彭垚《网络对抗》Exp7 网络欺诈技术防范
20145317彭垚<网络对抗>Exp7 网络欺诈技术防范 基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充 ...
随机推荐
- Ext获取uuid
Ext获取UUID 方法1:Ext.data.IdGenerator.get('uuid').generate() 方法2://创建一个uuid生成器uuidGenerator var uuidGen ...
- undefined 与 xx is not defined 的区别
undefined 与 xx is not defined 的区别 1. undefined 表示是javascript中的一种数据类型,当被定义的变量没有被赋值或者某个被调用的函数没有定义返回值时候 ...
- nodeJs express mongodb 建站(linux 版)
一.环境安装 1.安装node wget http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz //下载tar xvf node-v ...
- js 返回小数点后几位
function fmoney(s, n) //s:传入的float数字 ,n:希望返回小数点几位 { n = n > 0 && n <= 20 ? n : 2; s = ...
- Python入门基础之list和tuple
Python之创建list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: > ...
- 19.Odoo产品分析 (二) – 商业板块(11) – 在线活动(1)
查看Odoo产品分析系列--目录 点击安装"在线活动". 1. 主页 在线活动绑定在电子商务中,在网站中可以看到在线活动的菜单: 在这里可以按时间看到每一个活动. 2. 新建活动 ...
- 获取spring applicationcontext数据连接connection
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); ...
- python第一百一十天--Django 5
#####################################中间件################################################ settings.py ...
- 三、Tableau筛选器的使用
一.使用筛选器制作联动效果 注意,下面两幅图以‘是否盈利’来添加颜色标签 图一:地图 图二:月度销售客户细分 图三:月度销售产品类别 1.新增仪表盘:将图一.图二.图三拉进同一个仪表盘 2.在图一原图 ...
- Linux下进程的创建过程分析(_do_fork do_fork详解)--Linux进程的管理与调度(八)
Unix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量 ...