part1
点击上方蓝字关注我们
1.摘要
本文主要探讨了黑客利用ARP协议进行侦查和实施攻击的原理和攻击手法以及全面的防御策略。文章首先介绍了ARP协议的工作机制,随后详细分析了攻击者如何利用ARP协议的漏洞进行网络探测和中间人攻击。通过具体案例和图示,清晰地展示了攻击的实施过程和潜在影响。
2.ARP攻击原理
地址解析协议(通常称为 ARP)用于以太网上,将 IP 地址分配给全球唯一的 MAC 地址。这样,当一个新系统进入网络时,它的MAC地址就会被分配一个网络上IP地址范围内的IP地址。通过这种方法,网关、路由器和交换机等网络设备知道哪台机器拥有哪个 IP 地址,并可以将其发往该 IP 地址的流量路由到正确的物理机器(MAC 地址)。
如果攻击者了解 ARP,他们就可以利用 ARP 协议来查找网络上的系统,甚至通过中间人攻击来模仿和获取对特定系统流量的访问权限。以下是ARP协议工作原理图:
上图描绘了ARP协议工作原理的两个主要步骤:
(1).ARP请求广播(ARP request is broadcast)
System A 需要找到 IP 地址为 141.23.56.23 的设备的物理地址(MAC 地址)。
System A 向网络中的所有设备广播一个 ARP 请求。
请求内容为:"寻找 IP 地址为 141.23.56.23 的设备的物理地址"。
这个请求被发送到网络中的所有设备,包括 System B 和其他中间设备。
(2).ARP回复单播(ARP reply is unicast)
拥有目标 IP 地址 (141.23.56.23) 的设备 (System B) 识别出这个请求是针对自己的。
System B 回复一个 ARP 应答,包含其物理地址 A4:6E:F4:59:83:AB。
这个回复是单播的,也就是直接发送给请求者 System A,而不是广播给所有设备。
这个过程使得 System A 能够获得 System B 的 MAC 地址,从而在数据链路层进行通信。这是网络通信中非常基础和重要的一个过程,因为在以太网中,虽然 IP 地址用于逻辑寻址,但实际的数据传输还是需要使用物理地址(MAC 地址)。
3.ARP基础命令
arp 命令在 Windows 和 Linux 系统中都有。有了它,就可以发现 arp 表的内容,甚至可以操作该表。
在Windows中,输入:
> arp -a
命令返回结果如下图:
如上所示,Windows操作系统显示arp表的内容。该表包含 IP 地址、物理或 MAC 地址以及类型。
与Windows类似, 在Linux中输入arp -a
时, Linux显示arp表, 但不指定是静态还是动态绑定类型,如图:
当使用 -v 选项输入 arp 时,Linux会以更好的格式化信息显示相同的信息,并包含指示使用 IP 地址的类别的标志掩码。如图:
4.Wireshark中的ARP数据包
利用Wireshark打开一个抓包文件或实时抓包,只需在过滤器窗口中输入“arp”一词,就可以在 Wireshark 中查看 arp 数据包,如下所示:
当点击单个数据包时,就可以进一步分析该数据包。展开地址解析协议字段,可以看到发送方和目标 IP 和 MAC 地址, 如图:
5.黑客如何利用ARP进行侦查
由于ARP协议没有身份验证,因此黑客可以轻松地利用这个“功能”来发现网络上的所有系统。当尝试攻击局域网 (LAN) 上的另一个系统时,或者当你已经攻破了网络上的一个普通用户账户,想要转向网络上更有价值的目标(如数据库服务器)时也可能派上用场。
黑客有很多工具可以用来发现网络上的系统。这些工具会发送无故ARP请求(gratuitous ARP request),而系统会回应其IP地址和MAC地址。例如,在Kali系统中,有一个工具叫做netdiscover。
输入:netdiscover -h
命令可以查看该工具的所有命令参数, 如图:
从上图中了解到,可以使用 -r 选项来扫描网络上的一系列 IP 地址,命令如下:
netdiscover -r 192.168.100.0/24
以下是命令执行后的结果:
正如上面所看到的,netdiscover 能够枚举网络上的每个系统及其 IP 地址、MAC 地址和网络接口 (NIC) 供应商。
6.ARP漏洞利用
ARP协议还可以被用来实施中间人(Man-in-the-Middle,MiTM)攻击。请记住,IP地址是通过ARP协议分配给物理接口(MAC地址)的。攻击者可以发送无故ARP请求,使得他们的计算机被指定为目标试图访问的特定IP地址的位置,从而将自己置于目标和预期服务器之间。这种技术被称为ARP欺骗(arpspoofing)。通过这种方式,攻击者可以窃听目标的网络流量,甚至篡改这些流量。
原理如下图:
上图展示一个典型的ARP欺骗攻击场景。在一个局域网中, 三台设备连接到同一个交换机上。
在正常通讯的情况下, Bob(IP: 10.0.0.1)想要与Alice(IP: 10.0.0.7)通信时,会通过ARP协议获取Alice的MAC地址。
但由于攻击者的介入, 攻击者(Attacker,IP: 10.0.0.3)通过发送伪造的ARP响应来进行中间人攻击。欺骗流程如下:
攻击者向Bob发送伪造的ARP响应,声称Alice的IP(10.0.0.7)对应的MAC地址是攻击者的MAC(cc:cc:cc:cc:cc:cc)。
攻击者同时向Alice发送伪造的ARP响应,声称Bob的IP(10.0.0.1)对应的MAC地址是攻击者的MAC(cc:cc:cc:cc:cc:cc)。
攻击后的结果就是:
Bob的ARP缓存被污染,认为Alice的MAC是攻击者的MAC。
Alice的ARP缓存被污染,认为Bob的MAC是攻击者的MAC。
所有Bob和Alice之间的通信都会经过攻击者,形成中间人攻击。
最终的危害就是: 攻击者可以截获、监听甚至修改Bob和Alice之间的通信内容。
有一个典型的攻击攻击名为:Ettercap, 在Kali LInux中可以找到, 其界面如下:
该工具自带扫描选项, 可以选择目标进行中间人攻击,如图:
地址解析协议(ARP)也可以被Metasploit的Meterpreter利用,在成功入侵网络中的一个系统后,用于发现可以进行横向移动的其他系统。一旦网络中的单个系统被攻破,攻击者可以利用该系统作为网络中的立足点,然后努力入侵网络中更重要的系统,如文件服务器或数据库服务器。
meterpreter 有一个脚本和一个后利用模块,使攻击者能够通过在网络上发送免费 ARP 请求并等待响应来发现网络上的其他系统。如图:
7.防御措施建议
针对ARP欺骗和中间人攻击,以下是一个整体的防御策略:
1.网络层面防御: 实施DHCP Snooping,防止伪造的DHCP服务器; 启用动态ARP检测,验证ARP数据包合法性;限制每个交换机端口的MAC地址数量;使用私有VLAN,减少攻击面。
2.终端设备防御: 使用静态ARP表,对关键设备如网关使用静态ARP绑定;安装和更新防病毒软件,检测和阻止恶意软件;启用主机防火墙,过滤可疑网络流量。
3.加密和认证: 使用VPN进行通信;实施802.1X认证,确保只有授权设备可以接入网络;优先使用HTTPS等加密协议,保护应用层通信。
4.监控和检测: 部署入侵检测系统(IDS)或入侵防御系统(IPS), 实时监控网络异常; 使用网络流量分析工具,检测异常ARP流量;实施日志管理和分析,及时发现可疑活动。
5.策略和管理: 定期进行安全审计,检查网络配置和安全策略;实施最小权限原则,限制用户和系统权限;对员工进行安全意识培训, 提高对社会工程学攻击的警惕性。
点个在看你最好看