【无线安全】MITM——DNS篇
欢迎品尝由Tide_纯白 【无线安全】研究小组现炒现卖的无线安全系列教程,本系列教程旨在从攻击思路来加强无线安全,如有恶意模仿,一律揍哭。
本期课题:今天的网站也有崩掉的说
涉及工具:Ettercap & Setoolkit
涉及概念:MITM & ARP & DNS
涉及技术:DNS欺骗 & 社工钓鱼
【1】今天的网站也有崩掉的说
“现在的淘宝都能崩掉,马云那小子到底想不想干啦。”楼下重庆小面的王大爷一边给我加面一边吐槽,用惯了老年机的王大爷对面前这台大背头旧式电脑寄予了极大的厚望,这个小小的淘宝登录页是王大爷进军O2O的唯一希冀!
我接碗的手几乎是颤抖的,声音也开始变的支支吾吾:吖?谁说不是呢,今天的网站也有崩掉的说~
【2】Ettercap & Setoolkit
Ettercap
Ettercap是一个全面的中间人攻击工具,它的特点是嗅探实时连接、动态过滤内容以及许多其他有趣的技巧,它支持多个协议的主动和被动分离,并包含了网络和主机分析的许多特性。
在ARP篇我们已经使用过了,此番再次上阵,是因为本次的MITM_DNS欺骗是基于ARP毒化的前提下的,所以Ettercap依然是我们必备的,其次它的dns_spoof插件将为我们此次的DNS欺骗提供最快捷的方式。
Setoolkit
全称Social-Engineer Toolkit,顾名思义社会工程工具包,基于python,集成msf,这就是我能想到的最简洁的评价。
以上为主面板,我们稍后会用到1),关于2-6项,我可是十分明确的说一句请直接忽视,当然你也可以自己去深究下原因,讲真这个软件做的并不优秀,甚至说我们甚至可以完全不依赖它,它只是为我们提供了一个很鲜明的社会工程学思路,教唆我们按部就班的社工。
【3】MITM & ARP & DNS
MITM
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。它是一种由来已久的网络入侵手段,并且当今仍然有着广泛的发展空间,如SMB会话劫持、DNS欺骗等攻击都是典型的MITM攻击。
简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。
其实讲到这里,大家应该也猜到接下来的系列课程内容了。
ARP
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗,又称ARP毒化、ARP攻击等。
DNS
DNS(域名系统)在互联网中是一个非常重要的协议。它属于TCP/IP,是一个分层结构的分布式模块,它包含域名的相关信息。它负责在网络上映射域名到他们各自的IP上。DNS定位主机/服务器通过查看友好域名,使用域名系统,DNS将域名和IP地址相互映射 。这些设备(路由器、服务器等)连接到你的电脑不能理解一些友好的名称 (infosecinstitute.com),他们只了解一个IP地址,而DNS负责翻译它。
DNS服务器包含着一个主数据库,其中包括信息的IP地址,因为这涉及到相应的域名。所以在这些正常的通信中,一个主机发送请求到服务器,之后服务器响应正确的信息,即IP。而如果此时我们作为一个中间人角色,捕获并篡改DNS服务器返回的请求,或直接阻断主机发往DNS服务器的请求,如在主机请求www.baidu.com的时候,中间人捕获该请求,并直接将192.168.1.100的IP返回给主机,此时对于目标主机中间人角色就是模仿的DNS服务器的行为,而目标主机对www.baidu.com域名的访问实际上访问的是192.168.1.100:80的内容,这就是一个完整的DNS欺骗流程。
【4】DNS欺骗 & 社工钓鱼
本次测试以物理机(192.168.1.111)担任靶机,ParrotSec虚拟机担任中间人角色(192.168.1.102),emmm,因为家里只有一台pc,钓鱼网站的任务也同样交给ParrotSec,钓鱼网站源由阿里巴巴提供。
DNS欺骗
首先做下Ettercap配置:
sudo vim /etc/ettercap/etter.dns
添加如下内容:
【关于DNS记录类型】
#A记录
A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置域名的子域名。通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。 简单的说,A记录是指定域名对应的IP地址。
#PTR
PTR是pointer的简写,用于将一个IP地址映射到对应的域名,也可以看成是A记录的反向,IP地址的反向解析。 PTR主要用于邮件服务器,比如邮箱AAA@XXX.com给邮箱BBB@yahoo.com发了一封邮件,yahoo邮件服务器接到邮件时会查看这封邮件的头文件,并分析是由哪个IP地址发出来的,然后根据这个IP地址进行反向解析,如果解析结果对应XXX.com的IP地址就接受这封邮件,反之则拒绝接收这封邮件。
关于Ettercap进行ARP毒化的操作已经ARP篇详细介绍了,本章节在原基础上继续拓展,不在重复。
在arp毒化设置的基础上,加载dns_spoof插件,然后开启嗅探:
此时关于目标机对login.taobao.com域名的访问已经遭到了劫持:
然而,我们的游戏才刚刚开始!
社工钓鱼
打开setoolkit开始社会工程学步骤:
选择“1”社会工程学攻击:
我们选择今天需要用到的website Attack Vectors,即“2”,然后,参见作者解释,我们选择列表中的“3”,即盗取目标身份认证信息如账号密码。这里大家可已经看到了,其中“2”是根据目标浏览器漏洞获取目标系统shell,严格来讲,这完全是msf的功能,我们暂不在此平台做演示。
然后,我们参见作者解释,选择网站克隆功能,从系统提示来看,此平台不仅支持HTTP站点,而且还支持HTTPS的站点。
分别输入克隆目标和我们的作为服务的伪装服务器!setoolkit将会为你自动拉起apache,不管你是默认apache还是apache2,此处解放双手,无需预启动。
此时如果目标主机访问淘宝域名并尝试登录(https://login.taobao.com/),毫无疑问,从域名到页面用户感受与真实网站完全一致:
发生了什么呢?我们看下后台捕获到的数据,emmmm,什么?你问我密码呢?给马云爸爸留点面子好伐,此处密码采用了加密传输。但是,我们工作或生活中常见的平台显然并没有加密传输,即使进行了密码加密,十有八九也算不安全的加密方式,依靠js就可以逆向破解。
顺路查看下ettercap,域名自然被解析到了钓鱼网站上:
现在我们来讨论下产生的影响:
1)如果单独使用setoolkit时,setoolkit会在钓鱼操作执行以后会将会话重定向到真实网站。
形象点说,从用户角度的感受就是:我刚刚输入错了?我点到了什么嘛?没关系,再输一遍就是啦~
显然,第二遍是他的正常登录操作,虽然第一次登录失败,但绝大多数人不会察觉这一点的。
2)如果配合DNS欺骗的话,伪造的只是一个登录界面,伪造的服务器端在完成钓鱼任务后,目标主机依然无法正常访问所请求域名,但这样做的好处是他会主动通过访问域名进入你的钓鱼网站,而不需要额外通过社工手段引诱目标点击你的链接。
既然说到这了,顺便说下引诱的社工手段,包括短域名、高仿域名(如taobao.com & ta0ba0.com)等手段,毕竟IP的话,稍微有点常识的人肯定会有察觉的。
END
回到餐位上的我,望着密密麻麻的Apache日志陷入了沉思,我早该想到的,只要DNS欺骗存在,这个域名就永远无法正常访问,同时也为王大爷的毅力所折服>.<
,既然登不上去咱就不能等我先把面吃完咩!
讲真、今天的网站也有崩掉的说!