ARP是Address Resolution Protocol的缩写。其基本功能就是在主机发送数据之前将目标IP转换为MAC地址,完成网络地址到物理地理地址的映射,以保证两台主机能够正常通信。
任何一台主机安装了TCP/IP协议都会有ARP缓存表,该表保存了这个网络(局域网)中各主机IP对应的MAC地址。
ARP分为静态和动态,如果类型为动态,那么主机在一段时间内不与此IP通信,将会删除对应的条目。而静态ARP缓存条目是永久性的。
使用arp -a命令可以查看缓存表
使用arp -s命令可以设置静态缓存表
使用arp -d命令可以清空ARP缓存表
ARP欺骗是指,攻击者发送假冒的ARP信息到本地局域网中,通常情况下,是将攻击者的MAC地址与另一台机器的IP结合在一起,例如默认网关,这将引起发往这个IP的流量都被攻击者得到。
一、ARP欺骗原理
1.攻击者可以伪装ARP应答,冒充真正要通信的主机,以假乱真。
2.ARP协议是无状态的,这就表示主机可以自由地发送ARP应答包,即使主机并未受到查询。
3.计算机没有提供检验UP到MAC地址是否正确的机制,直接将应答包中的MAC地址与对应的IP地址替换掉原有ARP缓存表的相关信息。
如果入侵者正处在局域网内,利用ARP设计的一些缺陷可以在网络中发送虚假的ARP请求或响应,这就是ARP欺骗。
二、ARP攻击
有时候攻击者在入侵目标站点时,由于安全措施很到位,并不能获取权限,恰好服务器也只放了一个网站,无法旁注,这是攻击者就可能通过C段ARP嗅探攻击,继续入侵制定的目标网站,C端攻击也可以看作是另类的“旁注”。
所谓C段攻击,就是指同一网关下的主机ARP嗅探。比如攻击者的目标网站为“www.example.com”,服务器地址为:192.168.1.8,在无法直接渗透目标服务器时,攻击者就可能去入侵与192.168.1.8在同一网关下的服务器,一般是192.168.1.xxx,也就是C段IP,在得到服务器权限后,对目标主机实施ARP嗅探攻击(一般嗅探敏感数据为FTP密码,Admin Pass等)
三、Cain的ARP欺骗攻击
ARP嗅探的前提是在同一个网关中。
1.打开攻击,点击相应按钮激活嗅探器。
2.在主界面中选择"Sniffer"选项,并在空白处点击鼠标右键,选择"Scan MAC Addresses"。
3.然后在弹出的新界面中选择要扫描的IP地址段。
4.Cain将会扫描同一网关下的主机,并将存活主机的IP、MAC等信息显示在"Sniffer"选项卡中
5.在"Sniffer"底部点击相应选项,在新界面中单击空白区域,并单击+,然后选择要欺骗的主机。在左侧选择网关,在右侧选择要嗅探的主机,最后单击OK按钮,然后在菜单栏中单击相应按钮,即可启动嗅探器。
6.可以看见在攻击者的机器上嗅探到了靶机的数据包
![[渗透测试] ARP欺骗攻击&DNS欺骗攻击_第6张图片](http://img.e-com-net.com/image/info8/601c39734f8d4894a9a1c1bd3f4611c6.jpg)
![[渗透测试] ARP欺骗攻击&DNS欺骗攻击_第7张图片](http://img.e-com-net.com/image/info8/90f33ccf547e4db0b68e80a12f6c8d14.jpg)
7.单击下面的Passwords就可以看到具体嗅探出的内容
8.观察攻击前的ARP缓存表和攻击后的ARP缓存表
可见网关192.168.237.1的MAC地址变为了攻击者192.168.237.129的MAC地址。
![[渗透测试] ARP欺骗攻击&DNS欺骗攻击_第9张图片](http://img.e-com-net.com/image/info8/6ff25ff4686a48928cc762b595bfde09.jpg)
![[渗透测试] ARP欺骗攻击&DNS欺骗攻击_第10张图片](http://img.e-com-net.com/image/info8/69b441d06f744ca8be54384ff3080b29.jpg)
这种攻击方法主要是嗅探登录凭证。
四、Ettercap的DNS欺骗攻击
DNS欺骗是指,攻击者冒充域名服务器,向主机提供错误的DNS信息,使得主机通过域名访问了错误的IP地址。
kali下预装了Ettercap
1.在命令行下运行ettercap --gtk启动图形化界面
2.在Ettercap主界面的菜单栏中选择"Sniff",会有两个选项,选择Unifiedsniffing:以中间人方法嗅探。之后会提示输入或者选择网络接口,然后点击OK。
3.配置Ettercap的etter.dns文件,将百度网站引向192.168.237.129
4.在菜单栏中选择"Hosts"->"Scan for hosts",Ettercap将会自动扫描主机
5.扫描完毕后,在菜单栏中选择"Hosts"->"Host list",可以查看存活的主机列表。之后选择网关IP,然后单击"Add to Target 1",接着选择目标主机IP,单击"Add to Target 2"
6.在主菜单中选择"Mitm"->"Arp poisoing",然后选择"Sniff remote connections"。
7.DNS欺骗插件可以在菜单"Plugins"->"Manage the plugins",选择"dns_spoof",是针对DNS欺骗的插件,双击即可启动插件,被选择的插件开头将以"*"号标注
8.最后选择"Start"->"Start sniffing",最终效果如下图。
在内网渗透时,攻击者经常会用到此方式,只不过指向的网站可能会有网马,当目标主机访问了任何网址后,就可能会被种植木马。
可以通过ipconfig/flushes来清空当前的DNS表。
五、防御ARP攻击
1.静态绑定
静态绑定是指对每台主机进行IP和MAC地址静态绑定,静态绑定是防止ARP欺骗的最根本方法。
静态绑定可以通过命令arp -s实现 "arp -s IP MAC地址"
另外也需要网关对局域网主机进行IP->MAC地址的静态绑定,这样就是双绑。
2.ARP防火墙
六、防御DNS攻击
1.使用本地DNS服务器解析DNS请求
2.使用DNSSEC
3.配置DNS解析器使用一个新的随机的源端口接受DNS查询