渗透测试、漏洞挖掘、APT攻击与检测、JAVA/PHP代码审计、二进制安全、逆向分析、Kubernetes安全、等级保护、应急响应

ARP攻击

渗透测试 2023-12-22 浏览(3366) 评论(0)
- N +

文章目录[+]

1 APR协议原理

①ARP即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。

②在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。

③一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装。

ARP协议广播请求,单播回应。

image.png

image.png

image.png


2 ARP攻击

image.png

①PC1跟PC2通信,采用广播形式,通过ARP请求包询问PC2的MAC地址。

②PC2根据询问信息,返回ARP单播回应包;此时PC3作为攻击者,在监听之后,发起了ARP回应包,很显然这就是一个ARP欺骗行为。

③PC1和PC2根据ARP问答,将各自的ARP映射信息(IP-MAC)存储在本地ARP缓存表。

④交换机根据其学习机制,记录MAC地址对应的接口信息,存储在CAM缓存表(也称为MAC地址表)。交换机收到数据包时,会解封装数据包,根据目标MAC字段进行转发。

注意:

①主机通信需要查找ARP表,而交换机通信需要查找CAM表(路由器则查找Route表)。

注:ARP表:ip<->mac    CAM表:mac<->port  (Route表:route<->port)

②交换机基于源MAC地址学习,基于目的MAC地址转发。

PC1收到两个ARP回应包,内容分别如下:

③我是PC2,我的IP地址是IP2,我的MAC地址是MAC2;

③我是PC2,我的IP地址是IP2,我的MAC地址是MAC3;

由于ARP和CAM表,遵循"后到优先"原则。于是hacker只要持续不停发出ARP欺骗包,就一定能够覆盖掉正常的ARP回应包。

PC1最终记录的是虚假的ARP映射:IP2<->MAC3。

image.png

当PC1要跟PC2进行通信时,首先要查找ARP表,然后在网络层打上源目IP,在链路层打上源目MAC,然后将数据包发送给交换机。交换机收到之后对数据进行解封装,并且查看CAM表(基于目的MAC转发),由于目标MAC3对应Port3,所以交换机自然而然将其转发给PC3。

反过来,如果PC2要将数据包发送给PC1,PC3仍然可以以同样的ARP欺骗实现攻击。此时,PC1和PC2的通信数据流被PC3拦截,形成了典型的"中间人攻击"。

image.png


3 ARP扫描工具底层原理

image.png

Hacker渗透进了一个内网,且只知道自己的IP信息,例如IP地址是10.1.20.253,网关地址是10.1.20.254。

image.png

image.png

在ARP应答信息里面,除了IP地址和MAC信息,还能看到相关的设备厂商信息,例如cisco、meizu、apple、xiaomi等,这其实就是依靠MAC地址前面24位的OUI(机构唯一标识符)来识别的,(还有一些扫描器基于Netbios协议,还能找到电脑的主机名)。

进行ARP欺骗攻击

image.png


00:08:ca:86:f8:0f其实就是hacker的mac地址,并且对应的真正的IP地址应该是10.1.20.253。而这里很明显是hacker在欺骗局域网其他主机,它对外声称:自己就是"所有人"。这样做的意义在于覆盖掉其他主机的ARP缓存表信息,并生成错误的ARP映射,最终将通信流量交给hacker。当然,还有另外一种ARP欺骗的做法:hacker告诉所有人,自己就是网关。因为其他主机访问互联网必经之路便是网关(出口路由器/无线路由器)。

image.png

image.png

Hacker会告诉局域网所有主机,自己就是网关,并且后续可以把数据都丢给我,我来转发到互联网。


4 ARP攻击实践(P2Pover)

黑盒渗透进入内网。取得172.16.70.130主机权限。

172.16.70.130上安装 P2Pover模拟黑客攻击172.16.70.131。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

攻击机172.16.70.130对应的MAC地址是 .....96

网关172.16.70.2对应的MAC地址是 .....62

此时,通过Wireshark可以抓取到攻击机172.16.70.130发出的ARP欺骗包(欺骗其他人说自己是网关)

image.png

再查看被攻击机172.16.70.131的ARP表,发现网关的MAC地址不再是原有的MAC,而是攻击机172.16.70.130的。

image.png

6、测试172.16.70.131访问互联网的流量被172.16.70.130拦截:

①在172.16.70.131上面访问互联网地址114.114.114.114:

image.png

②在172.16.70.130上Wireshark采用icmp协议过滤,查看是否有数据流:

image.png

从这里来看,172.16.70.130已经完全拦截了172.16.70.131访问互联网的流量了。

7、让172.16.70.130窃取172.16.70.131上网账号密码:

这里以172.16.70.131远程访问互联网路由器为例=>telnet route-server.ip.att.net

image.png

在172.16.70.130上面过滤telnet协议,并且采用"follow tcp stream"功能:

image.png

image.png


5 ARP攻击实践(Cain)

黑盒渗透进入内网。取得172.16.70.130主机权限。

172.16.70.130上安装 Cain模拟黑客攻击172.16.70.131。

172.16.70.130上开启Wireshark监听,启动Sniffer功能,进入Sniffer菜单,右键"scan mac addresses"。

image.png

image.png

image.png

image.png

image.png

Wireshark抓取到ARP扫描包:

image.png

启动ARP欺骗,判断70.2为网关,131为肉鸡

image.png

点击右下角的ARP标识,点击菜单栏的"add to list"分别选择70.2和70.131

image.png

image.png

image.png

点击左上角黄色标记的arp按钮,启动ARP欺骗/毒化:

image.png

查看172.16.70.131的ARP缓存表,此时ARP欺骗成功:

image.png

让172.16.70.131远程访问互联网路由器,在172.16.70.130上面通过Cain直接截获密码:

image.png

点击右下角的password,可以看到telnet密码出来,无需通过wireshark再次做流量追踪,Cain根据截获的数据流做自动过滤

image.png

让172.16.70.131访问http网页(非https),这里是进入某IT网站进行账号注册:

image.png

image.png

此时,172.16.70.130上面可以直接获取到172.16.70.131的账号密码信息

172.16.70.131访问百度游戏,账号密码随意设置

image.png

image.png

可以看到百度游戏的用户名是明文传输的,但是密码是加密传输的。

尝试到一些MD5网站上hash碰撞破解,无法破出来,应该是做了"加盐"处理。也可以通过ARP欺骗结合DNS域名劫持,再通过社工学(网站克隆),就可以拿到最终的明文密码。

在Cain上查看拦截到的HTTPS账号密码

image.png

image.png

image.png

6 ARP防御原理

ARP防御可以在网络设备上实现,也可以在用户端实现。

当黑客发起ARP欺骗包时,会途径局域网里面的交换机或无线路由器等网络设备;

①如果网络设备能够识别这种欺骗包,并且提前丢弃掉,则电脑/手机端就不会被欺骗;

②如果网络设备没有拦截这种欺骗包,则电脑/手机端需要做安全防御,然后再丢弃。

局域网安全里比较常用的防御技术,这种防御技术被称为DAI(Dynamic ARP Inspection)- 动态ARP检测,原理可以用两句话简单概括:

①交换机记录每个接口对应的IP地址和MAC,即port<->mac<->ip,生成DAI检测表;

②交换机检测每个接口发送过来的ARP回应包,根据DAI表判断是否违规,若违规则丢弃此数据包并对接口进行惩罚。

image.png

PC3是在交换机的Port3、MAC地址是MAC3,IP地址是IP3,所以本地DAI表项内容是<port3-mac3-ip3>。当交换机从接口Port3收到ARP回应包,内容却是IP2和MAC3映射,即<port3-mac3-ip2>,经判断,这个包就是虚假的欺骗包,交换机马上丢弃这个包,并且可以对接口做惩罚(不同设备的惩罚方式有所不同,可以直接将接口"软关闭",直接将攻击者断网;也可以"静默处理",仅丢弃欺骗包,其他通信正常)

交换机能识别IP地址信息吗?

从现在的网络技术来看,分层界限越来越模糊,融合式的网络设备才是主流,现在的接入交换机基本能被Telnet/SSH/Web管理,更专业的交换机同时支持动态ARP监测(dai)、IP源防护(ipsg)、DHCP侦听(dhcp snooping)、端口安全、AAA、802.1x等局域网安全技术,已经超越了原有二层交换机的定义。所以,交换机能读三层甚至七层的数据包已经不是什么新鲜事了,不要被"交换机就是二层设备"给束缚了,这只是纸面上的定义。

DAI检测表是如何生成的?

CAM表的内容主要是MAC和Port的映射,而DAI检测表则是Port、MAC、IP三个信息映射。目前这张表支持两种方式来生成:第一种方式就是手工静态绑定:即用户接入网络之后,管理员根据此用户电脑的MAC和IP地址,然后在接口上绑死,缺点就是用户数太多的话,手工绑定管不过来;第二种方式就是目前最主流的做法,即在交换机上开启DHCP侦听技术,当用户第一次通过DHCP获取到地址的时候,交换机就把用户电脑的IP、MAC、Port信息记录在DHCP侦听表,后面ARP检测直接调用这张DHCP侦听表即可。

ARP防火墙在技术实现上,一般都有以下功能:

①绑定正确的的IP和MAC映射,收到攻击包时不被欺骗。

②能够根据网络数据包特征,自动识别局域网存在的ARP扫描和欺骗行为,并做出攻击判断。


作者:wwl

网络攻防研究员

上一篇:
评论列表 (0)条评论

发表评论