1中间人之arp劫持
1.1前言
相信有不少同学平时在网吧或者家里上网的时候会发生网络断开、网络超时、请求的路径不存在等问题,这些问题有时候刷新页面会被解决,但是对于一些针对掉电、断网等处理不好的应用来说,无非是致命的;用户体验也会非常不满意。这很多数原因是与arp劫持有关。
1.2 arp的概念
ARP是地址转换协议(Address Resolution Protocol)的英文缩写,它是一个链路层协议,工作在OSI 模型的第二层,在本层和硬件接口间进行联系,同时对上层(网络层)提供服务。我们知道二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。也就是说IP数据包在局域网内部传输时并不是靠IP地址而是靠MAC地址来识别目标的,因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的协议
1.3 arp的表机制
ARP工作时,首先请求主机会发送出一个含有所希望到达的IP地址的以太网广播数据包,然后目标IP的所有者会以一个含有IP和MAC地址对的数据包应答请求主机。这样请求主机就能获得要到达的IP地址对应的MAC地址,同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不必要的ARP通信。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除。
1.4 arp的攻击原理
局域网上的一台主机,如果接收到一个ARP报文,即使该报文不是该主机所发送的ARP请求的应答报文,该主机也会将ARP报文中的发送者的MAC地址和IP地址更新或加入到ARP表中。
ARP欺骗攻击就利用了这点,攻击者主动发送ARP报文,发送者的MAC地址为攻击者主机的MAC地址,发送者的IP地址为被攻击主机的IP地址。通过不断发送这些伪造的ARP报文,让局域网上所有的主机和网关ARP表,其对应的MAC地址均为攻击者的MAC地址,这样所有的网络流量都会发送给攻击者主机。由于ARP欺骗攻击导致了主机和网关的ARP表的不正确,这种情况我们也称为ARP中毒
1.5 arp劫持的分类
主机型ARP欺骗:即改变某台主机的网关的mac地址,使受害者流向网关的流量直接流经攻击者的电脑
网关型ARP欺骗:即改变某台主机的mac地址,使网关流经受害者的流量直接流向攻击者的电脑。
1.6网关的概念
从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关Gateway就是一个网络连接到另一个网络的“关口”。也就是网络关卡
1.7 arp劫持攻击的实验操作
1.7.1 背景
1、环境决定这里只能提供主机型arp劫持(即伪造网关的mac地址)的例子
2、环境类型为windows环境,由于图形化界面让大家能够更好的理解,这里不举例使用linux环境(其实知道原理后,方法都是一样的)
1.7.2 攻击前的准备
1、两台windows7系统的电脑,并且处于同一网络,ip地址分别为172.20.17.148(攻击者A的ip)、172.20.17.83(受害者B的ip)、网关为172.20.17.254
2、A电脑上安装cain工具(注意:安装前需要装wincap,安装教程见度娘)、wireshark抓包工具
3、浏览器同一使用谷歌浏览器
1.7.3 实验步骤
1、查看受害者B的arp列表,命令为arp -a,注意红圈部分网关的mac地址
2、查看攻击者A的mac地址,命令为ipconfig /all
3、打开攻击者的cain工具,在【配置】中选择网卡信息
4、打开图标嗅探和arp按钮
5、进入【嗅探器】下的【主机】,左击空白处,点击上栏中的加号,搜寻所有局域网中的ip地址
6、点击【嗅探器】下的【arp】按钮,左击空白处,点击加号【已经变为蓝色】,可以看见主机列表,注意:左边选取的是受害者B的ip地址,右边选取的是受害者网关的地址,点击确定,请看下图添加完的列表poisoning为正在攻击的意思
7、既然步骤6已经正在进行arp攻击了,我们现在去受害者B下查看网关的mac地址是否有变化,如下图,可以看出,网关的mac地址已经变成了20-1a-06-5e-40-2c,大家回到步骤2中看一看,这个就是攻击者A的物理地址,实验成功。
1.7.4 arp劫持的真正危害
如果你认为实验步骤结束就完事了,那么你就错了。
1、安全测试中有一条红线:禁止明文传输敏感信息。这一条用例是为了防止攻击者进行arp劫持后抓取敏感信息而设置的,所以为了防止攻击者非法嗅探受害者信息,要么设置arp不能被劫持、要么设置传输加密【一般都设为传输加密】
2、导致断网、访问失败的现象
1.7.5 arp嗅探敏感信息实例
1、打开A电脑中的wireshark嗅探工具,选择好网卡,设置过滤条件http,点击图标进行抓包
2、登录B的电脑,直接登录爱奇艺网站,输入用户名密码,点击登录【可以随便输入】
3、切换至A的电脑,打开wireshark嗅探器,根据过滤规则嗅探流量信息如下
4、查看具体的抓包信息得使用wireshark的http流,右击上面条例任意一条,选择【追踪流】--【http流】,得到如下信息,其中用户的密码是被加密的,换个角度讲,各位同学平时中是否遇见过密码明文传输的?所以,有些网站对这方面没有进行加密的时候,密码就很容易被arp劫持所获取。
5、其实cain工具本身自带嗅探密码机制,在【口令】的【http】中可以查看得到,我这里还嗅探到不少呢
1.7.6 Arp导致的断网
大量的发送arp错误网关mac地址会导致受害者主机访问不到网关地址,继而就无法传递请求响应报文,就容易导致超时断网,如下图
1.8 arp劫持的防范
1.8.1 解决方向:
将访问的mac地址与ip绑定为静态
1.8.2 windows绑定方法:
1、在受害者机器上可以看见其类型为动态
2、执行命令netsh i i show in查看本地网卡对应的"Idx"值,接下来会使用到。
3、若只需临时绑定ARP表项,跟上参数:store=active ,如果未永久,则不跟参数。即:【netsh -c "i i" add ne 13 172.20.17.254 00-00-5e-00-01-11 store=active】,如果提示对象已存在,则执行arp -d * 进行清理【执行者必须为管理员身份】
4、至此,网卡的mac地址已变为静态【不允许更改了】,再次利用cain执行arp劫持攻击,发现再也修改不了arp的mac地址了,也就不存在断网、嗅探数据的情况了。
1.8.3 linux绑定方法
只提供绑定方法:
1、新建一个静态的mac-->ip对应表文件:ip-mac,将要绑定的IP和MAC地下写入此文件,格式为 ip mac。放在etc目录下
2、设置开机自动绑定echo 'arp -f /etc/ip-mac ' >> /etc/rc.d/rc.local
3、手动执行一下绑定 arp -f /etc/ip-mac
4、执行arp命令查看列表,发现ip的mac地址后的标识变为CM,即绑定成功
2 中间人之DNS劫持
2.1 前言
当我们上网的时候【场景:点击页面按钮的时候】会时不时的跳出一些其他页面【@@!】:广告、认证鉴权页面等等,这些页面非常烦人,很顽固,这就有可能网站的dns被劫持了
2.2 dns概念
Dns是一种域名机制,当请求www.baidu.com的时候,baidu.com就是域名,但是光知道域名是无法访问服务器的,我们需要ip地址,那么这些ip的机制在哪里获取呢,这时候域名服务器就起到了映射域名和ip的作用,访问baidu.com后,请求转向域名服务器,域名服务器将对应的ip解析出来,通过ip再来访问web的真正服务器,再返回响应至页面
2.3 dns劫持的原理
1、由于域名劫持只能在特定的网络范围内进行,所以范围外的域名服务器(DNS)能返回正常IP地址。攻击者正是利用此点在范围内封锁正常DNS的IP地址,使用域名劫持技术,通过冒充原域名以E-MAIL方式修改公司的注册域名记录,或将域名转让到其他组织,通过修改注册信息后在所指定的DNS服务器加进该域名记录,让原域名指向另一IP的服务器,让多数网民无法正确访问,从而使得某些用户直接访问到了恶意用户所指定的域名地址。
2、结合cain工具分析dns劫持:受害者请求域名解析,域名服务器在范围外进行解析,并通过E-MAIL的方式发送给受害者,这时候攻击者利用cain工具发送假的域名解析地址,成功修改正确的域名地址,再发送至受害者,这时候,受害者进行访问,就有可能被钓鱼到攻击者指定的页面。 注意:在某些网络速度快的地方,真实的IP地址返回得比窃持软件提供的假地址要快,因为监测和返回这么巨大的数据流量也是要花费一定时间的。
2.4 DNS劫持的实验操作
2.4.1 背景
采用windows环境进行模拟讲解
2.4.2 攻击前的准备
1、两台windows7系统的电脑,并且处于同一网络,ip地址分别为172.20.17.148(攻击者A的ip)、172.20.17.83(受害者B的ip)、网关为172.20.17.254
2、A电脑上安装cain工具(注意:安装前需要装wincap,安装教程见度娘)、wireshark抓包工具
3、浏览器同一使用谷歌浏览器
4、A电脑本地安装comsenzexp【一种web服务器,和tomcat类似,集成php环境】,默认页面为forum.php,可以视为钓鱼页面
5、实验对象为ava.qq.com,正常页面如下
Cmd命令行执行ping命令,正常响应如下,117.78.42.173是正常域名服务器解析的ip地址
2.4.3实验步骤
1、登录A电脑,打开cain工具,进入选取网卡、点击嗅探、arp按钮、扫描全部主机【此处不再累述】
2、添加攻击者ip和网关ip【方法此处不再累述】
3、点击上图中的APR-DNS,然后在空白处左击,再点击上面的蓝色的加号,添加攻击的域名,点击确定。
4、切换至B的电脑,针对步骤3已经展开dns攻击,首先我们打开B电脑的cmd命令行,执行命令 ping ava.qq.com,效果如下:可以发现,域名解析的ip地址已经被替换成了172.20.17.148,证明已经被劫持,而上图中的数字32,则标识被劫持的次数
再在页面上访问ava.qq.com,发现ava.qq.com的域名已经被成功解析成172.20.17.148,间接的诱使受害者往http://172.20.17.148:80/forum.php【简称172.20.17.148】的地址访问,就产生了如下效果
5、页面为我自己【即A电脑】的钓鱼页面,因为web是自己设计的,一旦用户填写了账号密码,并提交请求,攻击者就会在后台服务器中获取,风险极高
2.4.4 dns劫持的危害
1、导致攻击者有机可乘,劫持后使用钓鱼网络进行网络钓鱼
2、由上面的网络钓鱼,可引发一系列的csrf跨站请求伪造攻击
2.5 Dns劫持的防范
修改首选和备用dns服务器ip
1、进入B【受害者】的电脑,打开控制面板,进入【网络和internet】,再【进入网络和共享中心】,点击【本地连接】,选择【属性】,点击internet协议版本4,再点击【属性】,打开属性配置页面,选取【使用下面的dns服务器地址】,然后填写苏州的dns服务器地址,首选为61.177.7.1,备用为221.228.255.1,点击确定。
2、使用真实的ip进行访问,不是使用域名访问
原文始发于微信公众号(德斯克安全小课堂):渗透测试 | 中间人劫持深入剖析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论